bazonga
2308 palavras
10 páginas
Nas aulas anteriores…Threads POSIX
Processos
Marcelo Johann
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Aula 07 : Slide 2
Plano da aula
A imagem do processo
• Introdução: do processo às threads
• Duas categorias de threads
• Texto: contém as instruções binárias do código executável do processo (imagem).
– Núcleo vs. usuário
• Dados: espaço para as variáveis do processo, declaradas como globais no programa.
• Mapeamento threads/processos
• Heap: memória para alocação sob-demanda durante a execução – 1:1, N:1, N:M
– Alocação dinâmica (malloc/free)
• Exemplos de implementações
• Pilha: memória para alocação:
– Solaris, Windows 2000, Linux.
– De variáveis locais a sub-rotinas (vide chamada de funções);
– Do endereço de retorno de uma sub-rotina.
• Programação com Threads
• Área do usuário vs. área do sistema.
– Posix Threads
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Aula 07 : Slide 3
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Aula 07 : Slide 4
O processo é…
A noção de thread
• Um programa em execução
• Idéia simples: associar mais de um fluxo de execução a um processo:
– Uma unidade de escalonamento
– Um fluxo de execução
• Um conjunto de recursos (contexto) gerenciados pelo
Sis. Op.
–
–
–
–
Registradores (PC, SP, …)
Memória
Descritores de arquivos
Etc…
– Compartilhamento de recursos do PCB
– O PCB deve incluir uma lista de threads!
Código
PC1
SP1
• A troca de contexto é uma operação pesada
Dados
PC3
SP3
Arquivos
PC4
SP4
– Deve acontecer cada vez que há decisão de escalonamento INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Processo
Aula 07 : Slide 5
INF01142 - Sistemas Operacionais I N - Marcelo Johann - 2010/2
Aula 07 : Slide 6
1
Implementação de threads
Vantagens das threads
• O Bloco descritor de Threads inclui:
• São