Escalonamento de processos

Documentos relacionados
SOP - TADS Escalonamento de Processos

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

Escalonamento. Pedro Cruz. EEL770 Sistemas Operacionais

Prof. Kleber R. Rovai

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

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

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

Sistemas Operacionais

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

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais

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

Sistemas Operacionais

Sistemas Operacionais

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

Sistemas Operacionais. Escalonamento de processos

Escalonamento de Processos

Sistemas Operacionais: Escalonamento de processos

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

Processos. Escalonamento de Processos

Infra-Estrutura de Software. Escalonamento

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

Sistemas de Computação. Processos e escalonamento

Sistemas Operacionais Aula 7

Escalonamento de Processos Estratégias de Escalonamento de Processos

Estratégias de Escalonamento de Processos

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

Gerência de Recursos. Gerência do Processador

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

Sistemas de Informação. Sistemas Operacionais

Sistemas Operacionais. Gerência de Processador

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

Sistemas Operacionais Gerenciamento de Processos

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

6 ESCALONAMENTO DE CPU

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

Algoritmos de escalonamento

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

Sistemas Operacionais

Gerência de Recursos. Gerência do Processador

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Notas da Aula 8 - Fundamentos de Sistemas Operacionais

Sistemas Operativos: Escalonamento de Processos

Escalonamento da CPU

Escalonamento da CPU

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Escalonamento de Processos

Sistemas Operacionais

Questões de Provas de Períodos Anteriores

Processos. Escalonamento de Processos

Escalonamento de Processos

Sistemas Operacionais

Capítulo 2 Processos e Threads

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Escalonamento de Processos Uniprocessador

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

Sistemas Operacionais. Processos e Threads

SO: Escalonamento. Sistemas Operacionais Flavio Figueiredo (

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

Sistemas Operativos: Implementação de Processos

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

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

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

Sistemas Operacionais. Conceito de Processos

Capítulo 2 Processos e Threads

Notas da Aula 11 - Fundamentos de Sistemas Operacionais

Transcrição:

de processos Carlos Gustavo A. da Rocha

Nos computadores atuais frequentemente temos vários processos (threads) competindo por um pequeno número de CPUs Nestes casos uma escolha deve ser feita de qual processo será o próximo a executar A parte do sistema operacional que realiza esta escolha é chamada de escalonador (scheduler) O algoritmo usado na escolha é chamado de algoritmo de escalonamento (scheduling algorithm)

Introdução O escalonamento, e seus algoritmos, evoluíram junto com a computação De inexistentes a essenciais ao funcionamento do SO As CPUs (também) evoluíram e se tornaram extremamente rápidas Diminui o problema do escalonamento, principalmente em computadores pessoais

Introdução Um bom algoritmo de escalonamento deve ter duas metas principais a alcançar (1) Escolher o processo certo na hora certa Se um usuário inicia um compilador e um codificador de arquivos mp3 simultaneamente, a escolha de qual terá prioridade não é tão importante Contudo, se ao invés de um codificador, for iniciado um player de arquivos mp3, a situação muda

(2) Utilizar de forma eficiente as CPUs O escalonamento é um procedimento complexo, envolvendo: alternar de modo usuário para núcleo; salvar o status do processo atual; salvar o mapa de memória do processo atual; selecionar um novo processo, executando o algoritmo de escalonamento; carregar o mapa de memória do novo processo; carregar o estado do novo processo; alternar de modo núcleo para usuário e reiniciar a execução Realizar todo este procedimento um números exagerado de vezes irá comprometer boa parte das CPUs com o próprio escalonamento

Comportamento de processos Processos sempre alternam entre surtos de computação e requisições de E/S Parte dos processos passam a maior parte do tempo computando enquanto outros passam a maior parte do tempo realizando E/S Qual tipo de processo deve ter prioridade no escalonamento?

Quando escalonar? Existem uma variedade de situações onde é necessário realizar um escalonamento, entre elas Quando um novo processo é criado deve-se decidir entre continuar executando o pai, ou iniciar a execução do filho Quando um processo termina, liberando uma CPU, outro processo deve ser escolhido para ocupa-la Quando um processo bloqueia devido a E/S, na entrada de uma região crítica, ou por qualquer outro motivo, outro precisa ser escolhido para executar O motivo do bloqueio pode ser relevante para a escolha

Quando escalonar? Existem uma variedade de situações onde é necessário realizar um escalonamento, entre elas Quando ocorre uma interrupção de E/S (um dispositivo terminou de ler ou escrever alguma informação), um processo irá passar do estado bloqueado para pronto. O escalonador pode então por o mesmo em execução Se o hardware oferece interrupções de relógio periódicas, uma decisão de escalonamento deve ser tomada, pelo menos, a cada interrupção

Categorias de algoritmos de escalonamento Podem ser classificados em relação a diversos aspectos Não preemptivos Seleciona um processo e o deixa em execução por um tempo indefinido, até o mesmo bloquear ou deixar a CPU voluntariamente Preemptivos Seleciona um processo e o deixa em execução até o mesmo bloquear ou atingir a próxima interrupção de relógio

Categorias de algoritmos de escalonamento Em relação ao tipo de sistema, eles possuem necessidades, objetivos e algoritmos de escalonamento diferentes Sistemas para mainframes ou de lote Não preemptivos são aceitáveis Sistemas interativos Preemptivos são essenciais Sistemas de tempo real...

Objetivos de algoritmos de escalonamento Todos os sistemas Justiça: dar a cada processo uma fração justa da CPU Aplicação de políticas: Garantir que políticas administrativas estejam sendo respeitadas Equilíbrio: Manter todas as partes do sistema ocupadas Sistemas de lote Vasão: maximizar os jobs por unidade de tempo Tempo de retorno: minimizar o tempo entre submissão e término de cada job Uso de CPU: Manter as CPUs sempre ocupadas

Objetivos de algoritmos de escalonamento Sistemas interativos Tempo de resposta: responder rapidamente às requisições do usuário Proporcionalidade: Satisfazer as expectativas dos usuários Sistemas de tempo real Cumprimento de prazos: Garantir o processamento nos limites estabelecidos, evitando a perda de dados Previsibilidade: Evita a degradação de qualidade

Escalonamento em sistemas interativos Escalonamento Round-Robin Algoritmo simples, antigo, justo (e bastante usado) Cada processo recebe um intervalo de tempo máximo durante o qual pode executar (T) Se ao final deste período ele ainda estiver executando, será escalonado O SO mantem uma fila de processos prontos, quando um processo é escalonado, ele é posto no final da fila E recebe outro intervalo de tempo (T) para executar

Escalonamento em sistemas interativos Escalonamento com prioridades Mantém a ideia de um tempo máximo (T) de execução por processo, adicionando a cada um deles uma prioridade No momento do escalonamento, o processo com maior prioridade é posto para executar Existem diversas técnicas que ajustam a prioridade de cada processo de forma dinâmica Evitam que processos com maior prioridade monopolizem a CPU

Escalonamento em sistemas interativos Escalonamento com prioridades Entre processos com uma mesma prioridade pode-se utilizar o algoritmo Round-Robin

Escalonamento em sistemas interativos Escalonamento garantido Neste método, se houverem N usuários conectados em uma máquina, cada um deles receberá 1/N da CPU De forma semelhante, se houverem N processos, cada uma deles receberá 1/N da CPU O SO mantem um controle do tempo de CPU que cada processo recebeu desde sua criação

Escalonamento em sistemas interativos Escalonamento por loteria Baseia-se na ideia de distribuir bilhetes aos processos Em cada escalonamento um bilhete é sorteado, e o processo que o detêm ganha acesso à CPU Processos podem receber diferentes quantidades de bilhetes, de forma a se implementar prioridades

Escalonamento em sistemas interativos Escalonamento por fração justa (fair share) Existem uma série de outras propriedades que devem ser levadas em conta Se temos dois usuários conectados a uma máquina, um executando 9 processos e outro executando 1 processo, não é justo que o primeiro obtenha 90% da CPU Sistemas reais sempre irão utilizar várias destas técnicas ao mesmo tempo

Escalonamento em sistemas de tempo real O tempo sempre será o fator preponderante Um ou mais dispositivos geram dados e o computador deve processa-los em um intervalo de tempo garantido Uma resposta tardia é tão ruim como nenhuma resposta O escalonador de processos deve garantir que todos os prazos sejam cumpridos

Escalonamento de threads A diferença está basicamente no fato do SO ter ou não conhecimento da existência das threads Caso o SO saiba de sua existência, ele na verdade, sempre escalona diretamente threads de processos Caso contrário, o SO irá escolher um processo para executar. Este processo será responsável por escolher qual de suas threads deve executar

Escalonamento de threads