Você está na página 1de 64

Sistemas operacionais

modernos
Terceira edição
ANDREW S. TANENBAUM

Capítulo 2
Processos e
Threads

slide 1 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


O modelo de processo

slide 2 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Criação de processos
Eventos que causam a criação de processos:

• Inicialização de sistema.
• Execução de uma chamada de sistema de criação de
processo por um processo em execução.
• Requisição do usuário para criar um novo processo.
• Inicialização de uma tarefa em lotes.

slide 3 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Término de processos

Eventos que causam o término de um processo:

• Saída normal (voluntária).


• Saída por erro (voluntária).
• Erro fatal (involuntário).
• Cancelamento por outro processo (involuntário).

slide 4 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Hierarquia de processos

slide 5 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Implementação de processos

slide 6 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 7 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
slide 8 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
Modelando a multiprogramação

slide 9 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Uso do thread

slide 10 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 11 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
slide 12 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
slide 13 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
O modelo de thread clássico

slide 14 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 15 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
slide 16 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
Threads POSIX

slide 17 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 18 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
Implementando threads no espaço do
usuário

slide 19 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Implementações híbridas

slide 20 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Threads pop-up

slide 21 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Convertendo o código monothread em
código multithread

slide 22 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 23 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
Condições de corrida

slide 24 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Regiões críticas
Condições necessárias para evitar condições de
corridas:

• Dois processos não podem estar simultaneamente dentro


de suas regiões críticas.
• Nada pode ser afirmado sobre a velocidade ou
sobre o número de CPUs.
• Nenhum processo sendo executado fora de sua região
crítica pode bloquear outros processos.
• Nenhum processo deve esperar eternamente para entrar
em sua região crítica.
slide 25 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
slide 26 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
Exclusão mútua com espera ociosa

Propostas para obtenção de exclusão mútua:

• Desabilitando interrupções.
• Variáveis do tipo trava.
• Chaveamento obrigatório.
• Solução de Peterson.
• A instrução TSL.

slide 27 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Chaveamento obrigatório

slide 28 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Solução de Peterson

slide 29 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


A instrução TSL

slide 30 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 31 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
O problema produtor-consumidor

slide 32 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Semáforos

slide 33 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Mutexes

slide 34 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Mutexes em Pthreads

slide 35 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 36 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
(Continua)

slide 37 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


(Continuação)

slide 38 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Monitores

slide 39 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


(Continua)

slide 40 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


(Continuação)

slide 41 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Troca de mensagens

slide 42 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 43 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
slide 44 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
O problema produtor-consumidor com troca
de mensagens

slide 45 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 46 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
Barreiras

slide 47 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Comportamento escalonamento-processo

slide 48 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Categorias dos algoritimos de
escalonamento
• Em lote.
• Interativa.
• Tempo real.

slide 49 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Objetivos dos algoritmos de escalonamento

slide 50 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Escalonamento em sistemas em lotes

• Primeiro a chegar, primeiro a ser servido.


• Tarefa mais curta primeiro.
• Próximo de menor tempo restante.

slide 51 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Tarefa mais curta primeiro

slide 52 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Escalonamento em sistemas interativos
• Escalonamento por chaveamento
circular.
• Escalonamento por prioridades.
• Filas mútiplas.
• Próximo processo mais curto.
• Escalonamento garantido.
• Escalonamento por loteria.
• Escalonamento por fração justa.
slide 53 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
Escalonamento por chaveamento circular

slide 54 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Escalonamento por prioridades

slide 55 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


Escalonamento de threads

(Continua)

slide 56 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


(Continuação)

slide 57 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


O problema do jantar dos filósofos

slide 58 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 59 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
slide 60 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
slide 61 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
slide 62 © 2010 Pearson Prentice Hall. Todos os direitos reservados.
O problema dos leitores e escritores

slide 63 © 2010 Pearson Prentice Hall. Todos os direitos reservados.


slide 64 © 2010 Pearson Prentice Hall. Todos os direitos reservados.

Você também pode gostar