Threads
Threads: “subprocessos”.
Bloco de Controle de Threads: Armazena informações de threads (na memória principal).
Quando acontece a interrupção, é tratado a thread e ocorre a troca de contexto.
O registrador da thread interrompida guardará o exato momento em que o subprocesso foi parado. TCB (Thread Control Block): Mecanismo de comunicação e sincronização entre threads.
A operação de criação, troca de contexto e eliminação de threads geram menos overhead.
Em ambientes cliente-servidor, threads são essenciais para solicitação de serviços remotos, no monothread uma solicitação de serviços pode esperar indefinidamente, enquanto aguarda o resultado, no multithread, múltiplos threads permitem que diversos pedidos sejam atendidos simultaneamente.
Modularidade: Divisão do programa em módulos
TMU (thread modo usuário) - biblioteca de rotinas (fora do núcleo);
TMK (thread modo kernel) - no núcleo (sem a necessidade de biblioteca).
Schedual Activation: Ativa os threads
No modo híbrido, através do schedual activation, a biblioteca agenda o uso do kernel. Para implementar a concorrência num ambiente monothread, o sistema deve alocar recursos para cada processo, consumindo tempo de processos neste trabalho, podendo acarretar no overhead. Outro problema desse ambiente é que a comunicação entre os processos são difíceis e lentas por utilizar, como exemplo, memória compartilhada.
Já no ambiente multithread há o compartilhamento de recursos o que deixa o sistema mais rápido e dificulta a ocorrência de overhead (Este ambiente é mais rápido que nos múltiplos processos).
Vantagens: Comunicação entre os threads realizados de forma rápida e eficiente.
Desvantagens: Facilidade de alteração da memória, ou seja, a memória não é protegida. Para melhorar o desempenho de aplicações paralelas em ambientes com múltiplos processos é possível ao trocar os múltiplos processos por threads, pois em um processo pode-se ter partes diferentes do