Gerência de Recursos Processador Escalonamento e Algoritmos de Escalonamento Disciplina: Sistemas...
Transcript of Gerência de Recursos Processador Escalonamento e Algoritmos de Escalonamento Disciplina: Sistemas...
Gerência de Recursos Gerência de Recursos ProcessadorProcessador
Escalonamento e Algoritmos de Escalonamento e Algoritmos de EscalonamentoEscalonamento
Disciplina: Sistemas Operacionais
Profº. Helvio Jeronimo Junior
Notas de Aulas das Profªs Marília Silva / Etelvira Leite
GERÊNCIA DE PROCESSADORGERÊNCIA DE PROCESSADOR
Com o surgimento dos sistemas multiprogramáveis, nos quais múltiplos processos poderiam permanecer na memória principal compartilhando o uso da UCP, a gerência de processador tornou-se importante.
Política de escalonamento pode ser entendida como os critérios utilizados para seleção de qual processo (em estado de pronto) deve fazer a utilização do processador.
Estado d eEsp era
Estado d eExecu çã o
Estado d ePronto
GERÊNCIA DE PROCESSADORGERÊNCIA DE PROCESSADOR
Cada sistema operacional possui sua política de escalonamento adequada ao seu propósito e as suas características. Sistemas de tempo compartilhado por exemplo, possui requisitos de escalonamento distintos dos sistemas de tempo real.
Função do escalonador (scheduler) – rotina responsável por implementar os critérios da política de escalonamento.
Dispatcher – rotina responsável pela troca de contexto dos processos após o escalonador determinar qual processo deve fazer uso do processador.
UTILIZAÇÃO DO PROCESSADOR - corresponde a uma taxa de utilização, que na maioria dos sistemas varia entre 30 e 90%. Uma utilização abaixo dos 30% indicaria um sistema ocioso, com carga de processamento baixa, enquanto uma taxa de utilização acima dos 90% pode indicar um sistema bastante carregado, próximo da sua capacidade máxima (em alguns casos tal situação pode levar a um crash – travamento do sistema).
THROUGHPUT – nº de processos executados em um determinado intervalo de tempo. Quanto maior for este, maior o nº de tarefas executadas em função do tempo.
CRITÉRIOS DE ESCALONAMENTOCRITÉRIOS DE ESCALONAMENTO
TEMPO DE PROCESSADOR – tempo que o processador leva em estado de execução durante seu processamento..
TEMPO DE ESPERA – é o tempo total que um processo permanece na fila de pronto durante seu processamento, aguardando para ser executado.
TEMPO DE TURNAROUD – tempo que um processo leva desde sua criação até seu término, levando em consideração todo o tempo gasto na espera para alocação de memória, espera na fila de pronto, processamento na UCP e na fila de espera.
CRITÉRIOS DE ESCALONAMENTOCRITÉRIOS DE ESCALONAMENTO
TEMPO DE RESPOSTA – é o tempo decorrido entre a requisição ao sistema ou à aplicação e o instante em que a resposta é exibida.
CRITÉRIOS DE ESCALONAMENTOCRITÉRIOS DE ESCALONAMENTO
Políticas de escalonamento em geral, buscam:
Otimizar a utilização do processador e throughput;
Diminuir tempos de turnaround, espera e resposta.
OBSERVAÇÃOOBSERVAÇÃO
PREEMPÇÃOPREEMPÇÃO
Possibilidade de um sistema operacional interromper um processo em execução e substituí-lo por um outro.
Sistemas operacionais que implementam escalonamento com preempção são mais complexos, contudo possibilitam políticas de escalonamento mais flexíveis.
ESCALONAMENTO NÃO PREEMPTIVOESCALONAMENTO NÃO PREEMPTIVO
Predominava o processamento em batch.
Quando um processo está em execução, nenhum evento externo pode ocasionar a perda do uso do processador.
O processo somente sai do estado de execução caso termine seu processamento ou execute instruções do próprio código que ocasione uma mudança para o estado de espera.
ESCALONAMENTO PREEMPTIVOESCALONAMENTO PREEMPTIVO
O sistema operacional pode interromper um processo em execução e passá-lo para o estado de pronto, com o objetivo de alocar outro processo na UCP.
É possível priorizar a execução de processos, como no caso de aplicações de tempo real, onde o fator tempo é crítico.
Atualmente, a maioria dos sistemas operacionais implementam políticas de escalonamento preemptivas que, apesar de tornarem os sistemas mais complexos, possibilitam a implementação dos diversos critérios de escalonamentos.
ALGORITMOS DE ESCALONAMENTOALGORITMOS DE ESCALONAMENTO
Existem vários algoritmos que são utilizados para a realização do escalonamento, em todos eles, o principal objetivo é designar o processador para um certo processo dentre vários processos existentes, otimizando um ou mais aspectos do comportamento geral do sistema.
Algoritmos de escalonamento: First In First Out (FIFO) Shortest Job First (SJF) Circular Por Prioridades Circular com Prioridades etc.
ESCALONAMENTO ESCALONAMENTO FIRST-IN-FIRST-OUT FIRST-IN-FIRST-OUT (FIFO)(FIFO)
O processo que chegar primeiro ao estado de pronto é selecionado para a execução.
O escalonador FIFO é do tipo não preemptivo.
U C P
Estado d eC r iação
Estado d eEsp era
Fila dos processos n o estad o d e Pron to
Estado d eTérm ino
ESCALONAMENTO ESCALONAMENTO FIRST-IN-FIRST-OUT FIRST-IN-FIRST-OUT (FIFO)(FIFO)
Não garante um tempo de resposta rápido, pois é extremamente sensível a ordem de chegada de cada processo e dos antecessores (se existirem).
Se processos que tendem a demorar mais tempo chegarem primeiro, o tempo médio de espera e o turnaround acabam sendo aumentados.
Processos CPU-bound levam vantagem no uso do processador sobre os processos I/O-bound.
ESCALONAMENTO ESCALONAMENTO FIRST-IN-FIRST-OUT FIRST-IN-FIRST-OUT (FIFO)(FIFO)
Pro cesso A
Pro cesso B
Pro cesso C
10 14 17
Pro cesso A
Pro cesso B
Pro cesso C
4 7 17 u .t.
u .t.
Pro cessoTem p o d e
p ro cessa do r(u .t.)
A
B
C
10
4
3
O tempo médio de espera dos três
processos seria igual a (0+10+14)/3 = 8 u.t
O tempo médio de espera dos três
processos seria igual a (0+4+7)/3 = 3,66 u.t
ESCALONAMENTO SHORTEST-JOB-FIRST ESCALONAMENTO SHORTEST-JOB-FIRST ((SJFSJF))
O algoritmo seleciona o processo que tiver menor tempo de processador ainda por executar. Desta forma, o processo em estado de pronto que necessitar de menos tempo de UCP para terminar seu processamento é selecionado para a execução.O escalonamento SJF é do tipo não preemptivo.
Processo A
Processo B
Processo C
3 7 17 u .t.
O tempo médio de espera dos três
processos seria igual a (7+3+0)/3 = 3,3 u.t,
e é inferior ao apresentado no
escalonador FIFO.
ESCALONAMENTO CIRCULARESCALONAMENTO CIRCULAR
É um escalonamento do tipo preemptivo.
Quando um processo passa o estado de execução existe um tempo-limite para o uso contínuo do processador denominado fatia de tempo (time-slice) ou quantum.
Toda vez que um processo é escalonado para execução uma nova fatia de tempo é concedida. Caso a fatia de tempo expire, o sistema operacional interrompe o processo em execução, salva seu contexto e direciona-o para o final da fila de pronto. Esse mecanismo é conhecido como preempção por tempo.
ESCALONAMENTO CIRCULARESCALONAMENTO CIRCULAR
Preem p ção po r tem p o
U C P
Estado d eC r ia çã o
Estado d eEsp era
Fila do s pro cesso s n o estad o d e Pron to
Estado d eTérm ino
ESCALONAMENTO CIRCULARESCALONAMENTO CIRCULAR
ESCALONAMENTO POR PRIORIDADESESCALONAMENTO POR PRIORIDADES
É um escalonamento do tipo preemptivo realizado com base em um valor associado a cada processo denominado prioridade de execução.
O processo com maior prioridade no estado de pronto é sempre escolhido para execução, e processos com valores iguais são escalonados seguindo o critério FIFO.
Se durante a execução de um processo, aparecer um outro na fila de pronto com prioridade maior, o SO deverá interromper o processo corrente, salvar seu contexto e colocá-lo no estado de pronto. Este mecanismo é conhecido como preempção por prioridade.
ESCALONAMENTO POR PRIORIDADESESCALONAMENTO POR PRIORIDADES
U C P
Esta do d eTérm ino
Fila s do s p ro cesso s n o esta d o d e Pro n to
Pr io r id a d e P1
Pr io r id a d e P2
Pr io r id a d e Pn
Esta do d eC r ia ção
Esta do d eEsp era
Preem p ção po r p r io r id a d e
ESCALONAMENTO POR PRIORIDADESESCALONAMENTO POR PRIORIDADES
ESCALONAMENTO ESCALONAMENTO CIRCULAR COM PRIORIDADESCIRCULAR COM PRIORIDADES
Implementa o conceito de fatia de tempo e de prioridade de execução associada a cada processo.
Neste escalonamento, um processo permanece no estado de execução até que termine seu processamento, ou voluntariamente passe para o estado de espera (interrupção por E/S), ou sofra uma preempção por tempo ou prioridade.
A principal vantagem deste escalonamento é permitir um melhor balanceamento no uso do processador, com a possibilidade de diferenciar o grau de importância dos processos através da prioridade (o Windows e o UNIX utilizam este escalonamento).
ESCALONAMENTO ESCALONAMENTO CIRCULAR COM PRIORIDADESCIRCULAR COM PRIORIDADES
U C P
Estado d eTérm ino
Fila dos processos n o estad o d e Pron to
Pr io r id ad e P1
Pr io r id ad e P2
Pr io r id ad e Pn
Estado d eC r iação
Estado d eEsp era
Preem p ção po r tem p o o u pr io rida de
ESCALONAMENTO ESCALONAMENTO CIRCULAR COM PRIORIDADESCIRCULAR COM PRIORIDADES
No escalonamento circular com prioridades estáticas , a prioridade definida no contexto de software de cada processo permanece inalterada ao longo da sua existência.
No escalonamento circular com prioridades dinâmicas, é possível que a prioridade de um processo seja alterada dinamicamente pelo administrador do sistema ou, em algumas políticas, pelo sistema operacional.
EXERCÍCIOSEXERCÍCIOS
1. Considere que cinco processos sejam criados no instante de tempo 0 (P1, P2, P3, P4 e P5) e possuam as características descritas na tabela a seguir:
PROCESSO TEMPO DE UCP PRIORIDADE
P1 10 3
P2 14 4
P3 5 1
P4 7 2
P5 20 5
EXERCÍCIOSEXERCÍCIOS
1. Desenhe um diagrama ilustrando o escalonamento dos processos e seus respectivos tempos de turnaround, segundo as políticas especificadas a seguir. O tempo de troca de contexto deve ser desconsiderado.
a) FIFO
b) SJF
c) Prioridade (número menor implica prioridade maior)
d) Circular com fatia de tempo igual a 4 u.t.
EXERCÍCIOSEXERCÍCIOS
2. Existem quatro processos (P1, P2, P3, P4) na fila de pronto, com tempos de UCP estimados em 9, 6, 3 e 5 respectivamente. Em que ordem os processos devem ser executados para minimizar o tempo de turnaround dos processos?
3. O que é política de escalonamento de um sistema operacional?
4. Quais as funções do escalonador?5. Quais os principais critérios utilizados em uma política
de escalonamento?6. Diferencie os tempos de processador, espera,
turnaround e resposta.7. Diferencie os escalonamentos preemptivos e não
preempitivos.
Machado, F. B., Maia, L. P. Arquitetura de Sistemas Operacionais. 4ª edição. Rio de Janeiro: LTC, 2011.
Notas de Aulas das Profª. Etelvira Leite e Marília.
BibliografiaBibliografia