Sistema
1) Defina a diferença entre escalonamento preemptivo e não preemptivo. Por que o escalonamento preemptivo é geralmente usando em um sistema de computação. A diferença entre estes dois tipos de escalonamento está no momento em que a decisão de escalonamento é tomada. No escalonamento não preemptivo, uma vez que um processo ganhe a CPU ele não será compulsoriamente suspenso. Ele executará até que libere a CPU voluntariamente (termine de executar) ou até que seja bloqueado (à espera de E/S ou de outro processo). Já no escalonamento preemptivo, um processo que ganha a CPU executa durante um tempo máximo fixado. Se ao término deste tempo o processo não tiver terminado sua execução, ele será interrompido e outro processo será escalonado. A cada interrupção de relógio o controle da CPU é devolvido ao escalonador. O escalonamento ocorrerá também se o processo terminar ou for bloqueado antes do término do período estabelecido. A principal desvantagem dos algoritmos não preemptivos é que quando um processo ganha a CPU, nenhum outro processo pode realizar suas computações até que o processo atualmente na CPU termine. Se este processo entrar em um laço infinito o sistema irá ficar esperando eternamente um término que nunca ocorrerá e nenhum outro processo poderá ganhar a CPU. Essa desvantagem é o principal motivo pelo qual o escalonamento preemptivo é geralmente usado em sistemas de computação.
2) Explique os mecanismos introduzidos em so’s na década de 60 que permitiram que operações de E/S pudessem ser realizadas em paralelo a operações da UCP. Na década de 60 percebeu-se que a maioria dos jobs podiam ser enquadrados em duas categorias: aqueles que passavam a maior parte do tempo realizando computações na UCP (CPU bound) e aqueles que passavam a maior parte do tempo realizando operações de E/S (IO bound). Para evitar que a UCP e os dispositivos de E/S ficassem ociosos por longos períodos de tempo foi desenvolvido o