No que se refere aos sistemas operacionais, julgue os itens ...

Próximas questões
Com base no mesmo assunto
Q351776 Sistemas Operacionais
No que se refere aos sistemas operacionais, julgue os itens subsequentes.

No multiprocessamento, há chaveamento entre dois processos, assim como entre dois threads no mesmo processo. Este segundo caso de chaveamento é mais rápido que o primeiro e sua MMU (Memory Management Unit) não é afetada.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - certo

Para compreender o porquê da alternativa 'C' ser a correta, é crucial entender alguns conceitos sobre processos e threads, bem como o funcionamento da Memory Management Unit (MMU).

Em sistemas operacionais, um processo é uma instância de um programa em execução, que possui seu próprio espaço de endereçamento e recursos alocados pelo sistema operacional. Dentro de um processo, podemos ter múltiplas threads, que são linhas de execução que compartilham o mesmo espaço de memória do processo, mas executam independentemente entre si. Isso permite que tarefas dentro do mesmo processo sejam realizadas concorrentemente, melhorando o desempenho e a responsividade do programa.

O chaveamento entre dois processos é conhecido como context switch. Quando tal mudança acontece, o sistema operacional precisa salvar o estado do processo atual, incluindo seu contador de programa, registradores e informações de memória, para depois carregar o estado do próximo processo. Este procedimento é relativamente custoso, porque envolve a atualização da MMU para refletir o mapeamento de memória do novo processo.

Por outro lado, quando há chaveamento entre duas threads do mesmo processo, o custo do chaveamento é significativamente reduzido. Isso ocorre porque as threads compartilham o mesmo espaço de memória e, consequentemente, a configuração da MMU não precisa ser alterada. Apenas o estado interno das threads, como contador de programa e registradores, precisa ser salvo e restaurado, o que faz com que o processo de chaveamento seja mais rápido.

Portanto, o enunciado está correto em afirmar que o chaveamento entre duas threads no mesmo processo é mais rápido que o chaveamento entre dois processos, e que a MMU não é afetada durante o chaveamento de threads. Isso é um aspecto fundamental do funcionamento de threads que contribui para a eficiência do multiprocessamento em sistemas operacionais modernos.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Alguém pode explicar porque esta certa?!

Threads do mesmo processo compartilham a memória não necessitando haver modificações na MMU. Processos não compartilham, mas sim disputam, na troca de processos, o novo processo precisaria ocupar espaço na memória utilizando o MMU.

Essa questão é um pouco maldosa, tentarei explicar melhor:

Silberschatz explica que os processos podem ser de dois tipos; cooperativos ou independentes. Os cooperativos trocam informações entre eles, ou melhor, sua execução pode afetar outros processos, enquanto os independentes trabalham isoladamente.

Há duas formas para os processos cooperativos "trocarem informações"; 1º. compartilhamento de memória ou 2º. transmissão de mensagens. Para mais informações leiam o livro dele (muito massa) de fundamentos de sistemas operacionais.

Fiquei um pouco incerto ao ler a questão porque sistemas operacionais com suporte ao multiprocessamento não necessariamente trabalham com processos cooperativos. Mas isso foi um detalhe que tive que desconsiderar porque o restante da questão está OK.

Essa é uma das várias nuances ao fazer questões de concursos.

na troca de contexto de procesos a TLB da MMU precisa fazer trocas de paginas para novos endereços virtuais do outro processo, assim os mapeamentos da TLB sao todos invalidados e esvaziados. em troca de contexto de threads , a MMU  e a TLB permanecem inallterados, pois o espaço de endereçamento eh o mesmo! 

sim, a troca de contextos entre threads é mais rapida porque threads ja estao no mesmo espaço de memoria. processos têm seus proprios espaços de endereçamento, e por isso context switching exige mais recursos

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo