Exercícios processos e threads
1 – Na teoria, com três estados para o processo (pronto, executando e bloqueado), poderia haver seis transições, duas para cada estado. Contudo, apenas quatro transições são normalmente comentadas. Há alguma circunstância na qual uma dela ou ambas as transições não ilustradas podem ocorrer? Defina cada uma das quatro transições ilustradas.
Resposta: Uma das transições que poderia haver, mas não é comentada e não tem como haver de um estado para outro é a do estado pronto para bloqueado, ela não acontece porque não tem como um processo em estado de pronto saber que precisa de uma entrada/saída. Outra transição que não é comentada é a de bloqueado para executando, isto porque não é viável o custo benefício desta transição. A transição 1 acontece quando o SO descobre que um processo não pode prosseguir, em alguns sistemas operacionais é necessário que o processo execute uma chamada de sistema, como pause para ficar no estado bloqueado, em outros sistemas, quando o processo faz uma leitura de um pipe ou um arquivo especial e não tem entrada disponível, automaticamente o processo é bloqueado. O escalonador de processos causa as transições 2 e 3 sem que o processo saiba disso. A transição 2 acontece quando o escalonador decide que o processo em execução já teve tempo suficiente da CPU é hora de outro processo ocupar o tempo da CPU. A transição 3 acontece quando todos os processos já compartilharam a CPU, de uma maneira igual, e esta na hora do primeiro processo utilizar a CPU. A transição 4 acontece quando o processo aguarda um evento externo, como a chegada de uma entrada.
2 – Assinale a alternativa correta em relação à multiprogramação: I) Na multiprogramação, os processos executam ao mesmo tempo. II) Para a implementação de multiprogramação, é necessário que o sistema seja multiprocessado. III) A multiprogramação não exige que os processos estejam carregados inteiramente na memória. IV) Não existe a necessidade de haver