Sistemas Operacionais Aula 7 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE
O que fazer com essa apresentação Anderson Moreira Sistemas Operacionais Aula 7 junho de 11
Créditos Professor: Anderson L. S. Moreira Disciplina: Sistemas Operacionais Home-page: http://dase.ifpe.edu.br/~alsm Aula 7 mostra como o processador é gerenciado pela figura do escalonador e as diversas formas de escalonamento. 2/14
Relembrando a última aula... Mecanismos de sincronização possibilitam a execução correta de programas concorrentes; Solução baseada em HW: interromper as interrupções Mais ou menos interessante Soluções baseada em SW: Espera ativa: Lock Sleep/Wakeup Semáforos (mutex/contagem) Implementação de referência: POSIX.
Plano da aula de hoje Conceitos gerais sobre o escalonador: Objetivos, disparo, interação com os processos. Chaveamento de contexto Algoritmos de escalonamento: definições gerais Níveis de escalonadores Preemptivo ou não? Algoritmos não-preemptivos FIFO, SJF, prioridades
O escalonador no SO O escalonador decide qual processo tem acesso à CPU num dado instante. Junto com a definição da noção de processo e com primitivas de sincronização, o escalonador constitui a base do núcleo. Visa a otimizar o uso do recurso CPU. Vários critérios possíveis de otimização! Eficiência: 100% de uso da CPU; Número de processo atendidos / segundo; Tempo de espera da parte do usuário (turn around). Equidade: garantir acesso a todos os processos; Tempo de resposta: ser rápido na tomada de decisão.
Introdução Escalonamento Estado de Execução Escalonamento Estado de Espera Estado de Pronto
Funções Básicas Manter a UCP ocupada a maior parte do tempo Balancear o uso da UCP entre processos Privilegiar a execução de aplicações críticas Maximizar o throughput Oferecer tempos de resposta razoáveis para usuários interativos Implementada pelo scheduler e dispatcher Processos unidades de alocação de recursos Threads unidades de escalonamento
Critérios de Escalonamento Utilização do processador Throughput Tempo de Processador / Tempo de UCP Tempo de Espera Tempo de Turnaround Tempo de Resposta
Vários níveis de escalonamento Escalonador de curto prazo Decide da alocação da CPU Tempo de resposta: faixa da ms Escalonador de médio prazo Decide do gerenciamento de memória * Swap Tempo de resposta: faixa de 100 ms Escalonador de longo prazo Gerência a criação dos processos Escalona os acessos ao disco *
Escalonador Vs Dispachante Distinguem-se duas partes: O escalonador é responsável pela escolha do processo eleito para usar a CPU. O dispachante é responsável pelo lado técnico de: Salvar o processo que estava usando a CPU; Executar o processo eleito na CPU. Isso se chama efetuar a troca de contexto.
Quando o escalonador executa? 1. Ao acontecer a transição executando para bloqueado (pergunta: quando isso acontece?) 2. Ao acontecer a transição executando para pronto (pergunta: quando isso acontece?) 3. Ao encerrar-se um processo. 1-2-3: o processo para de executar, e isso dispara o escalonador. 4. Ao acontecer a transição bloqueado para pronto. Pode ter sido liberado um processo importante.
Quando preemptar ou não? Não-preempção: quando um processo executa, ele não pode ser interrompido por um fator externo. Deixa a CPU ou por vontade própria (sleep), ou porque terminou. Windows 3.1, Apple Mac. OS antigos (<8) Os casos 1-2-3 tinham a ver com não-preempção. Preempção: ato de interromper a execução de um processo para executar um outro. SO s modernos (Windows 9x, XP, Linux) Necessita sincronização! O caso 4 implica, potencialmente, em preempção.
Algoritmos não-preemptivos FIFO (First in, First out) Primeiro chegado, primeiro atendido; O mais simples; SJF (Shortest Job First) Necessita informações a respeito dos processos e de sua duração! Extremamente eficiente. Prioridades Generalização do SJF
Escalonamento FIFO Escalonamento First-In-First-Out Estado de Criação Fila dos processos no estado de Pronto UCP Estado de Término Estado de Espera
Escalonamento FIFO Exemplo Processo A Processo B Processo C 10 14 17 u.t. Processo Tempo de processador (u.t.) A 10 Processo A B C 4 3 Processo B Processo C 4 7 17 u.t.
Escalonamento SJF Escalonamento Shortest-Job-First Processo A Processo B Processo C 3 7 17 u.t.
Escalonamento Cooperativo Processo em execução libera voluntariamente a UCP Verifica a fila de mensagens periodicamente Podem ocorrer problemas Exemplo: primeiros sistemas MS-Windows 3.x
Escalonamento por Prioridades Filas dos processos no estado de Pronto Prioridade P1 Prioridade P2 Estado de Criação UCP Estado de Término Prioridade Pn Preempção por prioridade Estado de Espera
Escalonamento por Prioridades Exemplo Processo A Processo B Processo A Tempo de processador (u.t.) 10 Prioridade 2 Processo C B C 4 3 1 3 3 13 17 u.t.
Escalonamento Circular com Prioridades Fila dos processos no estado de Pronto Prioridade P1 Prioridade P2 Estado de Criação UCP Estado de Término Prioridade Pn Preempção por tempo ou prioridade Estado de Espera
Exercícios Procure informações a respeito de como funciona a forma de escalonamento em Sistemas de Tempo Real! Usem fontes de pesquisas como Google Schoolar http://scholar.google.com/advanced_scholar_search Utilizem Livros da Biblioteca Utilizem o professor!!!
Dúvidas? Anderson Moreira Sistemas Operacionais Aula 7 junho de 11
Não percam no próximo episódio! Escalonamento Preemptivo, dúvidas sobre o projeto; E muito mais! Dúvidas?