Você está na página 1de 19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

GERNCIA DO PROCESSADOR

NDICE:
1. Introduo 2. Funes Bsicas 3. Definies 4. Critrios de Escalonamento 5. Escalonamentos No-Peemptivos e Preemptivos 6. Algoritmos de Escalonamento 7. Poltica de Escalonamento em Sistemas de Tempo Compartilhado 8. Poltica de Escalonamento em Sistemas de Tempo real 9. Bibliografia 10. Lista de Exerccios

1 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

1. INTRODUO
Com o surgimento dos sistemas multiprogramveis, onde mltiplos processos poderiam permanecer na memria principal compartilhando o uso da CPU, a gerncia do processador tornou-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 gerncia do processador e da multiprogramao em um sistema operacional.

Figura 1: Escalonamento

2. FUNES BSICAS
A poltica de escalonamento de um sistema operacional possui diversas funes bsicas, como:

manter o processador ocupado a maior parte do tempo; balancear o uso da CPU entre processos; privilegiar a execuo de aplicaes crticas; maximizar o throughput do sistema; oferecer tempos de resposta razoveis para usurios interativos. Cada sistema operacional possui sua poltica de escalonamento adequada ao seu

propsito e s suas caractersticas. A rotina do sistema operacional que tem como principal funo implementar os critrios da poltica de escalonamento denominada escalonador (scheduler). Em um
2 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

sistema multiprogramvel, o escalonador fundamental, pois todo o compartilhamento do processador dependente dessa rotina. Outra rotina importante na gerncia do processador conhecida como dispatcher, responsvel pela troca de contexto dos processos aps o escalonador determinar qual processo deve fazer uso do processador. O perodo de tempo gasto na substituio de um processo em execuo por outro denominado latncia do dispatcher.

3. DEFINIES
Algumas definies importantes:

Throughput: representa o nmero de processos executados em um determinado intervalo de tempo. Quanto maior o throughput, maior o nmero de tarefas executadas em funo do tempo. A maximizao do throughput desejada na maioria dos sistemas.

Tempo de processador: o tempo que um processo leva no estado de execuo durante seu processamento. As polticas de escalonamento no influenciam o tempo de processador de um processo, sendo este tempo funo apenas do cdigo da aplicao e da entrada de dados.

Tempo de espera: o tempo total que um processo permanece na fila de pronto durante seu processamento, aguardando para ser executado. Tempo de turnaround: o tempo que um processo leva desde a sua criao at ao seu trmino, levando em considerao todo o tempo gasto na espera para alocao de memria, espera na fila de pronto, processamento na CPU e na fila de espera, como nas operaes de E/S.

Tempo de resposta: o tempo decorrido entre uma requisio ao sistema ou aplicao e o instante em que a resposta exibida. Em sistemas interativos, podemos entender tempo de resposta como o tempo decorrido entre a ltima tecla digitada pelo usurio e o incio da exibio do resultado no monitor.

4. CRITRIOS DE ESCALONAMENTO
As caractersticas de cada sistema operacional determinam quais so os principais aspectos para a implementao de uma poltica de escalonamento adequada. Por exemplo, sistemas de tempo compartilhado exigem que o escalonamento trate todos os processos de forma igual, evitando, assim, a ocorrncia de starvation, ou seja, que um processo fique indefinidamente esperando pela utilizao do processador. J em sistemas
3 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

de tempo real, o escalonamento deve priorizar a execuo de processos crticos em detrimento da execuo de outros processos. A seguir so apresentados os principais critrios que devem ser considerados em uma poltica de escalonamento:

Ser justo: um algoritmo de escalonamento justo se todos os processos so tratados igualmente, e nenhum processo pode sofrer postergao indefinida; Maximizar o desempenho do sistema: um algoritmo de escalonamento deve tentar servir o maior nmero possvel de processos por unidade de tempo; Maximizar o nmero de usurios interativos recebendo tempos de resposta aceitveis (no mximo alguns segundos);

Ser previsvel: uma dada tarefa deveria rodar a mesma quantidade de tempo e sobre o mesmo custo independente da carga do sistema; Minimizar o overhead: nem sempre este objetivo considerado o mais importante. Overhead comumente visto como recursos perdidos. Mas, uma certa parte dos recursos do sistema tachados como overhead podem melhorar grandemente a performance total do sistema;

Balancear o uso de recursos: os mecanismos de escalonamento deveriam manter os recursos do sistema ocupados. Processos que usariam recursos subtilizados deveriam ser favorecidos;

Utilizao do processador: na maioria dos sistemas, desejvel que o processador permanea ocupado a maior parte do tempo. Uma utilizao na faixa de 30% indica um sistema com uma carga de processamento baixa, enquanto que na faixa de 90% indica um sistema bastante carregado, prximo de sua capacidade mxima;

Alcanar o equilbrio entre resposta e utilizao o melhor modo de garantir bons tempos de resposta ter suficientes recursos disponveis sempre que eles forem necessrios. O preo a ser pago por esta estratgia que a utilizao total dos recursos ser pobre. Em sistemas de tempo real, respostas rpidas so essenciais, e a utilizao dos recursos menos importante. Em outros tipos de sistemas, a economia faz muitas vezes a efetiva utilizao de recursos imperativa;

Evitar a espera indefinida (starvation): em muitos casos, a espera indefinida pode ser to ruim quanto o deadlock. Evitar a espera indefinida melhor realizada pelo aging (envelhecimento controla a postergao aumentando a prioridade do processo postergado);

Garantir prioridades: em ambientes nos quais os processos recebem prioridades, o mecanismo de escalonamento deveria favorecer os processos de maior prioridade.
4 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

5. ESCALONAMENTOS NO-PREEMPTIVOS E PREEMPTIVOS


As polticas de escalonamento podem ser classificadas segundo a possibilidade de o sistema operacional interromper um processo em execuo e substitu-lo por um outro, atividade esta conhecida como preempo. Sistemas operacionais que implementam escalonamento com preempo so mais complexos, porm possibilitam polticas de escalonamento mais flexveis. O escalonamento no-preemptivo foi o primeiro tipo de escalonamento implementado nos sistemas multiprogramveis, onde predominava tipicamente o processamento batch. Nesse tipo de escalonamento, quando um processo est em execuo nenhum evento externo pode ocasionar a perda do uso do processador. O processo somente sai do estado de execuo caso termine seu processamento ou execute instrues do prprio cdigo que ocasionem uma mudana para o estado de espera. O escalonamento preemptivo caracterizado pela possibilidade do sistema operacional interromper um processo em execuo e pass-lo para o estado de pronto, com o objetivo de alocar outro processo na CPU. Com o uso da preempo, possvel ao sistema priorizar a execuo de processos, como no caso de aplicaes de tempo real onde o fator tempo crtico. Outro benefcio a possibilidade de implementar polticas de escalonamento que compartilhem o processador de uma maneira mais uniforme, distribuindo de forma balanceada o uso da CPU entre os processos. Atualmente, a maioria dos sistemas operacionais possui polticas de escalonamento preemptivas que, apesar de tornarem os sistemas mais complexos, possibilitam a implementao dos diversos critrios de escalonamento apresentados.

6. ALGORITMOS DE ESCALONAMENTO
6.1 Escalonamento First-In-First-Out (FIFO) Neste escalonamento, o processo que chegar primeiro ao estado de pronto o selecionado para execuo. Este algoritmo bastante simples, sendo necessria apenas uma fila, onde os processos que passam para o estado pronto entram no seu final e so escalonados quando chegam ao seu incio. Quando o processo termina sua execuo ou vai para o estado de espera, o primeiro processo da fila de pronto escalonado. Quando saem do estado de espera, todos os processos entram no final da fila de pronto.

5 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

Figura 2: Escalonamento FIFO Apesar de simples, o algoritmo FIFO apresenta algumas deficincias. O principal problema a impossibilidade de se prever quando um processo ter sua execuo iniciada, j que isso varia em funo do tempo de execuo dos demais processos posicionados sua frente na fila de pronto. Esse problema pode ser melhor percebido nos tempos de turnaround dos processos que demandam menor tempo de CPU. 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. 6.2 Escalonamento Menor Job Primeiro (SJF) O algoritmo de escalonamento seleciona o processo que tiver o menor tempo de processador ainda por executar. Dessa forma, o processo em estado de pronto que necessitar de menos tempo de CPU para terminar seu processamento selecionado para execuo. Essa implementao foi utilizada nos primeiros sistemas operacionais com processamento exclusivamente batch. Para cada novo processo admitido no sistema, um tempo de processador era associado ao seu contexto de software. Como no possvel precisar previamente o tempo de processador para cada processo, uma estimativa era realizada com base em anlises estatsticas de execues passadas dos programas. O tempo estimado era informado ao sistema operacional, que o utilizava como no algoritmo de escalonamento. Caso o tempo informado fosse muito inferior ao tempo real, o sistema operacional poderia interromper a execuo do processo. O principal problema nesta implementao a impossibilidade de estimar o tempo de processador para processos interativos, devido entrada de dados ser uma ao imprevisvel. Na sua concepo inicial, o escalonamento SJF um escalonamento nopreemptivo. Sua vantagem sobre o escalonamento FIFO est na reduo do tempo mdio
6 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

de turnaround dos processos, porm no SJF possvel haver starvation para processos com tempo de processador muito longo ou do tipo CPU-bound. 6.3 Escalonamento pela Prxima Taxa de Resposta Mais Alta (HRN) O escalonamento pela Prxima Taxa de Resposta Mais Alta (Highest-ResponseRation-Next HRN) corrige algumas das fraquezas no SJF, particularmente o preconceito excessivo contra tarefas longas e o excessivo favoritismo para novas tarefas curtas. O HRN um algoritmo de escalonamento no-preemptivo, no qual a prioridade de cada tarefa uma funo no somente do tempo de servio da tarefa, mas tambm da quantidade de tempo que a tarefa tem esperado pelo servio. Uma vez que a tarefa obtm a CPU, ele executa at a concluso. Prioridades dinmicas so calculadas de acordo com a frmula: prioridade = tempo de espera + tempo de servio tempo de servio Por aparecer o tempo de servio no denominador, tarefas menores ganharo preferncia. Mas, por aparecer o tempo de espera no numerador, tarefas maiores que tem esperado tambm recebero tratamento favorvel. Note que a soma: tempo de espera + tempo de servio o tempo de resposta da tarefa se esta tiver sido iniciada imediatamente. 6.4 Escalonamento Cooperativo uma implementao que busca aumentar o grau de multiprogramao em polticas de escalonamentos que no possuam mecanismos de preempo, como o FIFO e o SJF. Neste caso, um processo em execuo pode voluntariamente liberar o processador retornando fila de pronto, possibilitando que um novo processo seja escalonado e, assim, permitir melhor distribuio no uso do processador. A principal caracterstica do escalonamento cooperativo est no fato de a liberao do processador ser uma tarefa realizada exclusivamente pelo processo em execuo, que de uma maneira cooperativa libera a CPU para um outro processo. Neste mecanismo, o processo em execuo verifica periodicamente uma fila de mensagens para determinar se existem outros processos na fila de pronto. Como a interrupo do processo em execuo no responsabilidade do sistema operacional, algumas situaes indesejadas podem ocorrer. No caso de um processo no verificar a fila de mensagens, os demais no tero chance de ser executados at a liberao da CPU pelo processo em execuo. Isto pode ocasionar srios problemas para a multiprogramao cooperativa, na medida em que um programa pode permanecer por um longo perodo de tempo alocando o processador.

7 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

Um exemplo deste tipo de escalonamento pode ser encontrado nos primeiros sistemas operacionais da famlia Microsoft Windows, sendo conhecido como multitarefa cooperativo. 6.5 Escalonamento Round Robin ou Circular um escalonamento do tipo preemptivo, projetado especialmente para sistemas de tempo compartilhado. bastante semelhante com o FIFO, porm, quando um processo passa para o estado de execuo, existe um tempo limite para o uso contnuo do processador denominado fatia de tempo (time slice) ou quantum. Neste escalonamento, 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 por preempo por tempo.

Figura 3: Escalonamento Circular O valor da fatia de tempo depende da arquitetura de cada sistema operacional e, em geral, varia de 10 a 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 da fatia de tempo seja pequeno, a tendncia 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 o uso da CPU, sendo o tempo mximo alocado continuamente igual fatia de tempo definido no sistema. No caso de sistemas de tempo compartilhado, o escalonamento circular adequado. Um problema presente nessa poltica que os processos CPU-bound so beneficiados no uso do processador em relao aos processos I/O-bound. Devido s suas caractersticas, os processos CPU-bound tendem a utilizar integralmente sua fatia de

8 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

tempo, enquanto os processos I/O-bound tm mais chances de passar para o estado de espera antes de sofrerem preempo por tempo. 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 fila de pronto, e o escalonador 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 calculada como sendo o valor da fatia de tempo do sistema menos o tempo de processador que o processo utilizou na ltima vez que foi escalonado a partir da fila de pronto.

Figura 4: Escalonamento circular virtual 6.6 Escalonamento com Prioridade um escalonamento do tipo preemptivo realizado com base em um valor associado a cada processo denominado prioridade de execuo. O processo com maior prioridade no estado de pronto sempre o escolhido para execuo, e processos com valores iguais so escalonados seguindo o critrio do FIFO. Neste escalonamento, o conceito de fatia de tempo no existe; conseqentemente, um processo em execuo no pode sofrer preempo por tempo. No escalonamento por prioridade, a perda do uso do processador s ocorrer no caso de uma mudana voluntria para o estado de espera ou quando um processo de prioridade maior passa para o estado de pronto. Neste caso, o sistema operacional dever interromper o processo corrente, salvar seu contexto e coloc-lo no estado de pronto. Esse mecanismo conhecido como preempo por prioridade. Aps isso, o processo de maior prioridade escalonado. A preempo por prioridade implementada atravs de uma interrupo de clock, gerada em determinados intervalos de tempo, para que a rotina de escalonamento reavalie as prioridades dos processos do estado de pronto. Caso haja processos na fila de pronto com maior prioridade do que o processo em execuo, o sistema realiza a preempo.
9 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

Figura 5: Escalonamento por prioridades O escalonamento por prioridade tambm pode ser implementado de uma maneira no-preemptiva. 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 colocado no incio da fila de pronto. Cada sistema operacional implementa sua faixa de valores para as prioridades de execuo. Prioridades estticas no permitem alterao. Mecanismos de prioridade esttica so fceis de implementar e tem relativamente pouco overhead. Prioridades dinmicas podem ser ajustadas de acordo com critrios definidos pelo sistema operacional. A prioridade inicial determinada por um processo pode ter somente uma pequena durao antes de ser ajustada para um valor melhor. Esquemas de prioridade dinmica no so complexos de implementar e tem maior overhead do que esquemas estticos. O overhead justificado pelo aumento da responsividade do sistema. Um dos principais problemas no escalonamento por prioridades o starvation. Processos de baixa prioridade podem ser escalonados, permanecendo indefinidamente na fila de pronto. Uma soluo para este problema a tcnica de aging. Este mecanismo incrementa gradualmente a prioridade de processos que permaneam por muito tempo na fila de pronto. 6.7 Escalonamento Circular com Prioridades Este escalonamento implementa o conceito de fatia de tempo e de prioridade de execuo associada a cada processo. Um processo permanece no estado de execuo at que termine seu processamento, voluntariamente passe para o estado de espera ou sofra uma preempo por tempo ou prioridade.
10 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

Figura 6: Escalonamento circular com prioridades A principal vantagem desse escalonamento permitir o melhor balanceamento no uso da CPU, com a possibilidade de diferenciar o grau de importncia dos processos. Esse tipo de escalonamento amplamente utilizado nos sistemas de tempo compartilhado. 6.8 Escalonamento por Mltiplas Filas No escalonamento por mltiplas filas existem diversas filas de processos no estado de pronto, cada qual com uma prioridade especfica. Os processos so associados s filas em funo de caractersticas prprias, como importncia para a aplicao, tipo de processamento ou rea de memria necessria. Como os processos possuem caractersticas de processamento distintas, difcil que um nico mecanismo de escalonamento seja adequado a todos. A principal vantagem de mltiplas filas a possibilidade da convivncia de mecanismos de escalonamento distintos em um mesmo sistema operacional. Cada fila possui um mecanismo prprio, permitindo que alguns processos sejam escalonados pelo mecanismo FIFO, enquanto outros pelo circular. Neste mecanismo, o processo no possui prioridade, ficando esta caracterstica associada fila. O processo em execuo sofre preempo caso um outro processo entre em uma fila de maior prioridade. O sistema operacional s pode escalonar processos de uma determinada fila caso todas as outras de maior prioridade estejam vazias. Uma boa prtica classificar os processos em funo do tipo de processamento realizado e associlos adequadamente s respectivas filas.

11 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

Figura 7: Escalonamento por mltiplas filas Na figura acima, foram considerados os processos divididos em trs grupos: sistema, interativo e batch, sendo que os processos de sistema foram colocados em uma fila com prioridade mais alta, os interativos em uma fila intermediria e os tipos batch, em uma fila com prioridade mais baixa. Uma desvantagem deste escalonamento que, no caso de um processo alterar seu comportamento no decorrer do tempo, o processo no poder ser redirecionado para outra fila mais adequada. A associao de um processo fila determinada na criao do processo, permanecendo at o trmino do seu processamento. 6.9 Escalonamento por Mltiplas Filas com Realimentao semelhante ao escalonamento por mltiplas filas, porm os processos podem trocar de fila durante seu processamento. Sua grande vantagem permitir ao sistema operacional identificar dinamicamente o comportamento de cada processo, direcionando-o para fila com prioridade de execuo e mecanismo de escalonamento mais adequado ao longo de seu processamento. Esse esquema permite que os processos sejam redirecionados entre as diversas filas, fazendo com que o sistema operacional implemente um mecanismo de ajuste dinmico denominado mecanismo adaptativo. Os processos no so previamente associados s filas de pronto, e, sim, direcionados pelo sistema para as filas existentes com base no seu comportamento. Um mecanismo FIFO adaptado com fatia de tempo implementado para escalonamento em todas as filas, com exceo da fila de menor prioridade que utiliza o escalonamento circular. O escalonamento de um processo em uma fila ocorre apenas quando todas as outras filas de prioridade mais altas estiverem vazias. A fatia de tempo em cada fila varia em funo da sua prioridade, ou seja, quanto maior a prioridade da fila, menor a sua fatia de tempo. Um processo, quando criado, entra na fila de maior prioridade, porm durante a sua execuo, a cada preempo por tempo, o processo redirecionado para uma fila de menor prioridade.
12 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

Figura 8: Escalonamento por mltiplas filas com realimentao Este escalonamento atende s necessidades dos diversos tipos de processos. No caso de processos I/O-bound, um tempo de resposta adequado obtido, j que esses processos tm prioridades mais altas por permanecerem a maior parte do tempo nas filas de maior prioridade, pois dificilmente sofrero preempo por tempo. Por outro lado, em processos CPU-bound a tendncia de que, ao entrar na fila de mais alta prioridade, o processo ganhe o processador, gaste sua fatia de tempo, e seja direcionado para uma fila de menor prioridade. Dessa forma, quanto mais tempo um processo se utiliza do processador, mais ele vai caindo para filas de menor prioridade. O escalonamento por mltiplas filas com realimentao um algoritmo generalista, podendo ser implementado em qualquer tipo de sistema operacional. Um dos problemas encontrados nessa poltica que a mudana de comportamento de um processo CPUbound para I/O-bound pode comprometer seu tempo de resposta. Outro aspecto a ser considerado sua complexidade de implementao, ocasionando um grande overhead ao sistema. 6.10 Escalonamento em Dois Nveis At agora temos assumido que todos os processos esto na memria principal. Se no houver memria disponvel para todos, alguns de tais processos devem ser mantidos em disco. Esta situao tem grande impacto sobre o escalonador, uma vez que o tempo gasto na troca de contexto envolvendo o disco algumas ordens de magnitude maior do que quando ambos os processos esto na memria principal.
13 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

Uma forma mais prtica de tratar com o swap de processos usando um escalonador de dois nveis. Um subconjunto dos processos prontos carregado inicialmente na memria principal. O escalonador ento se limita a escolher processos deste subconjunto, pelo menos por enquanto. Periodicamente, um escalonador de mais alto nvel entra em cena, para remover processos que j tenham ficado tempo suficiente na memria principal, e carregar nela processos que esto h muito no disco. Uma vez completada a troca, o escalonador de baixo nvel entra novamente em cena, limitando suas escolhas aos processos armazenados na memria principal. Desta forma, cabe ao escalonador de baixo nvel colocar para rodar um dos processos que estiverem na memria no momento da ativao do escalonador, enquanto que cabe ao de alto nvel movimentar periodicamente processos entre a memria principal e o disco. O escalonador de alto nvel pode usar os seguintes critrios na sua tomada de deciso: quanto tempo se passou desde que o processo foi colocado no disco ou na memria principal; quanto tempo de processador o processo usou recentemente; qual o tamanho do processo; qual a prioridade do processo. Podemos utilizar as tcnicas round robin, prioridade, ou qualquer outro mtodo de escalonamento para programar o escalonador de alto nvel.

7.

POLTICA

DE

ESCALONAMENTO

EM

SISTEMAS

DE

TEMPO

COMPARTILHADO
Em geral, sistemas de tempo compartilhado caracterizam-se pelo processamento interativo, onde usurios interagem com as aplicaes exigindo tempos de respostas baixos. A escolha de uma poltica de escalonamento para atingir este propsito deve levar em considerao o compartilhamento dos recursos de forma eqitativa para possibilitar o uso balanceado da CPU entre processos. Na figura abaixo, os processo A (CPU-bound) e B (I/O-bound) so escalonados segundo o mecanismo FIFO. Se contabilizarmos o uso da CPU para cada processo no instante de tempo 27, constataremos que o processador est sendo distribudo de forma bastante desigual (21 u.t. para o processo A e 6 u.t. para o processo B). Como a caracterstica do processo B realizar muitas operaes de E/S, em grande parte do tempo o processo permanecer no estado de espera.

14 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

Figura 9: Escalonamento FIFO A figura 10 apresenta os mesmos processo A e B, s que aplicando o escalonamento circular com fatia de tempo igual a 5 unidades de tempo. Com isso, o escalonador circular consegue melhorar a distribuio do tempo de processador (15 u.t. para o processo A e 10 u.t. para o processo B) em relao ao escalonamento FIFO, porm ainda no consegue implementar um compartilhamento eqitativo entre os diferentes tipos de processos. Essa deficincia no escalonamento circular deve-se ao fato de todos os processos serem tratados de maneira igual. Em um escalonamento em que todos os processos so tratados igualmente, processos CPU-bound sempre levam vantagem sobre processos I/O-bound no uso do processador.

Figura 10: Escalonamento circular


15 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

No escalonamento circular com prioridade possvel associar prioridades maiores aos processos I/O-bound, a fim de compensar o excessivo tempo gasto por este tipo de processo no estado de espera. Na figura abaixo, o processo B possui uma prioridade superior do processo A, obtendo-se desta forma, um maior grau de compartilhamento no uso do processador (12 u.t. para o processo A e 13 u.t. para o processo B).

Figura 11: Escalonamento circular com prioridades

8. POLTICA DE ESCALONAMENTO EM SISTEMAS DE TEMPO REAL


Diferentemente dos sistemas de tempo compartilhado, onde a aplicao no prejudicada pela variao no tempo de resposta, algumas aplicaes especficas exigem respostas imediatas para a execuo de determinadas tarefas. Nesse caso, a aplicao deve ser executada em sistemas operacionais de tempo real, onde garantida a execuo de processos dentro de limites rgidos de tempo, sem o risco de a aplicao ficar comprometida. O escalonamento em sistemas de tempo real deve levar em considerao a importncia relativa de cada tarefa na aplicao. Em funo disso, o escalonamento por prioridades o mais adequado, j que para cada processo uma prioridade associada em funo da importncia do processo dentro da aplicao. No escalonamento para sistemas de tempo real no deve existir o conceito de fatia de tempo e a prioridade de cada processo dever ser esttica.

16 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

9. BIBLIOGRAFIA
TANENBAUM, Andrew S., Sistemas Operacionais Modernos, Rio de Janeiro: Editora Prentice Hall do Brasil, 1995 MACHADO, F. B., MAIA, L. P., Arquitetura de Sistemas Operacionais, 3a edio, Ed. LTC, 2002, Rio de Janeiro

10. LISTA DE EXERCCIOS 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.


O que poltica de escalonamento de um sistema operacional? Quais as funes do escalonador e do dispatcher? Quais os principais critrios utilizados em uma poltica de escalonamento? Diferencie os tempos de processador, espera, turnaround e resposta. Diferencie os escalonamento preemptivos e no-preemptivos. Qual a diferena entre os escalonamentos FIFO e circular? Descreva o escalonamento SJF e o escalonamento por prioridades. Qual a diferena entre preempo por tempo e preempo por prioridade? O que um mecanismo de preempo adaptativo? Que tipo de escalonamento as aplicaes de tempo real exigem? O escalonamento por mltiplas filas com realimentao favorece processos CPU-bound ou I/O-bound? Justifique. Considere que cinco processos sejam criados no instante de tempo (P1, P2, P3, P4 e P5) e possuam as caractersticas descritas na tabela a seguir: Processos P1 P2 P3 P4 P5 Tempo de CPU 10 14 5 7 20 Prioridade 3 4 1 2 5

Desenhe um diagrama ilustrando o escalonamento dos processos e seus respectivos tempos de turnaround, segundo as polticas especificadas a seguir. O tempo de troca de contexto deve ser desconsiderado.

a) FIFO b) SJF
17 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

c) Prioridade (nmero menor implica prioridade maior) d) Circular com fatia de tempo igual a 2 u.t. 13.
Considere um sistema operacional com escalonamento por prioridades onde a avaliao do escalonamento realizada em um intervalo mnimo de 5 ms. Neste sistema, os processos A e B competem por uma nica CPU. Desprezando os tempos de processamento relativo s funes do sistema operacional, a tabela a seguir fornece os estados dos processos A e B ao longo do tempo, medido em intervalos de 5 ms (E = execuo, P = pronto e W = espera). O processo A tem menor prioridade que o processo B. 00-04 Processo A Processo B P E 05-09 P E 10-14 E W 15-19 E W 20-24 E P 25-29 P E 30-34 P E 35-39 P E

40-44 Processo A Processo B E W

45-49 W W

50-54 P W

55-59 E P

60-64 P E

65-69 P E

70-74 E W

75-79 E W

80-84 Processo A Processo B W P

85-89 W E

90-94 P E

95-99 E -

100-105 E -

a) Em que tempos A sofre preempo?


b) Em que tempos B sofre preempo? c) Refaa a tabela anterior supondo que o processo A mais prioritrio que o processo B. 14. Como o valor do quantum pode afetar o grau de multiprogramao em um sistema operacional? Qual a principal desvantagem de um quantum com um valor muito pequeno?

15.

Considere um sistema operacional que implemente escalonamento circular com fatia de tempo igual a 10 u.t. Em um determinado instante de tempo existem apenas trs processos (P1, P2 e P3) na fila de pronto, e o tempo de CPU de cada processo 18, 4 e 13 u.t., respectivamente. Qual o estado de cada processo no instante de tempo T, considerando a execuo dos processos P1, P2 e P3, nesta ordem, e que nenhuma operao de E/S realizada?

a) T = 8 u.t. b) T = 11 u.t.
18 de19

SISTEMAS OPERACIONAIS NOTAS DE AULAS

c) T = 33 u.t. 16.
Considere um sistema operacional que implemente escalonamento circular com fatia de tempo igual a 1 u.t. Em um determinado instante de tempo, existem apenas trs processos (P1, P2 e P3) na fila de pronto, e o tempo de CPU de cada processo 14, 4 e 12 u.t., respectivamente. Qual o estado de cada processo no instante de tempo T, considerando a execuo dos processos P1, P2 e P3, nesta ordem, e que apenas o processo P1 realiza operaes de E/S? Cada operao de E/S executada aps 5 u.t. e consome 10 u.t.

a) T = 8 u.t. b) T = 18 u.t. c) T = 28 u.t. 17.


Existem quatro processos (P1, P2, P3 e P4) na fila de pronto, com tempos de CPU estimados em 9, 6, 3 e 5, respectivamente. Em que ordem os processos devem ser executados para minimizar o tempo de turnaround dos processos?

18.

Considere a tabela a seguir onde Processos P1 P2 P3 P4 Tempo de CPU 40 20 50 30 Prioridade 4 2 1 3

Qual o tempo de turnaround mdio dos processos, considerando o tempo de troca de contexto igual a 0 e a 5 u.t. para os seguintes escalonamentos:
a)

FIFO Circular com fatia de tempo igual a 20 u.t.

b) SJF c)

19 de19