A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner

Apresentações semelhantes


Apresentação em tema: "Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner"— Transcrição da apresentação:

1 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner gugawag@gmail.com

2 Pearson Education Sistemas Operacionais Modernos – 2ª Edição 2 Processos e Threads Capítulo 2 2.1 Processos 2.2 Threads 2.3 Comunicação interprocesso 2.4 Problemas clássicos de IPC 2.5 Escalonamento

3 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Semáforos Dijkstra propôs, em 1965, usar uma variável inteira para contar o número de sinais de acordar para uso futuro; A variável introduzida foi o semáforo; Semáforo: 0: nenhum sinal foi salvo; maior que 0: quantidade de sinais pendentes; Operações down e up (generalizações de sleep e wakeup);

4 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Semáforos down: se for 0, o processo dorme; se for maior que 0, subtrai de um o valor da variável; up: incrementa em 1 o valor da variável; –Essa operação não bloqueia nenhum processo; Verificar o valor do semáforo, alterá-lo e possivelmente colocar o processo para dormir são ações atômicas; Isso é necessário para resolver os problemas de sincronização e evitar condições de disputa;

5 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Semáforos Usa-se a instrução TSL para garantir que múltiplas CPUs tenham acesso ao semáforo; Como as operações sobre o semáforo duram apenas microsegundos, usar TSL não é um problema;

6 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Desafio Qual o algoritmo para o problema do produtor-consumidor usando semáforos?

7 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Resolvendo produtor-consumidor com semáforos

8 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Usos distintos de semáforos No caso do produtor-consumidor: full e empty são usados para sincronização; O mutex (semáforo binário) é usado para exclusão mútua;

9 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Mutex Mutex = Mutual Exclusion; Semáforo binário: apenas 0 ou 1; Serve para exclusão mútua; Entendendo melhor interrupção de dispositivo: –Usa-se um mutex para o dispositivo, com valor inicialmente em 0; –O processo que deu um down no mutex dorme; –Quando a interrupção chega, dá-se um up no mutex; –O processo trata a resposta;

10 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Mutexes Implementação de mutex_lock e mutex_unlock

11 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Discussão sobre memória compartilhada Solução de Peterson e algumas anteriores levam em consideração que os processos tenham memória compartilhada: buffer, turn; Como é possível? Para threads isso é fácil; Para processos, há basicamente duas formas: –Armazenar essas variáveis no SO e acessar via System Call; –SO modernos (Unix, Windows) oferecem uma área de compartilhamento entre processos; –Em último caso, usa-se arquivo;

12 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Monitores Usar semáforos é complexo, pois imagine se invertermos a ordem dos downs, no caso do produtor, e se o buffer estivesse cheio!! Para facilitar, Hoare e Brinch propuseram uma unidade básica de sincronização de alto nível chamada monitor; Monitor: coleção de procedimentos, variáveis e estrutura de dados agrupados num pacote;

13 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Monitores Apenas um processo pode estar ativo num monitor em um determinado momento; Monitor é uma construção de linguagem de programação; Os compiladores usam semáforo binário/mutex para garantir exclusão mútua;

14 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Monitores Garante exclusão mútua: nunca dois processos podem estar ao mesmo tempo no monitor; Mas como garantir que um processo bloqueie se não puder continuar? –Usam-se variáveis condicionais: condition; Um processo que deseja bloquear chama um wait sobre a variável condicional; O processo que deseja acordar outro chama um signal;

15 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Monitores Exemplo de um monitor

16 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Monitores Delineamento do problema do produtor-consumidor com monitores – somente um procedimento está ativo por vez no monitor – o buffer tem N lugares

17 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Monitores em java Solução para o problema do produtor-consumidor em Java

18 Pearson Education Sistemas Operacionais Modernos – 2ª Edição Java Desde sempre Java suportou monitores: usa-se synchronized nas assinaturas dos métodos ou em uma variável; À partir de Java 1.5 tem-se semáforos, mutex, variáveis condicionais;


Carregar ppt "Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner"

Apresentações semelhantes


Anúncios Google