Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouCláudia Prado Bayer Alterado mais de 8 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.