Buscar

Nome Ações AULA 04 SO.pdf Capitulo1 Silberschatz 2017 1.pdf Aula 05 Threads.pdf Aula 07 Gerenciamento de CPU.pdf AULA 04 SO.pdf gerencia de memória parte I.pdf AULA 06 Comunicação entre p

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Gerhard Saboia 
Comunicação entre 
Processos 
IPC – Inter-Process Communication 
A Comunicação entre Processos está 
associada à comunicação de forma 
estruturada, não baseada em 
interrupções. 
Comunicação entre Processos 
 Processos muitas vezes usam 
memória comum, que pode ser: 
● Principal; 
● Secundária; 
A natureza da memória 
compartilhada não influi na 
natureza da comunicação ou nos 
problemas criados. 
Aplicações Concorrentes 
 Sincronização e comunicação entre processos 
Processo 
gravador 
Processo 
leitor 
dado 
 Sincronização 
Buffer 
Especificação de Concorrência 
em Programas 
Processo 
p rinci pal 
Processo 
p rinci pal 
Processo 1 Processo 2 Processo n 
PARBEGIN 
Comando_1; 
Comando_2; 
. 
. 
Comando_n; 
PAREND 
Um Exemplo: Spool de impressão. 
 Os processos gravam os nomes dos arquivos a 
serem impressos no diretório especial de 
spool; 
 O processo " impressor" verifica este diretório 
e imprime os arquivos, retirando-os, em 
seguida, do diretório. 
 Variáveis compartilhadas: 
● in  próxima entrada livre do diretório; 
● out  próximo arquivo a ser impresso. 
1 
Um Exemplo: Spool de impressão. 
 Tais variáveis são mantidas na 
memória e acessíveis a todos os 
processos; 
 
 Num determinado instante... 
Um Exemplo: Spool de impressão. 
Um Exemplo: Spool de impressão. Um Exemplo: Spool de impressão. 
Condição de Corrida 
 São situações onde 2 ou mais 
processos estão acessando dados 
compartilhados, e o resultado final 
do processamento depende de 
quem executa e quando. 
 Condições de corrida  não-determinismo 
potencial  geração de fatos imprevisto e 
inexplicável. 
Condição de Corrida 
 Como evitar a ocorrência de 
condições de corrida? 
 R: Encontrar alguma forma de 
proibir que mais de um processo 
acesse o dado compartilhado ao 
mesmo tempo. 
2 
Exclusão Mútua de Execução 
 É uma forma de ter certeza que se 
um processo estiver usando uma 
variável compartilhada, os demais 
processos serão impedidos de fazer o 
mesmo. 
 Grande desafio no projeto de S.O.’s 
 a escolha das operações primitivas 
adequadas à implementação da 
exclusão mútua de execução. 
 Em qualquer programa, há seções 
não-críticas e pode haver ou não 
seções críticas. 
Exclusão Mútua 
 Região crítica 
 Protocolos de acesso 
BEGIN 
. 
. 
Entra_Regiao_Critica; 
Regiao_Critica; 
Sai_Regiao_Critica; 
. 
. 
END. 
Região Crítica 
ou Seção Crítica 
 É uma parte do programa cujo 
processamento pode levar à 
ocorrência de condições de corrida. 
Para que processos paralelos cooperem de forma correta e 
eficiente no uso de recursos compartilhados, é necessário: 
1. Dois ou mais processos não podem estar 
dentro de suas regiões críticas 
correspondentes (que acessam a mesma 
variável compartilhada) ao mesmo tempo; 
2. Nenhuma consideração pode ser feita a 
respeito da velocidade relativa dos processos e 
do número de processadores disponíveis no 
sistema; 
3. Nenhum processo que esteja rodando fora de sua 
seção crítica pode bloquear a execução de 
outro processo; 
4. Nenhum processo pode ser obrigado a esperar 
indefinidamente por entrar em sua região 
crítica. 
Exclusão mútua com 
espera ocupada 
 Propostas para obtenção de exclusão 
mútua: 
● Quando um processo estiver executando 
sua seção crítica, nenhum outro processo 
poderá entrar na sua seção crítica 
correspondente. 
● Ex: Inibição das Interrupções: 
Exclusão Mútua 
 Soluções de hardware 
● Desabilitação de interrupções 
BEGIN 
. 
Desabilita_Interrupcoes; 
Regiao_Critica; 
Habilita_Interrupcoes; 
. 
END. 
3 
Inibição das Interrupções 
 Def.: Cada processo pode inibir as 
interrupções logo após seu ingresso 
em uma região crítica, habilitando- as 
novamente logo antes de deixá-la. 
Inibição das Interrupções 
 Características: 
● Solução mais simples. 
● Implementada por hardware. 
● O processo não poderá ser interrompido por 
exceder o tempo de processamento concedido a ele. 
● Com as interrupções inibidas , o processo não 
poderá ser interrompido por exceder o tempo de 
processamento concedido a ele; 
● Como o processador só poderá ser chaveado entre 
processos através de interrupções de tempo, com 
as interrupções inibidas não haverá chaveamento; 
● Então uma vez inibidas as interrupções, o 
processo pode examinar e atualiza a memória 
compartilhada, sem se preocupar com a eventual 
intervenção de outro processo em seu 
processamento; 
Inibição das Interrupções 
VANTAGEM / USO: 
É conveniente que o Kernel possa emitir interrupções 
do sistema quando algumas operações estiverem 
realizando tarefas críticas (Se uma interrupção ocorrer 
quando o Kernel estiver atualizando a fila de processos 
prontos, esta poderá ficar inconsistente  pode gerar 
condições de corrida). 
DESVANTAGENS: 
Não é boa prática dar a processos de usuários o poder 
de desabilitar interrupções (O que aconteceria se 
algum usuário desabilitar e não habilitar novamente?). 
 
Em sistemas com mais de um processador, a inibição 
afeta somente o processador que executou a instrução. 
(os outros processadores vão continuar executando 
normalmente, com seus processos podendo acessar a 
memória compartilhada); 
Inibição das Interrupções 
CONCLUSÃO: 
 Esta técnica não é apropriada para 
implementação de exclusão mútua 
entre processos de usuários, só para 
processos de kernel. 
Exclusão Mútua 
 Exemplos de Soluções de software: 
● Variáveis de Travamento 
● Primeiro algoritmo 
● Segundo algoritmo 
● Terceiro algoritmo 
● Quarto algoritmo 
● Algoritmo de Dekker 
● Algoritmo de Peterson 
● Algoritmo para exclusão mútua entre N 
processos 
Variáveis de Travamento 
 Solução implementada por software. 
 Uso de variável de travamento (V.T.) 
● variável compartilhada: 
 0 - não há processo executando 
sua região crítica; 
 1 - há processo executando sua 
região crítica. 
4 
Variáveis de Travamento 
 Algoritmo 
Variáveis de Travamento 
Observações: 
● Suponha que um processo leia a variável de 
travamento e verifique que seu valor é 0; 
● Antes que ele possa ser atualizado para 1 e entrar 
em sua região crítica, ocorre uma interrupção; 
● Outro processo começa a executar; 
● Tal processo encontra a variável de travamento com 
valor 0, atualiza para 1 e entra em sua Região crítica; 
● Ocorre que o processo anterior que foi interrompido 
guardou o seu valor 0, e quando ele for ativado irá 
atualizar seu valor para 1 e também entrará em sua 
região crítica; 
● Dois processos poderão está executando sua região 
crítica ao mesmo tempo. 
Variáveis de Travamento 
DESVANTAGEM: 
● Mesma falha do spool; 
● Imagine se depois que lê a V.T. (entre o teste e 
a atribuição de 1 a V.T) ocorrer uma 
interrupção? 
● Dois processos podem estar executando suas 
regiões críticas ao mesmo tempo ! 
 
Conclusão: 
● Não funciona bem! 
5

Continue navegando