Você está na página 1de 5

Gerncia do Processador

Funes

Com o surgimento dos sistemas multiprogramveis, onde mltiplos processos poderiam permanecer na memria e disputar o uso de um nico processador, a gerncia do processador tornou-se uma das atividades mais importantes em um sistema operacional. A partir do momento em que vrios processos podem estar no estado de pronto, devem ser estabelecidos critrios para definir qual processo ser escolhido para fazer uso do processador. Tais critrios compem a poltica de escalonamento, que a base da gerncia do processador e da multiprogramao em um sistema operacional. Dentre as funes da gerncia do processador, podemos citar: 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 e; Oferecer tempos de resposta razoveis aos usurios interativos. Cada sistema operacional possui sua poltica de escalonamento adequada ao seu propsito e s suas caractersticas. Sistemas de tempo compartilhado, por exemplo, possuem requisitos de escalonamento distintos dos sistemas de tempo real.

Critrios de escalonamento Utilizao do processador: corresponde a uma taxa de utilizao, que na maioria dos sistemas varia entre 30 e 90%. Uma utilizao abaixo dos 30% indicaria um sistema ocioso, com carga de processamento baixa, enquanto uma taxa de utilizao acima dos 90% pode indicar um sistema bastante carregado, prximo da sua capacidade mxima (em alguns casos tal situao pode levar a um crash travamento do sistema).
Throughput: 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 interferem neste parmetro, sendo este tempo funo apenas do cdigo executvel e da entrada/sada de dados. Tempo de Espera (pela CPU): todo o tempo que o processo permanece na fila de pronto, aguardando a liberao da CPU para ser executado. A reduo deste tempo de espera desejada pela maioria das polticas de escalonamento.

Tempo de Turnaround: o tempo total que o processo permaneceu no sistema, desde sua criao at o momento em que encerrado. So contados os tempos de alocao de memria, espera na fila de pronto e interrupo (E/S). Tempo de Resposta: o tempo decorrido entre uma requisio ao sistema e o instante em que a resposta comea a ser exibida. Em sistemas interativos, como aplicaes on-line ou acesso Web, os tempos de resposta devem ser da ordem de apenas poucos segundos.

Escalonamentos No-Preemptivos e Preemptivos


Escalonamentos do tipo no-preemptivos so aqueles onde o sistema operacional no pode interromper o processo em execuo para retir-lo da CPU. Assim sendo, se nenhum evento externo ocorresse durante a execuo do processo, este permanecia na CPU at terminar ou ento alguma instruo do prprio programa o desviasse para o estado de espera (operao de E/S). J os escalonamentos preemptivos so caracterizados pela possibilidade de o sistema operacional interromper o processo em execuo para retir-lo da CPU e dar lugar a outro. Neste caso o processo retirado da CPU volta ao estado de pronto, onde permanece aguardando nova oportunidade de ocupar a CPU. Com o uso da preempo, possvel ao sistema priorizar a execuo de processos, como no caso de aplicaes em tempo real. Outro benefcio a possibilidade de implementar polticas de escalonamento que compartilhem o processador de uma maneira mais uniforme, balanceando o uso da CPU entre os processos. So escalonamentos no-preemptivos: FIFO: o processo que chegar primeiro fila de pronto selecionado para execuo, e permanece utilizando o processador at terminar sua execuo ou ser interrompido por E/S. Neste caso, o prximo processo da fila de pronto selecionado para execuo. Todo processo que chega fila de pronto entra no final desta fila, conservando a ordem de chegada na fila, at ser escalonado novamente. Apesar de simples, este escalonamento apresenta algumas deficincias, principalmente no que diz respeito dificuldade de se prever o incio da execuo de um processo, j que a ordem de chegada fila de pronto deve ser observada risca. Outro problema quanto aos tipos de processo, onde os CPUbound levam vantagem no uso do processador em relao aos do tipo I/O-bound, pois o sistema no trata este tipo de diferena. O escalonamento FIFO foi inicialmente implementado em sistemas monoprogramveis, sendo ineficiente se aplicado em sistemas interativos de tempo compartilhado. SJF (Shortest Job First): este escalonamento seleciona o processo que tiver o menor tempo de processador ainda por executar. Desta forma, o processo que estiver na fila de pronto com menor necessidade de tempo de CPU para terminar o seu processamento ser o escolhido para ocupar a CPU. Funciona com um parmetro passado ao sistema via contexto de software, onde o tempo estimado para o processo informado baseando-se em estatsticas de execues anteriores.

Como exemplo, vamos utilizar os mesmos processos executados no escalonamento FIFO acima, com seus respectivos tempos de execuo em u.t. (unidades de tempo): processo A com 10 u.t., processo B com 8 u.t, e o processo C com 9 u.t. Como neste escalonamento o que importa o tempo de execuo, a nova ordem de escalonamento para utilizao da CPU ser B, C e A.

Cooperativo: este escalonamento busca aumentar o grau de concorrncia no processador. Neste caso, um processo em execuo pode voluntariamente liberar o processador retornando fila de pronto, possibilitando que um novo processo seja escalonado, permitindo melhor distribuio do tempo do processador. A liberao da CPU uma tarefa exclusiva do programa em execuo, que de maneira cooperativa libera o processador para um outro processo. Neste mecanismo, o processo em execuo verifica periodicamente uma fila de mensagens para saber se existem outros processos na fila de pronto. Porm, como a interrupo do processo no depende do sistema operacional, situaes indesejveis podem ocorrer, como por exemplo, se um programa em execuo no verificar a fila de mensagens, os demais programas no tero chance de executar enquanto a CPU no for liberada. As primeiras verses do Windows chegaram a utilizar este tipo de escalonamento. Circular: um tipo de escalonamento projetado especialmente para sistemas em tempo compartilhado. muito semelhante ao FIFO (obedece a ordem de chegada fila de PRONTO), mas quando um processo passa para o estado de execuo h um limite de tempo para o uso contnuo do processador, chamadofatia de tempo (time-slice) ou quantum. Assim, toda vez que um processo selecionado para execuo uma nova fatia de tempo lhe concedida. Caso esta fatia de tempo expire, o sistema operacional interrompe o processo, salva seu contexto e o direciona para a fila de PRONTO. Este mecanismo conhecido como preempo por tempo. A principal vantagem deste escalonamento no permitir que um processo monopolize a CPU. Outrossim, uma desvantagem que os processos CPU-bound so beneficiados no uso do processador em relao aos processos I/O-bound, pois tendem a utilizar totalmente a fatia de tempo recebida. A figura a seguir mostra o escalonamento circular com 3 processos, onde a fatia de tempo igual a 2 u.t. No exemplo no esto sendo levados em considerao tempos de troca de contexto entre os processos, nem o tempo perdido em operaes de E/S. Os processos A, B e C, gastam 10 u.t, 6 u.t e 3 u.t., respectivamente.

So escalonamentos preemptivos:

Circular: um tipo de escalonamento projetado especialmente para sistemas em tempo compartilhado. muito semelhante ao FIFO (obedece a ordem de chegada fila de PRONTO), mas quando um processo passa para o estado de execuo h um limite de tempo para o uso contnuo do processador, chamadofatia de tempo (time-slice) ou quantum. Assim, toda vez que um processo selecionado para execuo uma nova fatia de tempo lhe concedida. Caso esta fatia de tempo expire, o sistema operacional interrompe o processo, salva seu contexto e o direciona para a fila de PRONTO. Este mecanismo conhecido como preempo por tempo. A principal vantagem deste escalonamento no permitir que um

processo monopolize a CPU. Outrossim, uma desvantagem que os processos CPU-bound so beneficiados no uso do processador em relao aos processos I/O-bound, pois tendem a utilizar totalmente a fatia de tempo recebida. A figura a seguir mostra o escalonamento circular com 3 processos, onde a fatia de tempo igual a 2 u.t. No exemplo no esto sendo levados em considerao tempos de troca de contexto entre os processos, nem o tempo perdido em operaes de E/S. Os processos A, B e C, gastam 10 u.t, 6 u.t e 3 u.t., respectivamente. Por Prioridades: funciona com base num valor associado a cada processo, denominado prioridade de execuo. O processo com maior prioridade na fila de PRONTO sempre o escolhido para ocupar o processador, sendo os processos com prioridades iguais escalonados pelo critrio FIFO. Neste escalonamento o conceito da fatia de tempo no existe. Como conseqncia disto, um processo em execuo no pode sofrer preempo por tempo. Neste escalonamento a perda do uso do processador somente ocorrer no caso de uma mudana voluntria para o estado de espera (interrupo por E/S), ou quando um outro processo de prioridade maior passa (ou chega) para o estado de pronto. Neste caso o sistema operacional interrompe o processo em execuo, salva seu contexto e o coloca na fila de pronto, dando lugar na CPU ao processo prioritrio. Este mecanismo chamado de preempo por prioridade. A figura a seguir mostra a execuo dos processos A, B e C, com tempos de execuo de 10, 4 e 3 u.t. respectivamente, e valores de prioridades de 2, 1 e 3, tambm respectivamente. Na maioria dos sistemas, valores menores correspondem MAIOR prioridade. Assim, a ordem de execuo ser invertida para B, A e C. A prioridade de execuo faz parte do contexto de software do processo, e pode ser esttica (quando no pode ser alterada durante a existncia do processo) ou dinmica (quando pode ser alterada durante a existncia do processo). Este escalonamento muito usado em sistemas de tempo real, com aplicaes de controle de processos, controle de trfego (sinais de trnsito, de trens/metr, areo), robtica, entre outros. Escalonamento Circular com Prioridades: implementa o conceito de fatia de tempo e de prioridade de execuo associada a cada processo. Neste escalonamento, um processo permanece no estado de execuo at que termine seu processamento, ou voluntariamente passe para o estado de espera (interrupo por E/S), ou sofra uma preempo 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 importncia dos processos atravs da prioridade (o Windows utiliza este escalonamento). Por Mltiplas Filas: Este escalonamento implementa vrias filas de pronto, cada uma com prioridade especfica. Os processos so associados s filas de acordo com caractersticas prprias, como importncia da aplicao, tipo de processamento ou rea de memria necessria. Assim, no o processo que detm a prioridade, mas sim a 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 fila quando todas as outras filas de maior prioridade estejam vazias. Os processos sempre voltam para a mesma fila de onde saram. Por Mltiplas Filas com Realimentao: semelhante ao anterior, porm permitindo ao processo voltar para uma outra fila de maior ou menor prioridade, de

acordo com seu comportamento durante o processamento. O sistema operacional identifica dinamicamente o comportamento de cada processo e o redireciona para a fila mais conveniente ao longo de seu processamento. um algoritmo generalista, podendo ser implementado na maioria dos sistemas operacionais.