Escalonamento de processos
Estudo de Caso Escolanomento no Windows e Linux
Disciplina: Sistemas Operacionais Prof. Maglan Cristiano Diemer baseado no material de Rober Love, Silberschatz e Galvin
Linux - Arquitetura
Prof. Maglan C. Diemer - Estudo de Caso - Escalonamento no Windows e Linux
Linux - Escalonamento
●
●
●
Em Linux, o escalonamento também inclui a execução de tarefas do kernel Estas tarefas do kernel incluem as tarefas requisitadas por processos em execução e as tarefas internas ligadas a device drivers A execução em modo kernel pode ocorrer de duas formas:
–
–
Um programa em execução requisita explicitamente um serviço do SO através de uma função de sistema ou implicitamente quando o gerenciamento de memória virtual gera uma “falha de página” Um device driver gera uma interrupção que leva a CPU a iniciar uma rotina do kernel para atendimento do serviço
Prof. Maglan C. Diemer - Estudo de Caso - Escalonamento no Windows e Linux
Linux - Execução em Modo Kernel
●
O Linux usa duas técnicas para proteger a execução do kernel:
–
1. O código normal do kernel não pode ser interrompido
●
Quando uma interrupção surge durante a execução em modo kernel, uma flag é ativada de modo que o escalonador possa executar logo que a função de sistema termine e o controle volte para modo não privilegiado
–
2. Para seções críticas de código dentro de rotinas de serviço usa-se outra técnica
●
Desativando as interrupções por hardware durante as seções críticas, o kernel garante que pode prosseguir sem o risco de acesso simultâneo a dados partilhados do SO (e sem possibilidade de se modificar o sistema)
Prof. Maglan C. Diemer - Estudo de Caso - Escalonamento no Windows e Linux
Linux - Escalonamento Processos
●
O Linux usa dois métodos de escalonamento de processos: – Um algoritmo de tempo compartilhado para escalonamento justo e preemptivo entre vários processos. (nenhum processo utilize eternamente a