Fundamentos de Sistemas Operacionais

Documentos relacionados
Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais. Escalonamento de processos

Sistemas Operacionais

Escalonamento de Tarefas

Escalonamento. Decidindo qual processo vai executar. Infra-estrutura de Software

Infra-estrutura de Software. Escalonamento. Decidindo qual processo vai executar

Processos. Aula Passada. Aula Passada (2) Ciclos de CPU e de I/O (1)

Processos. Escalonamento de Processos

Processos. Escalonamento de Processos

Processos. Escalonamento de Processos

Processos. Objetivos do Escalonamento. Políticas de Escalonamento. Algoritmos de Escalonamento. Maximizar a taxa de utilização da UCP.

Sistemas Operacionais: Escalonamento de processos

Algoritmos de Escalonamento II

SOP - TADS Escalonamento de Processos

SEM 544 Desenvolvimento de Produtos Mecatrônicos

Sistemas Operacionais Gerenciamento de Processos

Davidson Rodrigo Boccardo

Gerência do Processador. Adão de Melo Neto

Escalonamento do CPU

Definição. ? Algoritmo de Escalonamento de CPU. ? Algoritmo do S.O. que determina qual o próximo processo a ocupar a CPU

Gerência de Recursos. Gerência do Processador

Sistemas de Tempo-Real

Sistemas de Tempo-Real

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Operacionais

Gerência do Processador. Adão de Melo Neto

Questões de Provas de Períodos Anteriores

Escalonamento de Processos. Estratégia de atribuição do Processador aos Processos

6 ESCALONAMENTO DE CPU

Escalonamento de Processos

Sistemas Operativos. Sumário. Escalonador da CPU. Por Prioridades Round Robin. ! Algoritmos de escalonamento

Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Algoritmos de escalonamento

Bacharelado em Ciência da Computação Sistemas Operacionais

Sistemas Operacionais. Gerência de Processador

Sistemas Operacionais

Sistemas Operativos: Implementação de Processos

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Sistemas Operacionais Aula 07: Scheduling da CPU. Ezequiel R. Zorzal

Escalonamento de Processos Estratégias de Escalonamento de Processos

Na Aula Anterior... Escalonamento de Processos. Nesta Aula. Escalonamento. Comportamento de um Processo. Historicamente...

Estratégias de Escalonamento de Processos

Sistemas Operacionais

Escalonamento de Processos Uniprocessador

Sistemas Operacionais Aula 7

Fundamentos de Sistemas Operacionais

Infra-Estrutura de Software. Escalonamento

Escalonamento de processos

Abordagens de Escalonamento

Sistemas de Computação. Processos e escalonamento

Escalonamento da CPU

Escalonamento da CPU

Sistemas Operacionais. Universidade Federal de Minas Gerais. Aula 3. Escalonamento

Servidores de Aperiódicas

Escalonamento de Processos

Multiprocessamento. Escalonamento de Processos: Algoritmos. Escalonamento em POSIX. Escalonamento de Threads. Padrão de Execução dum Processo

Temporização (Scheduling) de Processos

Lista de Exercícios Escalonamento de CPU. 1. Considere o seguinte conjunto de processos, com o tamanho do tempo de burst de CPU dado em milissegundos:

Fundamentos de Sistemas Operacionais

Sistemas Operativos: Escalonamento de Processos

Escalonamento em Sistemas de Tempo Real

Escalonamento no Unix. Sistemas Operacionais

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

Sistemas Operacionais. Capítulo 8 Gerência do Processador

Conceitos básicos de Tempo Real

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

Executivo Cíclico. Executivo Cíclico Introdução. Sistemas de Tempo Real: Executivo Cíclico Exemplo. Executivo Cíclico Introdução

Sistemas Operativos: Implementação de Processos

Aula 10: Escalonamento da CPU

1 Porque o estado de um processo deve ser salvo quando ele deixa a CPU?

Fundamentos de Sistemas Operacionais

Escalonamento (Algoritmos Clássicos)

Sistemas Operacionais

Escalonamento de Tarefas em sistemas monoprocessados

Sistemas Operacionais. Escalonamento de Processos

Sistemas Operacionais

LabSO Gerência de Processos. Retrospectiva da aula passada... Na aula passada... Na aula passada...

Escalonamento (Tarefas Esporádicas)

Sistemas Operacionais

Ar qu it e t u r a a de e Sist e m a s Ope r a cion a is Fa bia n o o Ut iy a m a Ca pít u lo o 8 Ge r ê n cia a do o Pr oce ssa dor

Resumo: Sistemas Operacionais Abertos

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III. Escalonamento de Processos. 24/04/2014 Prof. Valeria M. Bastos

RELÓGIOS. (d) Entre 101 e 99 milisegundos. (e) Entre 102 e 98 milisegundos.

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Escalonamento de Processos

Sistemas Operacionais

Sistemas de Tempo-Real

Sistemas Operacionais

Gerência do Processador

Capítulo 5: Escalonamento da CPU. Operating System Concepts 8th Edition

Notas da Aula 8 - Fundamentos de Sistemas Operacionais

Variância dos Tempos de Resposta

Introdução aos Sistemas de Tempo Real

Transcrição:

Fundamentos de Sistemas Operacionais Aula 11: Escalonadores: Estudos de Caso Diego Passos

Últimas Aulas

Escalonadores Escalonadores não-preemptivos: FIFO. SJF (com e sem previsão). Escalonadores preemptivos: Prioridades. Round-robin. Round-robin com prioridades. Múltiplas filas.

Escalonadores de Tempo Real

Problema e Objetivo Em um sistema de tempo real, processos têm prazos. Prazos devem ser cumpridos, ou há penalidades envolvidas. O problema de escalonamento, neste caso, envolve distribuir o processador pelos processos de forma a atender a todos os prazos. Objetivos como tempo de resposta médio não são considerados. Escalonadores de tempo real precisam dar garantias. Sistema precisa ser escalonável. Novos processos são aceitos apenas se o sistema se mantém escalonável.

Dados Esperados pelo Escalonador Supõe-se que os processos (também chamados de Tarefas) sejam periódicos. De tempos em tempos, tarefas são re-submetidas ao sistema. Supõe-se que o escalonador tem conhecimento das seguintes informações: C_i: duração da tarefa (no pior caso). P_i: prazo de conclusão da tarefa (uma vez que ela chegue ao sistema). T_i: período da tarefa. n: número total de tarefas no sistema. Como as tarefas são conhecidas, as durações são previamente medidas. Em geral, assume-se que o prazo de uma tarefa é igual ao seu período.

Escalonador Taxa Monotônica Escalonador mais simples. Atua de forma preemptiva. Atribui prioridades estáticas à cada tarefa. Prioridade de uma tarefa é inversamente proporcional ao seu prazo/período. Quanto maior o prazo, menor a prioridade. A cada momento de escalonamento, é escolhida a tarefa com a maior prioridade. Uma tarefa escalonada executa até que: ela termine sua execução; ou uma nova tarefa de maior prioridade chegue.

Exemplo

Teste de Escalonabilidade do Escalonador Taxa Monotônica Quando uma nova tarefa deve ser criada no sistema, o escalonador de longo prazo executa o seguinte teste: Se a utilização do processador estiver abaixo do valor do lado direito da expressão, garante-se que o sistema é escalonável. Caso contrário, não há garantias. O sistema pode ser escalonável. A condição é suficiente, mas não necessária.

Teste de Escalonabilidade do Escalonador Taxa Monotônica (mais)

Teste de Escalonabilidade Baseado em Simulação Pode-se testar a escalonabilidade de um sistema através de simulação. Basta construir o gráfico de escalonamento, utilizando o algoritmo selecionado. Deve-se iniciar a simulação no Instante Crítico. Momento no qual todas as tarefas chegam simultaneamente. Pior cenário possível. Basta realizar a simulação até o final do prazo da tarefa de maior prazo. Se neste intervalo, o sistema for escalonável, o algoritmo sempre irá garantir a escalonabilidade. Se neste intervalo, algum prazo for perdido, o sistema não é escalonável.

Escalonador EDF (Earliest Deadline First) Escalonador preemptivo. A cada momento de decisão, o escalonador seleciona o processo que tem, atualmente, o prazo mais próximo. Note que não é o prazo mais curto, em geral, mas sim o prazo que está mais próximo no momento. Processo selecionado executa até que: ele termine; ou chegue um novo processo no sistema, com prazo mais curto.

Exemplo

Teste de Escalabilidade do EDF Um conjunto de tarefas é escalonável pelo algoritmo EDF se e somente se a utilização do processador é no máximo 100%. Esta condição é necessária e suficiente. Embora o EDF seja capaz de escalonar um conjunto maior de tarefas, em geral, o algoritmo da Taxa Monotônica é mais comumente implementado. Principalmente em sistemas mais sensíveis. O algoritmo de taxa monotônica é mais simples. Menos propenso a erros.

Escalonador no Linux

Histórico Primeiro escalonador era muito simples. Round-robin com processos ordenados em uma fila. Sem prioridades. A partir da versão 2.2, Linux passou a utilizar uma política com múltiplas filas. Escalonador de tempo real. Escalonador de processos não-preemptivos. Escalonador de processos "normais". Na versão 2.4, o round-robin dos processos normais foi substituído por um escalonador chamado O(n). Lista de processos é varrida,com uma função utilidade calculada para cada processo. Muito complexo. Na versão 2.6, o O(n) foi substituído pelo O(1).

Escalonador Atual: CFS Completely Fair Scheduler. Procura dividir da maneira mais justa possível o uso do processador. Processos aptos são ordenados em uma estrutura de dados chamada árvore vermelho e preto. Critério de ordenação é o tempo de espera pelo processador. Cada processo tem uma variável guardando este valor. Enquanto o processo está aguardando pelo processador, variável é incrementada. Enquanto o processo usa o processador, variável é decrementada. Situação ideal: todos os processos têm suas variáveis zeradas.

CFS: Exemplo Fonte: http://www.ibm.com/developerworks/linux/library/l-completely-fair-scheduler/

CFS: Prioridades O CFS permite que processos tenham prioridades diferentes. Todo processo tem uma prioridade, variando de -20 a 19. -20 são os processos mais prioritários. O CFS ajusta o incremento e o decremento da variável do tempo de espera pelo processador de acordo com a prioridade. Quanto maior a prioridade, maior o incremento e menor o decremento.

Benefícios do CFS Escalonamento provê uma divisão razoavelmente justa dos recursos aos vários processos. Existem algoritmos melhores neste ponto de vista. O escalonador tem overhead relativamente baixo. Pois usa uma estrura de dados eficiente.

Escalonador no Windows

Histórico As primeiras versões do Windows não eram multiprogramadas. Na verdade, o Windows sequer era um SO. Ele rodava sobre o MS-DOS. Não havia necessidade de escalonador. A partir do Windows 95, surgiu um escalonador muito simples, baseado em round-robin. As versões baseadas no Windows NT (incluindo XP, Vista e 7) passaram a ter um escalonador do tipo Multilevel Feedback Queue. 32 prioridades diferentes.

Multilevel Feedback Queue É similar ao round-robin com prioridades. Cada processo tem uma prioridade numérica. No caso do Windows, variando de 0 a 31. Escalonador organiza os processos em várias filas, uma para cada prioridade. Quando uma decisão de escalonamento é necessária, a fila não vazia de maior prioridade é escolhida. Primeiro processo é selecionado para o próximo slice do processador. Diferença para o round-robin com prioridades: SO pode realizar pequenas mudanças nas prioridades dos processos (para cima ou para baixo). Mudanças tem a ver com as características dos processos (I/O Bound, foreground, etc).

Mais Detalhes Valor da fatia de tempo é fixa para todos os processos. Mas pode variar de máquina para máquina. Sempre algo em torno de 10 ms a 20 ms. As prioridades são divididas em grupos, de acordo com os tipos de processo. Processos do SO: prioridade 0. Processos de tempo real: prioridades de 1 a 15. Processos normais: prioridade de 16 a 31.

Mudanças no Windows Vista Mudança principal tem relação à fatia de tempo. Ela continua sendo fixa para todos os processos. Porém agora é calculada em ciclos de processador e não em tempo de parede. Tempo de parede nem sempre é justo, por causa das interrupções. Tratador de interrupção do SO gasta o tempo da fatia do processo. O SO agora usa um registrador especial para contar os ciclos de CPU. Por ser um registrador, faz parte do contexto do processo. Não é afetado por tratadores de interrupção.

Revisão

Para Lembrar Objetivo de um escalonador de tempo real. Exemplos de escalonadores para tempo real: EDF. Taxa monotônica. Testes de escalonabilidade. Momento crítico. Ideia de como os escalonadores do Linux e Windows funcionam. Usam fatias de tempo. Combinam com prioridades. Tem objetivos distintos.