Thread
Um thread pode ser definido como uma subrotina de um programa que pode ser executada de forma assíncrona, ou seja, executada paralelamente ao programa chamador. A grande vantagem no uso de threads é a possibilidade de minimizar a alocação de recursos do sistema, além de diminuir o overhead na criação, troca e eliminação de processos.
2. Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre threads de um mesmo processo?
Como threads de um mesmo processo compartilham o mesmo espaço de endereçamento, não existe qualquer proteção no acesso à memória, permitindo que um thread possa alterar facilmente dados de outros. Para que threads trabalhem de forma cooperativa, é fundamental que a aplicação implemente mecanismos de comunicação e sincronização entre threads, a fim de garantir o acesso seguro aos dados compartilhados na memória. Por outro lado, o compartilhamento do espaço de endereámento é extremamente simples e rápido.
3. Dê exemplos do uso de threads no desenvolvimento de aplicativos. * Editores de texto * Planilhas Eletronicas
4. Quais são os estados de uma thread? * Criação: * Execução * Pronto * Bloqueado * Término
5. Cite os benefícios da utilização de threads. * O processo poder ser dividido em mais de uma linha de tarefas; * São mais fáceis de criar e destruir que os processos * Melhor tempo de resposta * Permite o compartilhamento de recursos * Economia * Desempenho
6. Quais os modelos de geração de threads? * Muitos-Para-Um: mapeia muitos threads de nível de usuário para threads do kernel. * Um-Para-Um: mapeia cada thread de usuário para um thread de kernel, gera mais concorrência do que o modelo muitos-para-um. * Modelo Muitos-Para-Muitos: multiplexa muitos threads de nível de usuário para um número menor ou igual de threads de