Threads
Aula 10: Threads
Objetivos da aula
1. Entender o que são threads;
2. Entender as características dos threads;
3. Entender os conceitos de:
1. Ambiente Monothread
2. Ambiente Multithread
4. Modos de threads;
1. Modo usuário
2. Modo kernel
3. Modo híbrido
21 de Março de 2012
1
Disciplina: Fundamentos de Sistema Operacional
Aula 10: Threads
Threads
Lembram das limitações de processos independentes e subprocessos ?
E os threads, o que são ?
Simples: uma sub-rotina de um programa que pode ser executada de forma assíncrona, ou seja, executada concorrentemente com o programa chamador.
Características importantes:
•
•
•
•
Cada thread possui seu próprio contexto de hardware;
Porém compartilha o mesmo contexto de software e espaço de endereçamento, o que melhora a velocidade na comunicação;
Thread compartilham o processador da mesma maneira de um processo, enquanto um thread espera um I/O, outro thread pode ser processado;
São implementadas internamente através do TCB – thread control block, que armazena, além do contexto de hardware, a prioridade, estado de execução e bits de estado.
21 de Março de 2012
2
Disciplina: Fundamentos de Sistema Operacional
Aula 10: Threads
Threads – Figura para ilustrar um processo usando threads
21 de Março de 2012
3
Disciplina: Fundamentos de Sistema Operacional
Aula 10: Threads
Threads – Ambiente Monothread
Neste ambiente um determinado processo suporta apenas UM programa em seu espaço de endereçamento. Neste ambiente, aplicações concorrentes são implementadas apenas com o uso de múltiplos processos independentes ou subprocessos.
Tá, ok. Mas qual a grande bronca ???
O NÃO compartilhamento do espaço de endereçamento faz com que a comunicação entre processos seja lenta e complexa, pois utiliza recursos como pipes, sinais, semáforos, memória compartilhada ...
21 de Março de 2012
4
Disciplina: Fundamentos