Processos e Threads (Questões 1 a 10 do livro Sistemas Operacionais Modernos edição 3)
Por: kcrissmartins • 8/11/2016 • Trabalho acadêmico • 372 Palavras (2 Páginas) • 557 Visualizações
1.Pode acontecer quando um processo que está bloqueado recebe uma entrada ou o SO libera CPU's que são suficientes para processar esse arquivo.
2.A CPU precisaria do tempo de início e término dos processos, diferente do processo de alternância, não precisaria finalizar um processo pra que outro fosse executado. O processo de alternância por hardware tem a capacidade de executar dois processos ao mesmo tempo.
3.Porque ações como salvar os registradores e alterar o ponteiro da pilha não podem ser expressas em linguagens de alto nível como C, assim elas são implementadas por uma pequena rotina em assembly.
4.Porque transfere para o SO para liberar outro processo, assim se usar a área da pilha do processo interrompido o outro se interrompe junto, por isso é utilizado a área da pilha do núcleo separada da pilha do processo interrompido.
5.A principal diferença entre o processo que são executados paralelamente e os que são executados sucessivamente é o tempo que eles levam para terminar o processamento. Considerando que temos dois processos sucessivos, onde cada um tem um tempo de dez minutos de execução então apenas após 30 minutos que a CPU terminaria de processar as duas tarefas. Já no caso do processo pseudo-paralelo, temos um caso onde a CPU física fica alternando o processo de tempos em tempos e portanto levaria 15 minutos para que as duas tarefas fossem completadas.
6.Threads em um único processo podem ler, escrever e apagar a pilha de outro thread, não precisando de proteção, atendendo a necessidade de um banco de dados (acesso de escrita e sobrescrita). Os threads em um mesmo processo cooperam no lugar de competir, pois compartilham o mesmo espaço de endereçamento e também os arquivos abertos, processos filhos, alarmes e sinais.
7.Sim, pois sempre que um novo processo é criado, o sistema deve alocar recursos para cada processo, no caso de ser thread único.
8.Thread de núcleo, pois vai bloquear apenas o read. Após o thread ser bloqueado, o SO decide pela execução de outro thread que pode ou não pertencer ao mesmo processo.
9.Sim, em processos que são CPU bound.
10.Porque um processo é sempre propriedade de um usuário, que criou múltiplos threads para que eles possam cooperar e não competir, assim os registradores como são um por thread cooperam com os demais.
...