Sistemas operacionais
INTRODUÇÃO
As threads são definidas como processos de pouco peso. São a unidade básica do processador central de um programa sendo um córrego seqüencial da execução dentro de um processo. Com o intuito de mostrar uma visão geral sobre o assunto, abordaremos conceito, benefícios, utilizações, gerenciamento e características de threads em alguns Sistemas Operacionais, bem como algumas aplicações.
CONCEITO
Processo com entidade própria, com próprio contexto de escalonamento, mas que compartilha a estrutura de dados com seu pai. Thread ou processo leve é uma unidade básica de utilização de CPU que consiste em: apontador de instruções, conjunto de registradores e espaço de pilhas. Uma thread compartilha com threads irmãs: a área do código, a área de dados e recursos do sistema operacional.
Em uma tarefa dotada de múltiplos fluxos de execução, enquanto um fluxo está bloqueado esperando, um outro fluxo na mesma tarefa pode continuar rodando. Cooperação de múltiplas threads em uma mesma tarefa aumenta o throughput e performance. O mecanismo de threads permite que processos seqüenciais sejam executados paralelamente, apesar de poderem fazer chamadas ao sistema que bloqueiam processos. Na programação é um processo que faz parte de um processo maior ou programa. Em uma estrutura de dados em forma de árvore, um ponteiro que identifica o nó imediatamente superior (Pai) sendo usado para facilitar o percurso da árvore (CASTRO, 1998).
As threads operam de forma semelhante a processos quanto ao seu estado, podem ser pronto, bloqueado, executando e terminado, apenas uma thread de cada vez em execução na CPU, executa seqüencialmente e pode criar threads filhas.
E se diferem de processos, por exemplo, quando uma thread bloqueia, outra da mesma task pode ser executada, não são independentes umas das outras, podendo invadir o espaço de outra a invalidando, não são protegidas umas das outras. Threads múltiplas em um único Espaço de Endereçamento