Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Operacionais
SUMRIO
9.
9.1.
INTRODUO ............................................................................................................................................................. 3
9.2.
FUNES BSICAS.................................................................................................................................................... 3
9.3.
CRITRIOS DE ESCALONAMENTO...................................................................................................................... 4
9.4.
9.5.
9.6.
9.7.
ESCALONAMENTO COOPERATIVO..................................................................................................................... 7
9.8.
9.9.
9.10.
9.11.
9.12.
Notas de Aula
Sistemas Operacionais
Critrios de Escalonamento, Escalonamento No-Premptivo e Preemptivo, Escalonamento FIFO, Escalonamento Cooperativo, escalonamento circular, escalonamento por prioridades. Escalonamento circular com prioridades, poltica de escalonamento em Sistemas de Tempo Compartilhado e Sistemas de Tempo Real.
10.1. Introduo
Com o surgimento dos sistemas multiprogramveis, onde mltiplos processos poderiam permanecer na memria principal compartilhando o uso da UCP, a gerncia do processador tomou-se uma das atividades mais importantes em um sistema operacional. A partir do momento em que diversos processos podem estar no estado de pronto, devem ser estabelecidos critrios para determinar qual processo ser escolhido para fazer uso do processador. Os critrios utilizados para esta seleo compem a chamada poltica de escalonamento, que a base da gerencia do processador e da multiprogramao em um sistema operacional.
Notas de Aula
Sistemas Operacionais
Estado de Execuo
to en m na alo sc E
Estado de Espera
Estado de P ronto
Notas de Aula
Sistemas Operacionais
Tempo de Turnaround: Tempo de turnround o tempo que um processo leva desde a sua criao ate ao seu termino, levando em considerao todo o tempo gasto na espera para alocao de memria, espera na fila de pronto (tempo de espera), processamento na UCP (tempo de processador) e na fila de espera, como nas operaes de E/S. As polticas de escalonamento buscam minimizar o tempo de turnaround. Tempo de Resposta: Tempo de resposta o tempo decorrido entre uma requisio ao sistema ou a aplicao e o instante em que a resposta e exibida. Em sistemas interativos, podemos entender tempo de resposta como o tempo decorrido entre a ltima tecla digitada pelo usurio e o inicio da exibio do resultado no monitor. Em geral, o tempo de resposta no e limitado pela capacidade de processamento do sistema computacional, mas pela velocidade dos dispositivos de E/S. Em sistemas interativos, como aplicaes on line ou acesso a Web, os tempos de resposta devem ser da ordem de poucos segundos. De uma maneira geral, qualquer poltica de escalonamento busca otimizar a utilizao do processador e o throughput, enquanto tenta diminuir os tempos de turnaround, espera e resposta. Apesar disso, as funes que uma poltica de escalonamento deve possuir so muitas vezes conflitantes. Dependendo do tipo de sistema operacional, um critrio passa a ter maior importncia do que outros, como nos sistemas interativos onde o tempo de resposta tem grande relevncia.
Notas de Aula
Sistemas Operacionais
Quando saem do estado de espera, todos os processos entram no final da fila de pronto (Fig. 9.2).
Fila dos processos no estado de P ronto Estado de Criao Estado de Trmino
UCP
Estado de Espera
Apesar de simples, o escalonamento FIFO apresenta algumas deficincias. O principal problema a impossibilidade de se prever quando um processo tem sua execuo iniciada, j que isso varia em funo do tempo de execuo dos demais processos posicionados a sua frente na fila de pronto. Como vimos, o algoritmo de escalonamento no se preocupa em melhorar o tempo mdio de espera dos processos, utilizando apenas a ordem de chegada dos processos fila de pronto. Esse problema pode ser melhor percebido nos tempos de tunaround dos processos que demandam melhor tempo de UCP. Outro problema nesse tipo de escalonamento que processos CPU-bound levam vantagem no uso do processador sobre processos I/O-bound. No caso de existirem processos I/O-bound mais importantes do que os CPU-bound, no possvel tratar esse tipo de diferena. O escalonamento FIFO do tipo no-preemptivo e foi inicialmente implementado em sistemas monoprogramveis com processamento batch, sendo ineficiente se aplicado na forma original em sistemas interativos de tempo compartilhado. Atualmente, sistemas de tempo compartilhado utilizam o escalonamento FIFO com variaes, permitindo, assim, parcialmente sua implementao.
Notas de Aula
Sistemas Operacionais
comportamento se repete at o trmino do processamento. Nesse caso, o escalonamento realizado com base no tempo que um processo ir utilizar a UCP na prxima vez em que for escalonado, e no mais no tempo total de processador que utilizara at o trmino do seu processamento. Um problema existente desta implementao no ser possvel ao sistema operacional saber quanto tempo um processo ir permanecer utilizando a UCP na prxima vez em que for escalonado, contudo possvel prever o tempo com base no seu comportamento passado. Na sua concepo inicial, o escalonamento SJF um escalonamento no-preemptivo. Sua vantagem sobre o escalonamento FIFO esta na reduo do tempo mdio de turnaround dos processos, porm no SJF possvel haver starvation para processos com tempo de processador muito longo ou do tipo CPU-bound. Uma implementao do escalonamento SJF com preempo conhecida como escalonamento shortest remaining time (SRT scheduling). Nessa poltica, toda vez que um processo no estado de pronto tem um tempo de processador estimado menor do que o processo em execuo, o sistema operacional realiza uma preempo, substituindo-o pelo novo processo. Semelhante ao SJF, o sistema operacional deve ser o responsvel por estimar os tempos de processador dos processos, mas o risco de starvation permanece.
Notas de Aula
Sistemas Operacionais
No escalonamento circular, toda vez que um processo escalonado para execuo, uma nova fatia de tempo concedida. Caso a fatia de tempo expire, o sistema operacional interrompe o processo em execuo, salva seu contexto e direciona-o para o final da fila de pronto. Esse mecanismo conhecido como preempo por tempo. A Fig. 9.5 ilustra o escalonamento circular, onde a fila de processos em estado de pronto tratada como uma fila circular. O escalonamento realizado alocando a UCP ao primeiro processo da fila de pronto. O processo permanece no estado de execuo at que termine seu processamento, voluntariamente passe para o estado de espera, ou que sua fatia de tempo expire, sofrendo, neste caso, uma preempo pelo sistema operacional. Aps isso, um novo processo escalonado com base na poltica de FIFO.
Fila dos processos no estado de Pronto Estado de Criao Estado de Trmino
UCP
Estado de Espera
A Fig. 9.6 exemplifica o escalonamento circular com trs processos, onde a fatia de tempo igual a 2 u.t. No exemplo no est sendo levado em considerao o tempo de latncia do dispatcher, ou seja, o tempo de troca de contexto entre os processos.
Processo A
Processo B
Processo C
10 1 1
17
u.t.
Notas de Aula
Sistemas Operacionais
O valor da fatia de tempo depende da arquitetura de cada sistema operacional e, em geral, varia entre 10 e 100 milissegundos. Este valor afeta diretamente o desempenho da poltica de escalonamento circular. Caso a fatia de tempo tenha um valor muito alto, este escalonamento tender a ter o mesmo comportamento do escalonamento FIFO. Caso o valor do time slice seja pequeno, a tendncia e que haja um grande nmero de preempes, o que ocasionaria excessivas mudanas de contexto, prejudicando o desempenho do sistema e afetando o tempo de turnaround dos processos. A principal vantagem do escalonamento circular no permitir que um processo monopolize a UCP, sendo o tempo mximo alocado continuamente igual fatia de tempo definido no sistema. No caso de sistemas de tempo compartilhado, onde existem diversos processos interativos concorrendo pelo uso do processador, o escalonamento circular adequado. Um problema presente nessa poltica que processos CPU-bound so beneficiados no uso do processador em relao aos processos I/O-bound. Devido s suas caractersticas, os processos CPUbound tendem a utilizar por completo a fatia de tempo, enquanto os processos I/O-bound tem mais chances de passar para o estado de espera antes de sofrerem preempo por tempo. Estas caractersticas distintas ocasionam um balanceamento desigual no uso do processador entre os processos. Um refinamento do escalonamento circular, que busca reduzir este problema, conhecido como escalonamento circular virtual. Nesse esquema, processos que saem do estado de espera vo para uma fila de pronto auxiliar. Os processos da fila auxiliar possuem preferncia no escalonamento em relao a fila de pronto, e o escalonador s seleciona processos na fila de pronto quando a fila auxiliar estiver vazia. Quando um processo escalonado a partir da fila auxiliar, sua fatia de tempo e calculada como sendo o valor da fatia de tempo do sistema menos o tempo de processador que o processo utilizou na ltima vez em que foi escalonado a partir da fila de pronto. Estudos comprovam que, apesar da maior complexidade na implementao, o balanceamento do uso do processador neste esquema mais equilibrado.
Notas de Aula
Sistemas Operacionais
Neste escalonamento para cada prioridade existe uma fila de processos em estado de pronto que tratada como uma fila circular. O escalonamento realizado alocando o processador ao primeiro processo da fila de prioridade mais alta. O processo permanecer no estado de execuo at que termine seu processamento, voluntariamente passe para o estado de espera ou saia uma preempo por prioridade. O escalonamento por prioridades tambm pode ser implementado de uma maneira nopreemptiva. Neste caso, processos que passem para o estado de pronto com prioridade maior do que a do processo em execuo no ocasionam preempo, sendo apenas colocados no inicio da fila de pronto. Cada sistema operacional implementa sua faixa de valores para as prioridades de execuo. Alguns sistemas associam as maiores prioridades a valores altos, enquanto outros sistemas utilizam valores baixos. No caso do Open VMS, a prioridade do processo pode variar de 0 a 31, onde 31 e a maior prioridade. No IBM-AIX, a prioridade varia de 0 a 127, porem os valores mais baixos possuem maior prioridade de execuo. A prioridade de execuo uma caracterstica do contexto de software de um processo e pode ser classificada como esttica ou dinmica. A prioridade esttica no tem o seu valor alterado durante a existncia do processo, j a prioridade dinmica pode ser ajustada de acordo com critrios definidos pelo sistema operacional. A possibilidade de alterar o valor da prioridade de um processo ao longo de seu processamento permite ajustar o critrio de escalonamento em funo do comportamento de cada processo no sistema. Um dos principais problemas no escalonamento por prioridades o starvation. Processos de baixa prioridade podem no ser escalonados, permanecendo indefinidamente na fila de pronto. Uma soluo para este problema, possvel em sistemas que implementam prioridade dinmica, a tcnica de aging. Este mecanismo incrementa gradualmente a prioridade de processos que permanecem por muito tempo na fila de pronto. O escalonamento por prioridades possibilita diferenciar os processos segundo critrios de importncia. Com isso, processos de maior prioridade so escalonados preferencialmente. Isto bastante til tanto em sistemas de tempo real e nas aplicaes de controle de processo, como tambm em aplicaes de sistemas de tempo compartilhado, onde, s vezes, necessrio priorizar o escalonamento de determinados processos.
Notas de Aula
10
Sistemas Operacionais
UCP
Uma desvantagem deste escalonamento que, no caso de um processo alterar seu comportamento no decorrer do tempo, o processo no podem ser redirecionado para uma outra fila mais adequada. A associao de um processo a fila determinada na criao do processo, permanecendo at o termino do seu processamento.
Notas de Aula
11
Sistemas Operacionais
F a 2 (F il IFO Adaptado)
F a 3 (F il IFO Adaptado)
UCP
Mio f t ara ia
P r ae r id d io
M o e r n
Notas de Aula
d t mo ee p
12