Quest es SO pronto
Pergunta 1 – Como uma aplicação pode implementar concorrência em um ambiente monothread? R: Aplicações concorrentes são implementadas apenas com o uso de múltiplos processos independentes ou subprocessos. A utilização de processos independentes e subprocessos permite dividir uma aplicação em partes que podem trabalhar de forma concorrente.
Pergunta 2 – Quais os problemas de aplicações concorrentes desenvolvidas em ambientes monothread?
R: O problema neste tipo de implementação é que o uso de processos no desenvolvimento de aplicações concorrentes demanda consumo de diversos recursos do sistema, outro problema a ser considerado é quanto ao compartilhamento do espaço de endereçamento.
Pergunta 3 – O que é um ambiente multithread e quais as vantagens de sua utilização? R: É um ambiente com múltiplos threads, não existe a ideia de programas associados a processos, mas, sim, a threads. O processo neste ambiente tem pelo menos um thread de execução, mas pode compartilhar o seu espaço de endereçamento com inúmeros outros threads.
Pergunta 4 – Explique a diferença entre unidade de alocação de recursos e unidade de escalonamento.
R: Em ambientes monothread, o processo é ao mesmo tempo a unidade de alocação de recursos e a unidade de escalonamento. A independência entre os conceitos de processo e thread permite separar a unidade de alocação de recursos da unidade de escalonamento, que em ambientes monothread estão fortemente relacionadas. Em um ambiente multithread, a unidade de alocação de recursos é o processo, onde todos os seus threads compartilham o espaço de endereçamento, descritores de arquivos e dispositivos de E/S. Por outro lado, cada thread representa uma unidade de escalonamento independente e, neste caso, o sistema não seleciona um processo para a execução, mas sim um de seus threads.
Pergunta 5 – Quais as vantagens e desvantagens do compartilhamento do espaço de endereçamento entre threads de um mesmo processo?
R: Como