Threads Flashcards
O que são threads?
Funcionam como subprocessos dentro de um processo
Como são executadas?
No mesmo ambiente do processo mesmo independente umas das outras.
Existe protecção nas threads do mesmo processo?
Não, é suposto cooperarem.
O que é que partilham?
O mesmo espaço de endereçamento, ficheiros abertos e outros recursos. Assim podem ler e escrever nos recursos partilhados.
Que estados têm as threads?
Os mesmos que os processos.
O que é que manipulam?
As System Calls. Têm System Calls para serem manipuladas.
O que é uma Thread-Yeld?
Permite a uma thread conceder voluntariamente o CPU e outra thread executar-se.
Quais são as vantagens?
Úteis para dividir programas em várias atividades simultâneas.
Podem tirar partido do sistema com vários CPU’s, executando paralelismo real, além do pseudoparalelismo.
A sua criação e gestão, em relação aos processos, é mais rápida e leve; não é necessário criar todos os recursos.
O que são threads em userspace?
- Correm inteiramente em userspace e o Kernel não sabe nada sobre a thead.
- Implementadas por uma biblioteca e cada processo necessita da sua própria Thread Table para guardar informação sobre as threads e permitir a sua comutação.
- O procedimento que guarda o estado e o escalonamento entre threads é local, ou seja, mais rápido que fazer uma chamada ao Kernel.
- A chamada thread-yeld permite a uma thread conceder voluntariamente o CPU e outra thread executar-se.
E no Kernel Space?
- O escalonador do SO gere as threads.
- O Kernel tem uma tabela de threads que guarda todas as threads nos sistemas.
- Quando uma thread pretende criar ou destruir outra thread, faz uma System Call que atualiza a Thread Table.
- Quando uma thread se bloqueia, o escalonador pode correr uma thread do mesmo processo ou outra de um processo diferente.