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
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
1
Regiões Críticas (1)
Quatro condições necessárias para prover
exclusão mútua:
1. Nunca dois processos simultaneamente em
uma região crítica
2. Nenhuma afirmação sobre velocidades ou
números de CPUs
3. Nenhum processo executando fora de sua
região crítica pode bloquear outros processos
4. Nenhum processo deve esperar eternamente
para entrar em sua região crítica
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
2
Regiões Críticas (2)
Exclusão mútua usando regiões críticas
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
3
Exclusão Mútua com
Espera Ociosa (1)
Solução proposta para o problema da região crítica
(a) Processo 0.
Pearson Education
(b) Processo 1.
Sistemas Operacionais Modernos – 2ª Edição
4
Exclusão Mútua com
Espera Ociosa (2)
Solução de Peterson para implementar exclusão mútua
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
5
Exclusão Mútua com
Espera Ociosa (3)
Entrando e saindo de uma região crítica usando a
instrução TSL
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
6
Dormir e Acordar
Problema do produtor-consumidor com uma condição de disputa fatal
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
7
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.
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
8
Semáforos
O problema do produtor-consumidor usando semáforos
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
9
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
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
10
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
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
11
Monitores (2)
• Delineamento do problema do produtor-consumidor com monitores
– somente um procedimento está ativo por vez no monitor
– o buffer tem N lugares
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
12
Troca de Mensagens
São chamadas ao sistema.
Usa duas primitivas: send e receive
Ex.:
send(destination, &message);
receive(source , &message)
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
13
Barreiras
•
Uso de uma barreira
a) processos se aproximando de uma barreira
b) todos os processos, exceto um, bloqueados
pela barreira
c) último processo chega, todos passam
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
14
Problemas clássicos de IPC
IPC – Inter-Process Communication
Necessário para a coordenação mútua entre
processos
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
15
Jantar dos Filósofos
• Filósofos comem/pensam
• Cada um precisa de 2
garfos para comer
• Pega um garfo por vez
• Como prevenir deadlock
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
16
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.
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
17
O Problema do Barbeiro
Sonolento (1)
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
18
Escalonamento
Introdução ao Escalonamento (1)
•
Surtos de uso da CPU alternam-se com
períodos de espera por E/S
a) um processo orientado à CPU
b) um processo orientado à E/S
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
19
Introdução ao Escalonamento (2)
Objetivos do algoritmo de escalonamento
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
20
Escalonamento em
Sistemas em Lote (1)
Um exemplo de escalonamento job mais curto primeiro
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
21
Escalonamento em
Sistemas em Lote (2)
Escalonamento em três níveis
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
22
Escalonamento em
Sistemas Interativos (1)
•
Escalonamento por alternância circular (roundrobin)
a) lista de processos executáveis
b) lista de processos executáveis depois que B usou todo
o seu quantum
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
23
Escalonamento em
Sistemas Interativos (2)
Um algoritmo de escalonamento com quatro classes
de prioridade
Pearson Education
Sistemas Operacionais Modernos – 2ª Edição
24
Download

Processes and Threads