Política de Escalonamento Para um Sistema Operacional Multiusuário e Preemptivo
Por: aljori82 • 16/3/2016 • Pesquisas Acadêmicas • 477 Palavras (2 Páginas) • 658 Visualizações
Página 1 de 2
Política de escalonamento para um Sistema Operacional multiusuário e preemptivo
- Um algoritmo de dois níveis, superior e inferior;
- Algoritmo de nível inferior escolhe a execução do próximo processo de um conjunto de processos que estão na memória e no disco afim de que todos os processos tenham a oportunidade de estar na memória e assim poderem ser executados;
- Utilizaria de múltiplas filas, sendo que cada uma associa-se a uma prioridade dentro de uma faixa de valores de prioridades não sobrepostos;
- Os processos no modo do usuário teriam menores prioridades e os processos que fazem chamadas ao sistema apresentariam maiores prioridades;
- Quando o escalonador de nível inferior fosse executado, ele investigaria as filas começando pela de maior prioridade até encontrar uma fila ocupada. O primeiro processo dessa fila seria então iniciado. Esse processo teria a permissão de executar por no máximo o tempo de 1 quantum ou até que seja bloqueado;
- Caso dure todo o seu quantum, ele seria colocado de volta no final de sua fila e o escalonador o executaria novamente. Assim, os processos com a mesma prioridade compartilhariam a CPU utilizando o algoritmo round-robin;
- Com base em sua nova prioridade, cada processo seria ligado a uma fila apropriada, cujo número seria obtido geralmente a partir da divisão da prioridade por uma constante;
- Quando um processo interromper o núcleo por um software para fazer uma chamada ao sistema, seria possível que o processo tenha de ser bloqueado antes de completar a chamada ao sistema e retornar para o modo usuário. Ele poderia também precisar aguardar pela conclusão de uma entrada do terminal ou de uma I/O no disco;
- Ao ser bloqueado, seria removido da estrutura de fila, pois já não estaria mais apto a executar. No entanto, ele seria colocado de volta na fila com um valor negativo quando ocorrer o evento que ele esteja esperando;
- A escolha da fila seria determinada pelo evento que ele aguardaria acontecer;
- A prioridade relativa de I/O do disco ou do terminal seria fixada dentro do SO e somente poderia ser modificada pela alteração de algumas constantes do seu código‐fonte seguida de recompilação do sistema;
- Esses valores seriam espaçados o suficiente para que processos que estejam sendo reiniciados por diferentes razões sejam claramente separados em diferentes filas, retirando rapidamente os processos do núcleo deixando o executar imediatamente após cada requisição ter sido concluída, de modo que ele tenha como fazer a próxima rapidamente;
- Para processo interativo deveria ser atribuída uma alta prioridade, assim que este estivesse pronto, afim de garantir que esses fossem bem servidos;
- Desse modo, os processos orientados a filas positivas basicamente conseguiriam todo o serviço que sobra quando todos os processos interativos e orientados a I/O estão bloqueados.
Introdução aos Sistemas Operacionais. Disponível em:
II - Processos e Threads. Disponível em: < http://equipe.nce.ufrj.br/thome/grad/so_old/apostila/Processos.pdf>. Acesso em: 16 de março de 2016.
...
Disponível apenas no TrabalhosGratuitos.com