2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
-
Upload
computacao-depressao -
Category
Documents
-
view
664 -
download
2
Transcript of 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
![Page 1: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/1.jpg)
1Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Sistemas Operacionais-Gerência de Processos
Ernesto Massa
(slides fornecidos pela Prentice Hall e adaptados para esta disciplina)
![Page 2: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/2.jpg)
2Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Processos e Threads
Processos Threads Comunicação interprocesso Problemas clássicos de IPC Escalonamento
![Page 3: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/3.jpg)
3Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Processos
a) Multiprogramação b) Como vemos a multiprogramação:
processos sequenciais independentes
c) Ocupação real do processador
![Page 4: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/4.jpg)
4Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Transições de Estado
novo
pronto em execução
em espera
encerrado
admissão
escalonamento
espera porevento ou I/O
final deexecução
programacarga
evento ou I/O concluído
![Page 5: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/5.jpg)
5Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Estados de Processos
Camada mais inferior de um SO em camadas trata interrupções, escalonamento.
Acima desta camada estão os processos sequenciais.
![Page 6: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/6.jpg)
6Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Processos: Contexto
Implementado através dos “Blocos de Controle de Processos” – (BCP), também chamada de “Tabela de Processos”;
Dividido em três elementos básicos: Contexto de Software:
Id do Processo; Descrição dos Arquivos utilizados; Parâmetros de Escalonamento; Estado Corrente, etc.
Contexto de Hardware: Registradores; Dispositivos alocados, etc.
Espaço de Endereçamento.
![Page 7: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/7.jpg)
7Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Threads
(a) Três processos cada um com um thread
(b) Um processo com três threads
![Page 8: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/8.jpg)
8Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Threads
Contexto do Processo Items compartilhados por todas as threads em
um processo Contexto da Thread
Itens privativos de cada thread
![Page 9: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/9.jpg)
9Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Threads
Cada thread tem sua própria pilha
![Page 10: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/10.jpg)
10Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Uso de Threads
Um processador de texto com três threads
![Page 11: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/11.jpg)
11Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Uso de Thread
Um servidor web com múltiplos threads
![Page 12: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/12.jpg)
12Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Threads de Usuário
Modelo de pacote de threads de usuário Vantagem
Velocidade Desvantagem
Gerenciamento de threads no espaço do usuário
O Bloqueio de uma thread bloqueia todo o processo
![Page 13: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/13.jpg)
13Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Threads de Núcleo
Modelo de pacote de threads gerenciado pelo kernel
![Page 14: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/14.jpg)
14Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Threads Pop-Up
Criação de nova thread quando chega uma mensagem (a) antes da mensagem chegar (b) depois da mensagem chegar
![Page 15: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/15.jpg)
15Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Comunicação entre Processos
Processos Independentes. Não afetam nem são afetados por outros
processos. Processos Cooperados.
Compartilham: Memória; Arquivos; Dispositivos de E/S; Etc.
![Page 16: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/16.jpg)
16Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Comunicação entre Processos
Interprocess Comunication (IPC) Dois processos querem escrever
simultaneamente em uma memória compartilhada
![Page 17: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/17.jpg)
17Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Condições de Corrida (Disputa)
Condições de Corrida: Situações onde dois ou mais processos estão
acessando dados compartilhados. O resultado final pode variar de acordo com a
ordem de execução.
Mecanismo de Sincronização. Garante o compartilhamento de recursos e a
comunicação entre os processos. Garante a integridade e a confiabilidade dos
dados compartilhados.
![Page 18: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/18.jpg)
18Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Condições de Corrida
Exemplo 1:
Resultado Final: Contador = 8 (ERRO!)
7Processo
A7+1
ProcessoB
7-1
1
73
7
6
8
2 4
5
6
![Page 19: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/19.jpg)
19Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Condições de Corrida
Exemplo 2:
Valor armazenado peloprocesso B é perdido.
65
4
3
próximaentrada
7
ProcessoA
ProcessoB
1
7
suspensorecebe CPU
2
8
recebe CPUsuspenso
3
7
4
75
8
6
X
10
Y 9
8
![Page 20: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/20.jpg)
20Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Condições de Corrida
Região Crítica: Parte do código onde é feito acesso a recursos
compartilhados, e que podem levar a condições de corrida.
Ex: Processo A. Código normal Início da Seção Crítica (Protocolo de Entrada) Seção Crítica Término da Seção Crítica (Protocolo de Saída) Código normal
![Page 21: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/21.jpg)
21Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Concorrência em programas
Enquanto um processo estiver usando um recurso, os outros devem aguardar até que o recurso esteja liberado.
Exclusão Mútua. Exclusividade no acesso a um determinado
recurso. A exclusão mútua deve afetar os
processos concorrentes quando um deles estiver em uma região crítica.
![Page 22: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/22.jpg)
22Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Regiões Críticas
Quatro condições são necessárias para prover exclusão mútua:
Nunca dois processos simultaneamente em uma região crítica
Nenhuma afirmação pode ser feita 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
![Page 23: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/23.jpg)
23Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Regiões Críticas
Exclusão mútua usando regiões críticas
![Page 24: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/24.jpg)
24Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Hardware
Desabilitação das interrupções: Solução mais simples para a exclusão mútua; Falha de Proteção:
O processo precisa voltar a habilitar as interrupções.
Não aplicável para múltiplas CPUs. Este recurso só deve ser permitido ao SO.
Instrução Test-and-Set. Utilização de uma variável para testar a
possibilidade de executar a região crítica. O teste e o bloqueio é realizado através de uma
única instrução (TSL). O processo impedido de executar sua região
crítica executa um loop de espera. Gasto de CPU.
![Page 25: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/25.jpg)
25Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Software
Em geral, as soluções por software resolvem a exclusão mútua, mas geram a espera ocupada(Busy Wait): Teste contínuo de uma variável até que ocorra
uma mudança no seu valor; O processo impedido de executar sua região
crítica executa um loop de espera. Gasto de CPU.
![Page 26: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/26.jpg)
26Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Software
Variável de Travamento; Uma variável é utilizada para informar se algum
outro processo está em sua respectiva região crítica;
Gera uma nova condições de corrida. Estrita Alternância.
Processos se alternam na execução da região crítica;
Processos podem estar bloqueados, sem ninguém estar em sua região crítica;
É necessário que os processos possuam freqüência semelhante na execução da região crítica.
![Page 27: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/27.jpg)
27Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Software
Estrita Alternância Solução proposta para o problema da
região crítica.
(a) Processo 0 (b) Processo 1
busy wait
![Page 28: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/28.jpg)
28Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Software
Solução de Peterson: Chamadas a rotinas antes de entrar e
após sair da região crítica; A rotina de entrada só retorna quando
não houver outro processo executando a sua região crítica.
![Page 29: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/29.jpg)
29Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Software
Solução de Peterson:
![Page 30: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/30.jpg)
30Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Software
Problema de Inversão de Prioridades: Processo com baixa prioridade em sua
região crítica; Processo com alta prioridade em busy
waiting; Starvation.
![Page 31: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/31.jpg)
31Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Software
Implementações de uso das regiões críticas sem a espera ocupada: Semáforos (Counting Semaphores); Semáforos Binários
Mutex (Mutual Exclusion Semaphores); Monitores.
![Page 32: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/32.jpg)
32Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Software
Chamadas sleep e wakeup: Sleep:
Coloca o processo chamador no estado de espera.
Wakeup: Coloca um outro processo que está em
espera no estado de pronto.
![Page 33: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos](https://reader035.fdocuments.net/reader035/viewer/2022062300/557237bdd8b42a78548b48d6/html5/thumbnails/33.jpg)
33Pearson Education Sistemas Operacionais Modernos – 2ª Edição
Soluções de Software
Semáforos: Ferramenta de sincronização criada por
Dijkstra (1965); Características:
Variável inteira; Não negativa.
Manipulados exclusivamente por duas operações atômicas:
DOWN (generalização do sleep) UP (generalização do wakeup) Implementados como chamada ao sistema.