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

Relacionados