Trabalhos Sistemas
1) Como uma aplicação pode implementar concorrência em ambiente monothread?
R . Através de processos independentes e subprocessos
2) Quais os problemas de aplicações concorrentes desenvolvidas em ambientes mo- nothreads? R - Um problema é que o uso de processos no desenvolvimento de aplicações concorrentes demanda consumo de diversos recursos 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 para desalocar recursos previamente alocados. Outro problema a ser considerado é quanto ao compartilhamento do espaço de endereçamento. Como cada processo possui seu próprio espaço de endereçamento, a comunicação entre processos torna-se difícil e lenta, pois utiliza mecanismos como pipes, sinais, semáforos, memória compartilhada ou troca de mensagens
3) O que é um ambiente multithread e quais as vantagens de sua utilização?
R.: É um ambiente onde os programas estão associados as threads. O processo, nesse ambiente, tem pelo menos um thread de execução, podendo compartilhar o seu espaço de endereçamento com inúmeros threads.
Vantagens: um ambiente multithread possibilita a execução concorrente de sub rotinas dentro de um mesmo processo.
4) Quais as vantagens e desvantagens do compartilhamento do espaço de endere- çamento entre threads de um mesmo processo?
R: 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 threads. 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çamento é extremamente simples e rápido.
5)