Capítulo 6 – thread
1.
Como uma aplicação pode implementar concorrência em um ambiente monothread?
Através de processos independentes e subprocessos.
2.
Quais os problemas de aplicações concorrentes desenvolvidas em ambientes monothread?
Um problema é que o uso de processos no desenvolvimento de aplicações concorrentes demanda consumo de diversosrecursos do sistema. Sempre que um novo processo é criado, o sistema deve alocar recursos para cada processo,consumindo tempo de processador neste trabalho. No caso do término do processo, o sistema dispensa tempo paradesalocar recursos previamente alocados.Outro problema a ser considerado é quanto ao compartilhamento do espaço de endereçamento. Como cada processopossui seu próprio espaço de endereçamento, a comunicação entre processos torna-se difícil e lenta, pois utilizamecanismos como pipes, sinais, semáforos, memória compartilhada ou troca de mensagem.
3.
O que é um thread e quais as vantagens em sua utilização?
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 aalocação de recursos do sistema, além de diminuir o overhead na criação, troca e eliminação de processos.
4.
Explique a diferença entre unidade de alocação de recursos e unidade de escalonamento?
Em ambientes monothread, o processo é ao mesmo tempo a unidade de alocação de recursos e a unidade deescalonamento. A independência entre os conceitos de processo e thread permite separar a unidade de alocação derecursos da unidade de escalonamento, que em ambientes monothread estão fortemente relacionadas. Em um ambientemultithread, a unidade de alocação de recursos é o processo, onde todos os seus threads compartilham o espaço deendereçamento, descritores de arquivos e dispositivos de E/S. Por outro lado, cada thread representa uma unidade deescalonamento