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

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

Comunicação Interprocesso Condições de Disputa (corrida)

Apresentações semelhantes


Apresentação em tema: "Comunicação Interprocesso Condições de Disputa (corrida)"— Transcrição da apresentação:

1 Comunicação Interprocesso Condições de Disputa (corrida)
Dois processos querem ter acesso simultaneamente à memória compartilhada: requer implementação de exclusão mútua 1

2 Regiões Críticas (1) Quatro condições necessárias para prover exclusão mútua: Nunca dois processos simultaneamente em uma região crítica Nenhuma afirmação sobre velocidades ou números de CPUs Nenhum processo executando fora de sua região crítica pode bloquear outros processos Nenhum processo deve esperar eternamente para entrar em sua região crítica 2

3 Exclusão mútua usando regiões críticas
3

4 Exclusão Mútua com Espera Ociosa (1)
Solução proposta para o problema da região crítica (a) Processo (b) Processo 1. 4

5 Exclusão Mútua com Espera Ociosa (2)
Solução de Peterson para implementar exclusão mútua 5

6 Exclusão Mútua com Espera Ociosa (3)
Entrando e saindo de uma região crítica usando a instrução TSL 6

7 Problema do produtor-consumidor com uma condição de disputa fatal
Dormir e Acordar Problema do produtor-consumidor com uma condição de disputa fatal 7

8 Semáforos São variáveis que indicam o sinal de acordar para um processo. Se o valor = 0, indica que nenhum sinal de acordar foi possível. Se o valor > 0, o sinal será decrementado de uma unidade e o processo será acordado. Semáforos possuem duas operações: down e up. 8

9 O problema do produtor-consumidor usando semáforos
9

10 Mutex (mutual exclusion)
São semáforos usados para a exculsão mútua. Ele é destinado a garantir que somente um processo por vez esteja lendo ou escrevendo no buffer. Implementação de mutex_lock e mutex_unlock 10

11 Monitores (1) É uma coleção de procedimentos, variáveis e estruturas de dados, agrupadas em um tipo especial de módulo ou pacote. Somente um processo pode estar ativo em um monitor em um dado momento. É uma construção da linguagem de programação e assim, o compilador sabe que ele é especial. Exemplo de um monitor 11

12 Monitores (2) Delineamento do problema do produtor-consumidor com monitores somente um procedimento está ativo por vez no monitor o buffer tem N lugares 12

13 Troca de Mensagens São chamadas ao sistema.
Usa duas primitivas: send e receive Ex.: send(destination, &message); receive(source , &message) 13

14 Barreiras Uso de uma barreira processos se aproximando de uma barreira
todos os processos, exceto um, bloqueados pela barreira último processo chega, todos passam 14

15 Problemas clássicos de IPC
IPC – Inter-Process Communication Necessário para a coordenação mútua entre processos 15

16 Jantar dos Filósofos Filósofos comem/pensam
Cada um precisa de 2 garfos para comer Pega um garfo por vez Como prevenir deadlock 16

17 O Problema dos Leitores e Escritores
Como gerenciar o acesso de vários usuários a uma base de dados e a escrita nessa base de dados. 17

18 O Problema do Barbeiro Sonolento (1)
18

19 Escalonamento Introdução ao Escalonamento (1)
Surtos de uso da CPU alternam-se com períodos de espera por E/S um processo orientado à CPU um processo orientado à E/S 19

20 Introdução ao Escalonamento (2)
Objetivos do algoritmo de escalonamento 20

21 Escalonamento em Sistemas em Lote (1)
Um exemplo de escalonamento job mais curto primeiro 21

22 Escalonamento em Sistemas em Lote (2)
Escalonamento em três níveis 22

23 Escalonamento em Sistemas Interativos (1)
Escalonamento por alternância circular (round- robin) lista de processos executáveis lista de processos executáveis depois que B usou todo o seu quantum 23

24 Escalonamento em Sistemas Interativos (2)
Um algoritmo de escalonamento com quatro classes de prioridade 24


Carregar ppt "Comunicação Interprocesso Condições de Disputa (corrida)"

Apresentações semelhantes


Anúncios Google