Porque é necessário escalonar? Escalonamento de s s precisam ser executados s concorrem a PU Escalonador: omponente (implementação) do sistema operacional etermina a ordem de dos baseado num algoritmo de escalonamento Lê a fila que contém os no estado pronto e os ordena para O que provoca o escalonamento? Tipos de algoritmo de escalonamento Novo Pronto Executando Preemptivo: Execução de um processo dura um tempo prédeterminado Quando o tempo acaba, o processo é interrompido. loqueado Terminado Não-preemptivo: fica em até que: Termine Libere a PU VOLUNTRIMENTE Seja bloqueado por falta de recurso
O que afeta a performance de um algoritmo de escalonamento? ada processo possui informações que permitem definir precisamente seu estado. Tais informações definem o contexto do processo Ilustração da troca de contexto preempção Troca de ontexto Mecanismo que permite ao escalonador interromper uma tarefa, e executá-la posteriormente, sem corromper seu estado. Separação do escalonamento Escalonamento = Política + Mecanismo ispatcher (P) Escalonador ispatcher (P) Salvar o contexto de Verificar P qual o próximo processo a ser executado Restaura o contexto de P tempo Qual o objetivo do escalonamento? EPENE do tipo de sistema operacional Lote: Não possui usuários aguardando pode ser preemptivo ou não Não possui muita troca de contexto OJETIVOS: melhorar o throughput (vazão) melhorar o turnaround (tempo entre submissão e finalização) manter a PU ocupada Qual o objetivo do escalonamento? Propósito Geral: Possuem usuários interagindo Precisam ser preemptivos OJETIVOS melhorar o tempo médio de resposta atender as expectativas dos usuários Tempo real: Em geral são preemptivos OJETIVO: cumprir requisitos lógicos cumprir requisitos temporais
Qual o objetivo do escalonamento? Independente do tipo de sistema operacional, TOOS os algoritmos de escalonamento precisam atender a alguns critérios: Justiça (fairness) plicação da política de escalonamento Equilíbrio (balance) entre as partes do sistema FFS (ou FIFO) Primeiro processo da fila de pronto é o escolhido para executar. Não-preemptivo Fácil de entender Fácil de programar Justo s de baixo custo de podem esperar muito tempo para ser executado FFS FFS (ou FIFO) : usto de chegada usto de chegada t = t =
Menor Job Primeiro O job de menor custo de executa primeiro. Não-preemptivo Fácil de entender Fácil de programar Justo Para ser adequado, requer que todos os jobs estejam disponíveis simultaneamente Menor Job Primeiro usto de SJF Shortest Job First usto de s tem diferentes prioridade de Preemptivo aseado nos ciclos da PU ou quantum pode ser atribuída estaticamente ou dinamicamente Pode ser implementado considerando filas de prioridades implementação de filas pode representar um problema!
usto de hegada usto de hegada tempo usto de hegada t = Filas Múltiplas s executam dentro de uma fatia de tempo predefinida (quantum) Preemptivo Justo Tamanho do quantum variável trocas de contexto. daptável para diferentes tamanhos de processo Os são promovidos a medida que o tempo passa