Threads
1º Como uma aplicação pode implementar concorrência em um ambiente monothread?
R: Para implementar a concorrência é necessário utilizar processos e subprocessos independentes que possibilitem que uma aplicação seja dividida em partes que podem trabalhar de forma concorrente.
2ºQuais os problemas de aplicações concorrente desenvolvidas em aplicações monothreads?
R: As aplicações concorrentes desenvolvidas em aplicações monothreads possuem alguns problemas como maior consumo de recursos do sistema, não compartilham o espaço de endereçamento, a comunicação entre os processos é muito lenta e difícil.
3ºO que é um ambiente multithread e quais são suas vantagens de utilização?
R: É um conjunto de sub-rotinas onde as tarefas dos programas são divididas entre eles. A vantagem do ambiente multithread é a otimização no tempo de execução dos programas, utiliza poucos recursos do sistema, mais rápido para a criação, término e troca de contextos.
4ºExplique a diferença entre unidade de alocação de recursos e de escalonamento?
R: A diferença entre unidade de alocação e de recursos de escalonamento é que a unidade de alocação é o processo que está sendo executado enquanto o escalonamento é a seleção que a thread faz entre os processos para a execução, porque o sistema operacional não escalona os processos que serão executados.
5ºQuais as vantagens e desvantagens do compartilhamento de espaço de endereçamento de memória entre threads de um mesmo processo?
R: As vantagens de compartilhamento de espaço de endereçamento é que melhora o desempenho de algumas aplicações onde às tarefas podem ser executadas em background durante operações de E/S, uso de periféricos de forma concorrente entre os threads, enquanto suas desvantagens ficam por conta da segurança, pois o compartilhamento do espaço de endereçamento inibe os mecanismos de proteção no acesso a este processo.
6º Em um programa com vários Threads. Qual Thread terminará primeiro?
R: Não é possível