segunda-feira, 20 de outubro de 2008

Sistemas Baseados em Threads

Um sistema baseado em threads difere-se de um sistema operacional multitarefa tradicional, em que processos são tipicamente independentes, carregam considerável estado da informação, tem endereço de memória separado e interagem somente através de mecanismos de interprocessos de comunicação. As threads, por outro lado, compartilham o estado da informação de processos únicos, e compartilham memória e outros recursos diretamente.

A troca de contexto através de linha de execução num mesmo processo é tipicamente mais rápida que a troca de contexto entre processos diferentes. Sistemas como o Windows NT e o OS/2 são feitos para ter linhas de execução "baratas" e processos "caros", enquanto em outros sistemas operacionais não há grandes diferenças.
Visão Geral de Threads

Thread é a menor unidade de utilização da CPU, ela é composta por um contador de programa, um conjunto de registradores e uma pilha, uma thread de um mesmo processo compartilha a seção de código, seção de dados e outros recursos do sistema operacional, em processos mais antigos existiam apenas uma thread em execução, porém, ao se utilizar mais de uma thread num mesmo processo, poderemos realizar várias linhas de processo, ou mais de uma tarefa específica. 




O modelo Multithreading
O multithreading é um modelo de programação popular que permite a execução de múltiplas linhas de execução dentro de um contexto simples, compartilhando recursos do processo, e capazes de executar de forma independente. O modelo de programação em linha de execução fornece ao desenvolvedor uma execução simultânea. Entretanto, a aplicação mais interessante da tecnologia ocorre quando ela é utilizada em um processo simples permitindo uma execução paralela em sistemas multi-processados.


Sistemas Multi-threaded

Um sistema multi-threaded possui um melhor desempenho que um sistema de computadores com múltiplas CPUs com múltiplos núcleos, ou que um cluster de máquinas. Isto acontece porque a linha de execução empresta a ela mesmo uma execução simultânea. Em alguns casos, o programador precisa ter cuidado em evitar condições de concorrência e outros comportamentos inesperados.


Nenhum comentário:

Postar um comentário