SistemasOperacionais©2010MarcusRodrigues
Resolução exercício
• Bloqueado em execução
– Possível
– Processo pode estar bloqueado em uma E/S
– E/S termina. Se CPU livre, executa transição
• Pronto bloqueado
– Impossível
– Processo “pronto”
• não executa E/S
• não executa operações que possam bloqueá-lo
• Apenas processo em execução pode bloquear
1
SistemasOperacionais©2010MarcusRodrigues
Sistemas Operacionais
Aula 08
Threads
2
SistemasOperacionais©2010MarcusRodrigues
Processos e Threads
• Processos
• Threads
• Comunicação Interprocessos
• Problemas Clássicos IPC
• Escalonamento
3
SistemasOperacionais©2010MarcusRodrigues
Threads
• Sistemas operacionais tradicionais
– Processos
• Espaço de endereçamento
• Único fluxo de controle (thread)
– Há situações em que
• Múltiplos threads
• Compartilhamento espaço de endereçamento
• Parecem processos separados
4
SistemasOperacionais©2010MarcusRodrigues
Threads
• Modelo de Thread
• Uso de Thread
• Implementação Threads Usuário
• Implementação Threads Núcleo
• Implementações Híbridas
• Ativações Escalonador
• Threads Pop-up
• Código Monothread / Multithread
5
SistemasOperacionais©2010MarcusRodrigues
Threads - Modelo de Thread
• Modelo de Thread
– Contador de programa
– Controle da instrução seguinte
– Registradores contêm variáveis de trabalho
– Pilha com histórico de execução
• Estrutura para procedimentos não retornados
6
SistemasOperacionais©2010MarcusRodrigues
Threads - Modelo de Thread
• Thread x Processo
– Thread executa em um processo
– Processos agrupam recursos
– Threads
• Escalonadas para execução sobre a CPU
• Múltiplas execuções: mesmo ambiente do processo
• Bastante independência entre as execuções
7
SistemasOperacionais©2010MarcusRodrigues
Threads - Modelo de Thread
8
SistemasOperacionais©2010MarcusRodrigues
Threads - Modelo de Thread
• Threads em um processo
– Compartilhamento
• Espaço de endereçamento
• Arquivos abertos
• Outros recursos
• Processos em paralelo
– Compartilhamento
• Memória física
• Discos
• Impressoras e outros recursos
9
SistemasOperacionais©2010MarcusRodrigues
Threads - Modelo de Thread
• Threads
– Lightweight processess (processos leves)
– Multithread: múltiplos threads no processo
– Mesmo funcionamento processos sequenciais
10
SistemasOperacionais©2010MarcusRodrigues
Threads - Modelo de Thread
• Independência de threads
– Acessa qualquer endereço de memória
• Dentro do espaço de endereçamento do processo
– Não há proteção entre threads. Riscos?
• Impossível
• Não é necessário (cooperação)
• Processos diversos
– Mutuamente hostis
– Útil para processos descorrelacionados
11
SistemasOperacionais©2010MarcusRodrigues
Threads - Modelo de Thread
Itens por processo Itens por thread
Espaço de endereçamento Contador de programa
Variáveis globais Registradores
Arquivos abertos Pilha
Processos filhos Estado
Alarmes pendentes
Sinais e tratadores de sinais
Informação de contabilidade
12
SistemasOperacionais©2010MarcusRodrigues
Sobre threads
• É correto afirmar:
a) As transições entre os estados do thread são
as mesmas dos processos
b) Múltiplos threads executando em paralelo em
um processo demonstram paralelismo real
c) Vários processos podem se associar a um
threads, pois este é um processo pesado
d) Threads compartilham contadores de
programa e registradores
13
SistemasOperacionais©2010MarcusRodrigues
Threads - Modelo de Thread
• Múltiplos threads
– Processos iniciam com um único thread
– Thread inicial tem capacidade de criar novos
– Ao término do thread, este pede para sair
– Similares a criação e término de processos
– Threads desistem voluntariamente da CPU
14
SistemasOperacionais©2010MarcusRodrigues
Em sala
• Ponto extra exercício em sala:
– Alisson Lima Sandry Oliveira
• Exercício
• Resposta - 0,1
• Resposta certa
– 1: 0,3
– 2: 0,2
15

Sistemas operacionais - aula8