gerenciamento de processadores
Com diversos softwares rodando em nossos computadores os processos gerados por eles devem ser gerenciados, com isso conseguimos garantir que cada processo receba tempo suficiente de processamento para funcionar corretamente.
Também conseguimos aproveitar os ciclos do processador utilizando quantos necessários para realizar determinada tarefa.
Sistemas monotarefas
Em um sistema monotarefa, este trabalho é bastante simples. O S.O. permite que o aplicativo seja iniciado, suspendendo sua execução somente para tratar as interrupções e inserções do usuário
O que são interrupções?
Interrupções são sinais especiais enviados pelo hardware ou software para a CPU.
É como se alguma parte do computador levantasse a mão e chamasse a atenção da
CPU em uma reunião. Algumas vezes, o sistema operacional vai priorizar alguns processos e ignorar as interrupções para que uma tarefa seja cumprida o mais rápido possível. Entretanto, existem algumas interrupções (condições de erro ou problemas com a memória) que são tão importantes que não podem ser ignoradas.
Essas interrupções não-mascaráveis (NMI - Non-maskable Interrupts) devem ser atendidas imediatamente.
Sistemas multitarefas
Como executar diversas tarefas ao mesmo tempo se a CPU só pode fazer uma coisa de cada vez?
Para criar esta aparência de coisas acontecendo ao mesmo tempo, o sistema operacional precisa mudar de um processo para o outro milhares de vezes por segundo. Ai está a mágica do gerenciamento do processador!
Entendendo a multitarefas
1. Quando 2 processos acontecem ao mesmo tempo, o sistema operacional aloca uma certa quantidade de ciclos da CPU para um programa.
2. Depois que os ciclos são executados, o sistema operacional faz uma cópia de todos os registradores, pilhas e filas utilizados pelos processos e registra o ponto em que a execução foi interrompida.
3. Ele então carrega todos os registradores, pilhas e filas