Escalonamento de Processos

Documentos relacionados
Sistemas Operacionais. Escalonamento de processos

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

Sistemas Operacionais

Processos. Escalonamento de Processos

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

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

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

Processos. Escalonamento de Processos

Escalonamento de Processos

Sistemas Operacionais. Prof. André Y. Kusumoto

SOP - TADS Escalonamento de Processos

Davidson Rodrigo Boccardo

Sistemas Operacionais

Sistemas Operacionais

Escalonamento de Processos Uniprocessador

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 Gerenciamento de Processos

Fundamentos de Sistemas Operacionais

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

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

Algoritmos de escalonamento

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

Sistemas Operacionais. Gerência de Processador

Infra-Estrutura de Software. Escalonamento

Sistemas de Informação. Sistemas Operacionais

Gerência de Recursos. Gerência do Processador

Sistemas Operacionais: Escalonamento de processos

Escalonamento do CPU

Estratégias de Escalonamento de Processos

Escalonamento de Processos Estratégias de Escalonamento de Processos

Sistemas Operacionais

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

Sistemas de Computação. Processos e escalonamento

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

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

Sistemas Operacionais

SISTEMAS OPERACIONAIS. TÁSSIO JOSÉ GONÇALVES GOMES

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

Sistemas Operacionais

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

Escalonamento da CPU

Escalonamento da CPU

Resumo: Sistemas Operacionais Abertos

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

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:

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Temporização (Scheduling) de Processos

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Escalonamento de Processos

Sistemas Operacionais

Escalonamento de Processos

Fundamentos de Sistemas Operacionais

Questões de Provas de Períodos Anteriores

Escalonamento de processos

Sistemas Operacionais

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

Sistemas Operacionais Escalonamento. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

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

Sistemas Operacionais Aula 7

Sistemas Operacionais

Sistemas Operacionais

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

Agendador. Agendador de Processos (Escalonador de Processos) Critérios de Agendamento. Agendador

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

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

SSC0640 Sistemas Operacionais I

6 ESCALONAMENTO DE CPU

SEM 544 Desenvolvimento de Produtos Mecatrônicos

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

Temporização(Scheduling) de Processos. TemporobjectivomaximizarousodoCPU,i.e.tersempre um processo a executar.

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

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

Escalonamento de Tarefas

Escalonamento de Processos. Ciclo 3 AT1. Prof. Hermes Senger

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

BC1518-Sistemas Operacionais. Prof. Marcelo Z. do Nascimento

Escalonamento no Unix. Sistemas Operacionais

Sistemas Operacionais

Fundamentos de Sistemas Operacionais

Retrospectiva da aula passada... Escalonamento. Na aula passada... Comunicação entre processos (-- O jantar dos filósofos --)

Fundamentos de Sistemas Operacionais

Aula 10: Escalonamento da CPU

Sistemas Operativos: Escalonamento de Processos

Estados dos processos. Infra Estruturas Computacionais. A troca de contexto. Escalonamento de Processos. Escalonamento de Processos

Escalonamento no Unix. Sistemas Operacionais

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA GABRIEL BOJKO LUIZ OTÁVIO OYAMA

}Escalonamento. Parte III - Sistemas Operacionais. Cap. 2 Processos. Escalonamento de Processos. Quando escalonar? Comportamento de Processos

SISTEMAS OPERACIONAIS

Escalonamento no Unix. Sistemas Operacionais

Sistemas Operativos. Um conjunto de rotinas de software que. virtualizando-o. diversos como o sistema de ficheiros e.

Notas da Aula 8 - Fundamentos de Sistemas Operacionais

Cadeira de Sistemas Operativos. Frequência 1º Semestre. 8 de Fevereiro de 2006

Prof. Kleber R. Rovai

Inversão de prioridades

Sistemas Operacionais. Processos IC - UFF

Sistemas Operacionais

Transcrição:

Escalonamento de Processos Prof. Dr. André Carvalho andre@icomp.ufam.edu.br

Agenda n Contextualização Classificação de tarefas n Métricas de Escalonamento n Escalonamento de Processos n Exemplos 2

Contextualização

Contextualização n Escalonar (v.t.) Dispor as tropas em escalão. Repartir por determinado espaço de tempo; espaçar. Subir por degraus ou etapas. 4

Contextualização n O Escalonador (task scheduler) é responsável por decidir a ordem de execução dos processos prontos, ou seja, que escalona os processos. n O escalonamento de processos é feito por um algoritmo que visa tratar de forma eficiente e rápidas os processos a serem executados. 5

Contextualização n Contudo, para definir qual algoritmo um escalonador deve usar, é necessário conhecer as tarefas que o SO irá executar. n Existem vários critérios que definem o comportamento de uma tarefa. Temporal Uso de processador 6

Classificação de tarefas n Classificação de acordo com o comportamento temporal n Tarefas de tempo real Exigem previsibilidade dos tempos de resposta aos eventos externos. Ex: processos industriais, tratamento de fluxos multimídia, etc. 7

Classificação de tarefas n Tarefas interativas Recebem eventos externos e devem respondê-los rapidamente, mas sem os requisitos das tarefas de tempo real. Ex: aplicações dos sistemas desktop e dos servidores de rede (e-mail, web, bancos de dados). 8

Classificação de tarefas n Tarefas em lote (batch) Sem requisitos temporais explícitos e que normalmente executam sem intervenção do usuário. Ex: procedimentos de backup, varreduras de anti-vírus, cálculos numéricos longos, renderização de animações,... 9

Classificação de tarefas n Classificação de acordo com o uso do processador n Tarefas orientadas a processamento: Usam intensivamente o processador. Passam a maior parte do tempo nos estados pronta ou executando. Ex: conversão de arquivos e processamentos numéricos longos. 10

Classificação de tarefas n Tarefas orientadas a entrada/saída Dependem muito mais dos dispositivos de entrada/saída que do processador. Passam boa parte de suas existências no estado suspenso. Ex: editores, compiladores e servidores de rede. 11

Classificação de tarefas n Contrariedades Uma tarefa pode mudar de comportamento ao longo de sua execução? Exemplo: WAV MP3 12

Métricas de Escalonamento

Objetivo do escalonamento n Qual o objetivo do escalonamento? n Contudo, esses objetivos podem ser contraditórios Por exemplo, a execução de jogos exige valores de quantum baixos, mas valores pequenos de quantum implicam em menor eficiência no uso do processador. 14

Métricas de escalonamento n Vários critérios podem ser definidos para a avaliação de escalonadores n Os mais frequentes são: Tempo de execução Tempo de espera Tempo de resposta Justiça Eficiência 15

Métricas de escalonamento n Tempo de execução ou de vida (turnaround time, tt) Mede o tempo decorrido entre a criação e o encerramento da tarefa, computando todos os tempos de processamento e de espera. É uma medida típica de sistemas em lote, onde não há interação direta com os usuários. 16

Métricas de escalonamento n Tempo de espera (waiting time, tw) Tempo total perdido pela tarefa na fila de prontos, aguardando o processador. Não inclui os tempos de espera em operações de entrada/saída. 17

Métricas de escalonamento n Tempo de resposta (response time, tr) Tempo decorrido entre a chegada de um evento ao sistema e o resultado imediato de seu processamento. É típica de sistemas interativos, como sistemas desktop e de tempo-real. Depende da rapidez no tratamento de IRQs e do valor do quantum de tempo. 18

Métricas de escalonamento n Justiça Distribuição do processador entre as tarefas prontas. Tarefas com comportamento similar devem receber tempos de processamento similares e ter durações de execução similares. 19

Métricas de escalonamento n Eficiência Indica o grau de utilização do processador na execução das tarefas do usuário. Depende da rapidez da troca de contexto e da quantidade de tarefas orientadas a entrada e saída no sistema. 20

Escalonamento 21

Escalonamento n O escalonador de um SO pode ser preemptivo ou não preemptivo 22

Escalonamento Preemptivo n Em escalonadores preemptivos, uma tarefa pode perder o processador caso acabe seu quantum, execute uma chamada de sistema ou ocorra uma interrupção que acorde uma tarefa mais prioritária. n A cada evento, o escalonador pode reavaliar todas as tarefas da fila de prontos e decidir se mantém ou substitui a tarefa atualmente em execução. 23

Escalonamento Preemptivo n n n As tarefas só são interrompidas quando o processador está no modo usuário A thread de núcleo correspondente a cada tarefa não sofre interrupções. SOs sofisticados utilizam a preempção de tarefas também no modo núcleo (ideal para sistemas de tempo real). Núcleos de sistema que oferecem essa possibilidade são denominados núcleos preemptivos (Solaris, Linux 2.6 e Win NT) 24

Escalonamento não-preemptivo n n Em escalonadores não-preemptivos, a tarefa permanece no processador tanto quanto possível, só abandonando caso termine de executar, solicite uma operação de E/S ou libere o processador. Esses sistemas são também conhecidos como cooperativos, pois exigem a cooperação das tarefas para que todas possam executar. 25

Escalonamento FCFS n O escalonamento FCFS (First-Come, First Served) é a forma mais elementar de escalonamento. n Utiliza um algoritmo simples (principal vantagem) que atende as tarefas em sequência assim que ficam prontas. n Ou seja, de acordo com sua chegada na fila de prontos. 26

Escalonamento FCFS Tarefa Ingresso Duração t 1 0 5 t 2 0 2 t 3 1 4 t 4 3 3 Escolamento não-preemptivo 27

Escalonamento FCFS n Qual o tempo médio de execução dessas tarefas? n Qual o tempo médio de espera? 28

Escalonamento FCFS n O FCFS não leva em conta a importância das tarefas nem seu comportamento em relação aos recursos. Tarefas orientadas a entrada/saída irão receber menos tempo de processador que as tarefas orientadas a processamento, o que pode ser prejudicial para aplicações interativas. 29

Escalonamento Round-Robin n É o algoritmo FCFS com a adição da preempção por tempo ao escalonamento. n Também chamado de escalonamento por revezamento. 30

Escalonamento Round-Robin Tempo de Quantum (t q = 2) 31

Escalonamento Round-Robin 32

Escalonamento Round-Robin n Qual o tempo médio de execução dessas tarefas? n Qual o tempo médio de espera? 33

Round Robin é pior que FCFS? n n Apesar dos tempos do Round Robin serem piores neste exemplo, ele ainda tem suas aplicações. Este exemplo foi com tarefas em lote com muito processamento. Ele distribui melhor o uso do processador entre as tarefas ao longo do tempo proporciona tempos de resposta bem melhores às aplicações interativas. Desvantagem: Aumento nas trocas de contexto. 34

Escalonamento SJF n O algoritmo de escalonamento que proporciona os menores tempos médios de execução e de espera é conhecido como menor tarefa primeiro, ou SJF (Shortest Job First). n Como o nome indica, consiste em atribuir o processador à menor (mais curta) tarefa da fila de tarefas prontas.

Escalonamento SJF 36

Escalonamento SJF n Qual o tempo médio de execução dessas tarefas? n Qual o tempo médio de espera? 37

Escalonamento SJF n SJF é preemptivo ou não-preemptivo? Para uso de modo preemptivo, o escalonador deve comparar a duração prevista de cada nova tarefa que ingressa no sistema com o tempo restante de processamento das demais tarefas, inclusive a que esta em execução. SRTF (Short Remaining Time First) 38

Escalonamento SJF n Um grande problema do SJF é estimar a duração de cada tarefa antes de sua execução. o Somente tarefas em lote ou em temporeal podem apresentar essa estimativa de tempo. n Solução: uso de preempção o Ideal para atividades orientadas a E/S. 39

Escalonamento SJF n Suponha uma tarefa de E/S Quantum = 10ms 3 últimas vezes rodando: 3ms,4ms,5ms Podemos inferir qual o próximo quantum utilizado. n n Média: 4ms Extrapolação: 6ms Mais custoso. 40

Escalonamento SJF n Problema: Processo pode mudar de natureza. De CPU-Bound para IO-Bound, ou viceversa. Estimativa errada. Solução: usar poucos dados históricos sobre os processos. n Ex: 3 últimos. 41

Escalonamento SJF n Outro problema relacionado ao SJF é a inanição (starvation) Caso o fluxo de tarefas curtas seja maior do que as tarefas longas, as últimas provavelmente nunca serão escolhidas para receber o processador. 42

Escalonamento por prioridades 43

Escalonamento por Prioridades n Vários critérios podem ser usados para ordenar a fila de tarefas prontas e escolher a próxima tarefa a executar data de ingresso (FCFS), duração prevista (SJF). comportamento da tarefa, proprietário e grau de interatividade são outros exemplos.

Escalonamento por Prioridades n n No escalonamento por prioridades, a cada tarefa é associada uma prioridade (número inteiro) usada para escolher a próxima tarefa a receber o processador, a cada troca de contexto. O algoritmo define um modelo genérico de escalonamento, que permite modelar várias abordagens, entre as quais o FCFS e o SJF.

Escalonamento por Prioridade Tarefa Ingresso Duração t 1 0 5 Prioridade 2 3 1 4 t 2 0 2 t 3 1 4 t 4 3 3 46

Escalonamento por Prioridade n Qual o tempo médio de execução dessas tarefas? n Qual o tempo médio de espera? 47

Escalonamento por Prioridade Tarefa Ingresso Duração t 1 0 5 Prioridade 2 3 1 4 t 2 0 2 t 3 1 4 t 4 3 3

Escalonamento por Prioridade n Qual o tempo médio de execução dessas tarefas? n Qual o tempo médio de espera? 49

Definição de Prioridades (escalonamento de Prioridades) n A definição da prioridade de uma tarefa é influenciada por diversos fatores, que podem ser classificados em dois grande grupos: Fatores externos Fatores internos 50

Definição de Prioridades (escalonamento de Prioridades) n Fatores externos Chamada de prioridade estática. Informações providas pelo usuário ou o administrador do sistema. Os fatores externos mais comuns são a classe do usuário, o valor pago pelo uso do sistema e a importância da tarefa em si.

Definição de Prioridades (escalonamento de Prioridades) n Fatores internos informações que podem ser obtidas ou estimadas pelo escalonador. Os fatores internos mais utilizados são a idade da tarefa, sua duração estimada, sua interatividade, seu uso de memória ou de outros recursos, etc.

Definição de Prioridades (escalonamento de Prioridades) n A combinação desses fatores gera um valor de prioridade para cada tarefa. Fatores externos usam valores inteiros para resumir a opinião do usuário. Fatores internos mudam continuamente e são recalculados periodicamente. n A combinação de fatores externos e internos gera a prioridade dinâmica, que é usada para escalonar. 53

Definição de Prioridades (escalonamento de Prioridades) 54

Definição de Prioridades (escalonamento de Prioridades) n Cada SO define sua própria escala de prioridades estáticas n Windows 2000 e sucessores Classes de prioridade para processos (6) e threads (7) A prioridade final de uma thread depende da sua própria prioridade e da prioridade do processo a que está associado. Valores entre 0 e 31. 55

Definição de Prioridades (escalonamento de Prioridades) n Valores padrão para Windows 2000 e sucessores 4: baixa ou ociosa 6: abaixo do normal 8: normal 10: acima do normal 13: alta 24: tempo-real 56

Definição de Prioridades (escalonamento de Prioridades) n Linux 2.6 e sucessores Duas escalas de prioridades n Tarefas de tempo-real tem prioridade de 0 (mais importante) a 99 (menos importante) n n Tarefas interativas tem prioridades de 100 a 139 Tarefas de tempo-real tem precedência sobre as tarefas interativas. 57

Problemas (escalonamento de Prioridades) n Qual o problema apresentado da figura? Inanição ou starvation 58

Problemas (escalonamento de Prioridades) n A solução para a inanição no escalonamento de prioridades é o uso do fator de envelhecimento (task aging). n O envelhecimento indica há quanto tempo uma tarefa está aguardando o processador e aumenta sua prioridade proporcionalmente. 59

Problemas (escalonamento de Prioridades) n Uso do envelhecimento 60

Problemas (escalonamento de Prioridades) n Outro problema é a inversão de prioridades n Mais complexo e envolve o conceito de exclusão mútua Alguns recursos devem ser usados por um processo de cada vez par evitar problemas de consistência. Ex: arquivos, portas de E/S, conexões de redes. 61

Problemas (escalonamento de Prioridades) n Inversão de prioridades 62

Problemas (escalonamento de Prioridades) n Solução: Protocolo de herança de prioridade Aumentar temporariamente a prioridade do processo interrompido (p b ) que detém R. No caso da figura, p b herdaria a prioridade de p a para poder executar. Assim que liberar R, p b volta a prioridade original. 63

Outros algoritmos n Escalonadores de tempo real Multimídia Justos Multi-processador Multi-core

Estudos de Caso

Windows n Multilevel Feedback Queue Preferência para jobs curtos. Preferência para processos I/O Bound. Processos são separados em categorias de acordo com a necessidade de processador. 66

Windows n n Várias filas, uma para cada nível de prioridade. Processos podem trocar de fila dinamicamente. Processos que usam muita CPU vão para filas de prioridade mais baixo. n Priorizando os que saem da CPU por suspensão e não preempção. Processos de prioridade baixa que estão esperando muito são promovidos (Aging). 67

Algoritmo n n n n Novos processos são inseridos no fim da fila de nível mais alto. O processo que esteja na frente da fila de prioridade mais alta entra na CPU. Se ele sair da CPU por vontade própria (chamada de sistema), quando ele voltar da suspensão ele volta na mesma fila. Dependendo do caso, ele pode ser promovido e subir um nível Se ele for preemptado, ele é rebaixado, e volta no fim de uma fila com prioridade mais baixa. 68

Windows n n n n Promoção e rebaixamento garantem que processos I/O Bound tenham prioridade. Por que? Filas são Round Robin. Escalonador sempre pega processos da fila de maior prioridade. Só se uma fila alta estiver vazia que ele vai para uma mais baixa. Processos sempre entram na mais alta pois assume-se que serão processos curtos. Se forem longos, naturalmente irão sendo rebaixados. Um processo só tem uma única chance de terminar seu quantum em um dado nível de prioridade. 69

Windows n n Parâmetros de escalonamento que não temos certeza como são em versões recentes do Windows: Número de filas. Algoritmo de cada fila. Critérios de promoção e rebaixamento. Em que fila um processo entra. Windows tem algumas heurísticas para garantir que alguns processos, como defrag, nunca subam muito de prioridade. 70

Linux n Desde o 2.6, o Linux tem um escalonador que é considerados por muitos o estado da arte em termos de sistemas reais. 71

Linux n Filosofia: Quantum mais alto para processos importantes. Quantum variável baseado em uso de CPU. Processos são alocados para CPUs específicas. O(1) 72

Filas n Cada processador tem uma fila. Processador só pega processos da sua própria fila. Pode ocorrer de um processador ter jobs esperando na sua fila enquanto outro está desocupado. n Rebalanciamento de filas sazonal. 73

Algoritmo Básico n Ache a fila de prioridade mais alta com um processo e pegue o primeiro da fila. n Calcular o quantum n Rodar n Se ele estourar o quantum, ponha-o em uma lista de expirados. (talvez) 74

Filas n 140 filas, uma pra cada prioridade. Valor pode ser modificado facilmente. n Dois conjuntos de filas. Ativa e expirada. n 0-99: Tempo real n 100-139: Outros processos, valor modificável via nice() 75

Quantum n Prioridade maior = quantum maior Processos importantes devem rodar por mais tempo 76

Ativo e Expirado n Sistema roda processos das filas ativas, e os coloca em expirado quando o quantum acaba. Salvo algumas excessões. n Quando a fila ativa acaba, o escalonador inverte as filas ativas com as filas expiradas. Forma de evitar custos com aging 77

Eficiência n Processos só são analisados pelo escalonador quando começam ou terminam de rodar. É aí que se recalcula prioridades e quantum. n Não existe repetição sobre todos os processos nunca. 78

Escalonamento de tempo real n Dois sistemas de escalonamento de tempo real (0-99) Tempo real sempre tem prioridade sobre outros processos. FIFO com preempção apenas por processo de prioridade maior. Round Robin com quantum entre 10 e 200ms 79

Linux 80