Sistemas Operacionais Aula 6

Documentos relacionados
Introdução Aplicações Concorrentes Especificação de Concorrência em Programas Problemas de Compartilhamento de Recursos Exclusão Mútua Sincronização

Sincronização e Comunicação entre Processos

Sistemas Operacionais. Capítulo 7 Sincronização e Comunicação entre Processos

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Operacionais

SISTEMAS OPERACIONAIS. Sincronização e Comunicação entre Processos UNIBAN

9 - Sincronização e Comunicação entre Processos

Sincronização e comunicação entre processos

Sistemas Operacionais

Sistemas Operacionais

Estrutura deste arquivo.. Comunicação Interprocesso Parte 1 de 2 - Cap. 2. Introdução 1 CONDIÇÕES DE CORRIDA

Sistemas Operacionais. Condição de corrida e Região crítica

Sistemas Operacionais Sincronização e Comunicação entre Processos

UFRJ IM - DCC. Sistemas Operacionais I. Unidade II Concorrência

Sistemas Operacionais

Comunicação entre processos

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Operacionais. Comunicação entre processos

Sistemas Operacionais II

Programação concorrente (processos e threads)

Problema do Produtor -Consumidor. Solução por semáforos

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Sistemas Operacionais

SISTEMA DE ARQUIVOS DO SISTEMA OPERACIONAL

Aula Anterior. Decomposição algorítmica (continuação)

Programação Concorrente e Paralela

Sistemas Operacionais Aula 3

Fundamentos de Sistemas Operacionais

Capítulo 2 Processos e Threads

Capítulo 3. Programação Concorrente. Conteúdo. Objetivos. Recordando. Recordando. Objetivos de sistema operacional. DCA-108 Sistemas Operacionais

1 a Questão Unidade I e II (45 pontos)

Capítulo 3 Programação Concorrente. Nunca encontrei um homem tão ignorante que eu não pudesse aprender algo com ele.

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Sistemas Operacionais. Prof. André Y. Kusumoto

SUMÁRIO. 1.3 CONCEITOS DE SISTEMA OPERACIONAL Processos Arquivos O shell 42

Fundamentos de Sistemas Operacionais

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?

Sistemas Operacionais Aula 08: Sincronização de Processos. Ezequiel R. Zorzal

Sistemas Distribuídos

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Elementos básicos das linguagens de programação

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios

Capítulo 3. Deadlocks. Recursos

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO IM DCC CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I 2010/2 PROGRAMA DA DISCIPLINA

Aulas Anteriores. Detalhes da linguagem de programação

Sincronização e Comunicação de/entre Processos. Na Aula Anterior... Nesta Aula. Comunicação entre Processos. Pipes 07/09/2016

ENADE 2011 SISTEMAS OPERACIONAIS

Sincronização e Comunicação

Programação Concorrente

Sistemas Operacionais

Introdução e Conceitos Básicos

Problemas Típicos de Sincronização

tipoveiculo = (bicicleta, motociclo, motorizada, automovel, autocomreb, camioneta, autocarro, camiao, reboque); veiculo : tipoveiculo;

7 SINCRONIZAÇÃO DE PROCESSOS

Modelagem e implementação de programas concorrentes

Tempo Real 7/4/2010. Aula 10. Engenharia de Sistemas Embarcados

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Escalonamento. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 28

Sincronização. Cooperação entre Processos

Sistemas Operacionais

Linguagem de programação: Pascal

Sistemas Operacionais

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

Modelos de Programação de Tempo Real

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento

Sistemas Operacionais. DeadLock. Edeyson Andrade Gomes.

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Algoritmos de escalonamento

Conceito de processo como uma unidade de trabalho em um sistema moderno de tempo compartilhado. Estados de um processo.

Aula Anterior. Noção de array (continuação) Introdução aos subprogramas. Exemplos de aplicação

Refinamentos sucessivos

Sistemas Operacionais. Técnicas de Implementação de Exclusão Mútua. Aula VI Prof. Rosemary Silveira

Lista de Comandos: Arquivo texto e Binário

Conceito de Processo. Estados de Processos. Diagrama de Estados de Processos

Prof. Silvana Rossetto 9 de julho de DCC/IM/UFRJ

LabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

Sincronização de Processos (1) Mecanismos de busy wait

Exercícios Cap I. 1.1, 1.2, 1.3 (somente letras (a), (b) e (c)) , 1.8 e 1.12 IC - UFF

INE5645 Programação Paralela e Distribuída - Prova 1 22/10/2012 Aluno: Parte 1 Controle de Concorrência Conceitos Básicos (2,5)

Sistemas Operacionais

Sincronização em Sistemas Distribuídos

Arrays bidimensionais (matrizes)

Programação de Sistemas em Tempo Real

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos.

Questões de Múltipla escolha

Conjunto (set) O tipo estruturado set representa, em Pascal, um conjunto de objectos de um dado tipo;

Sistemas Distribuídos Aula 7

Fundamentos. Módulo 6: Sincronização de Processos. Bounded-Buffer (Cont.) Bounded-Buffer

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

Sistemas Operacionais Processos

Capítulo 2. Multiprogramação. Conteúdo. Objetivo. Recordando. Recordando. DCA-108 Sistemas Operacionais

Teste de Sistemas de Operação 30 de Maio de 2009

Programação Concorrente

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Computação I. Prof. Miguel Elias Mitre Campista.

Revisão Ultima aula [1/2]

ENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO

Transcrição:

Sistemas Operacionais Aula 6 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE

O que fazer com essa apresentação Anderson Moreira Sistemas Operacionais Aula 6 junho de 11

Créditos Professor: Anderson L. S. Moreira Disciplina: Sistemas Operacionais Home-page: http://dase.ifpe.edu.br/~alsm Aula 6 mostra sincronização e comunicação entre processos 2/14

Agenda Introdução Aplicações concorrentes Especificação de concorrência em programas Problemas de compartilhamento de recursos Exclusão mútua Sincronização condicional Semáforos Monitores Troca de mensagens Deadlock

Aplicações Concorrentes Sincronização e comunicação entre processos Sincronização Processo gravador gravação leitura Processo leitor dado Buffer

Especificação de Concorrência em Programas Concorrência em programas Processo principal PARBEGIN Comando_1; Comando_2;.. Comando_n; PAREND Processo 1 Processo 2 Processo n Processo principal

Especificação de Concorrência em Programas X := SQRT (1024) + (35.4 * 0.23) - (302 / 7) PROGRAM Expressao; VAR X, Temp1, Temp2, Temp3 : REAL; BEGIN PARBEGIN Temp1 := SQRT (1024); Temp2 := 35.4 * 0.23; Temp3 := 302 / 7; PAREND; X := Temp1 + Temp2 - Temp3; WRITELN ('x = ', X); END.

Prob. de Compartilhamento de Recursos PROGRAM Conta_Corrente;.. READ (Arq_Contas, Reg_Cliente); READLN (Valor_Dep_Ret); Reg_Cliente.Saldo := Reg_Cliente.Saldo + Valor_Dep_Ret; WRITE (Arq_Contas, Reg_Cliente);.. END.

Prob. de Compartilhamento de Recursos Processo A Processo B X := X + 1; X := X - 1; Processo A Processo B LOAD x,ra LOAD x,rb ADD 1,Ra SUB 1,Rb STORE Ra,x STORE Rb,x

Condição de Corrida Exemplo de problema de sincronização: a impressora Funcionamento típico: 1 daemon (lpd) gerencia um diretório com N entradas, e 2 ponteiros IN (próxima entrada livre no diretório) e OUT (próxima entrada a imprimir) 2 processos A e B mandam impressões no mesmo tempo

Condição de Corrida Condição de Corrida (race condition): situação onde o resultado de algum procedimento depende da ordem em que os processos executaram. Altíssimos problemas de depuração/manutenção do código. Programa não determinístico.

Exclusão Mútua Exclusão mútua: garantia que apenas um processo acessa uma variável ou uma instrução. BEGIN.. Entra_Regiao_Critica; Regiao_Critica; Sai_Regiao_Critica;.. END.

Exclusão Mútua Soluções de hardware Desabilitação de interrupções BEGIN. Desabilita_Interrupcoes; Regiao_Critica; Habilita_Interrupcoes;. END. Região crítica: parte do programa que levará a corrida se for acessa por vários processos.

Exclusão Mútua Soluções de hardware Instrução Test-and-Set (TSL): Bloqueia o barramento de memória de forma a não permitir que nenhum outro processador acesse a memória até que seja concluída a instrução Test-and-Set (X,Y);

Exclusão Mútua Várias soluções podem ser via software entre elas: Algoritmo de Dekker Algoritmo de Peterson Algoritmo para exclusão mútua entre N processos

Proposta de Peterson #define FALSE 0 #define TRUE 1 #define N 2 //numero de processos int turn; int interested (N); //de quem é a vez? //todos os valores inicialmente 0 (FALSE) void enter_region (int process) { int other; other = 1- process; interested [process] = TRUE; turn = process; while (turn == process && interested [other] == TRUE) } void leave_region (int process) { interested [process] = FALSE; }

Sincronização Condicional PROGRAM Produtor_Consumidor_1; CONST TamBuf = (* Tamanho qualquer *); TYPE Tipo_Dado = (* Tipo qualquer *); VAR Buffer : ARRAY [1..TamBuf] OF Tipo_Dado; Dado Cont : Tipo_Dado; : 0..TamBuf; BEGIN Cont := 0; PARBEGIN Produtor; Consumidor; PAREND; END.

Sincronização Condicional PROCEDURE Produtor; BEGIN REPEAT Produz_Dado (Dado); WHILE (Cont = TamBuf) DO (* Nao faz nada *); Grava_Buffer (Dado, Cont); UNTIL False; END; PROCEDURE Consumidor; BEGIN REPEAT WHILE (Cont = 0) DO (* Nao faz nada *); Le_Buffer (Dado); Consome_Dado (Dado, Cont); UNTIL False; END;

Semáforos Exclusão mútua utilizando semáforos Sincronização condicional utilizando semáforos Existem outras versões clássicas como: Problema dos Filósofos Problema do Barbeiro Exercício: Implementar em alguma LP, os algoritmos do Filósofo e do Barbeiro

Semáforos Semáforo binário na exclusão mútua Processo deseja entrar na região crítica DOWN (S> 0) DOWN (S= 0) UP (S) - processo sai da região crítica Processo acessa a região crítica Libera processo da fila de espera Fila de espera de processos

Monitores Estrutura do monitor Declaração de variáveis globais Fila de entrada Monitor Procedimentos Pr oc. 1 Pr oc. 2 Pr oc. n Inicialização de variáveis

Monitores Estrutura do monitor com varáveis de condição Declaração de variáveis globais Fila de entrada Monitor Procedimentos Pr oc. 1 Pr oc. 2 Pr oc. n Condição C1 Condição C2 Condição Cn Inicialização de variáveis Filas de espera

Troca de Mensagens Transmissão de mensagem Processo transmissor Processo receptor Canal de comunicação SEN D RECEIVE

Troca de Mensagens Comunicação direta Processo A Processo B

Troca de Mensagens Comunicação indireta Processo A Processo B Mailbox ou Port

Deadlock Espera circular Processo A Processo A solicita o Recurso 2 Recurso 1 alocado ao Processo A Recurso 2 Recurso 1 Processo B Recurso 2 alocado ao Processo B Processo B solicita o Recurso 1

Deadlock Condições necessárias Exclusão mútua Espera por recurso Não-preempção Espera circular Mecanismos Prevenção Detecção Correção

Dúvidas? Anderson Moreira Sistemas Operacionais Aula 6 junho de 11

Não percam no próximo episódio! Gerencia de processador e escalonamento; E muito mais! Dúvidas?