33
1 n Sistemas Operacionais Moder Sistemas Operacionais -Gerência de Processos Ernesto Massa (slides fornecidos pela Prentice Hall e adaptados para esta disciplina)

2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos

Embed Size (px)

Citation preview

Page 1: 2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.