You are on page 1of 12

Fundamentos de Sistema Operacional Professor: Ren Furtado

Gerenciamento de Processos
Escalonamento de Tarefas

Escalonamento de Processos

Gerenciamento de Interrupes

Escalonamentos

Fundamentos de Sistema Operacional Professor: Ren Furtado

1.

Introduo

Veremos como o gerenciador do processador aloca uma nica CPU para executar os programas desses usurios. Em um sistema de um nico usurio, a CPU encontra-se ocupada apenas quando o usurio est executando um programa, fora disso estar sempre ociosa. Todavia, quando h muitos usurios com nmeros programas no sistema (Multiprogramao), o processador deve ser alocado a cada programa de maneira equnine e eficiente.

Definies
Um programa uma unidade inativa, como um arquivo armazenado no disco. Para o Sistema Operacional um programa uma unidade de trabalho que foi submetido pelo usurio. Um processo uma entidade ativa que requer um conjunto de recursos, como o processador e registradores especiais, para executar suas funes. Um processador tambm chamado de tarefa. Uma linha de execuo (Thread) de controle uma parte de um processo que pode ser executado independente. Por exemplo: uma linha de execuo para fazer download de vrias fotos, far download de uma foto por vez. Se seu sistema operacional permite que tenha mltiplas linhas de execuo poder fazer download de vrias fotos ao mesmo tempo. O processador tambm conhecido como CPU (Central Processing Unit, Unidade central de Processamento), a parte da mquina que faz os clculos e executa os programas. A multiprogramao exige que o processador seja alocado a cada programa ou a cada processo durante a execuo de um programa, isso deve ser feito de tal forma que o programa possa ser reiniciado mais tarde, de maneira mais simples possvel.

Escalonamentos

Fundamentos de Sistema Operacional Professor: Ren Furtado

Escalonamento de Programas e Processo


O gerenciador da CPU a combinao de dois subgerenciadores: Um responsvel pelo escalonamento Outro responsvel pelo escalonamento de Processos.

O escalonador de processo feito em dois nveis, portanto, cada programa deve passar por uma hierarquia de gerenciadores. O escalonador de programas o primeiro deles e, por essa razo, tambm conhecido como escalonador de alto nvel. Sua nica preocupao selecionar programas em fila de entrada e coloca-las na fila de processos. O objetivo do escalonador de programas colocar os programas em uma sequencia que resulte na utilizao otimizada dos recursos do sistema. O escalonador procura encontrar um equilbrio entre programas com alto grau de interao de E/S e programas com grandes quantidades de computao. O seu objetivo reduzir ao mximo a ociosidade da maioria dos componentes de um sistema de computao.

Escalonador de Processos
O escalonador de processos determina quais os processos que sero alocados CPU, aps o escalonade de programas coloca os processos em fila (FIFO). O escalonador de processo o escalonador de baixo nivel que inclui a CPU para executar os processos daqueles programas que foram colocados na fila PRONTO pelo escalonador de PROGRAMAS. Essa funo torna-se crucial quando preciso coordenar o processamento de vrios programas. Para agendar a CPU, o escalonador de processos tira partido de uma caracterstica comum maioria de programas de computao. Eles alternam ciclos de CPU e ciclos de E/S. Observe que o programa abaixo possui um ciclo de CPU relativamente grande e ciclos de E/S muito curtos.

Escalonamentos

Fundamentos de Sistema Operacional Professor: Ren Furtado

Estados de Programas e Processos


medida que um programa se movimenta pelo sistema, ele est sempre em um de cinco estados diferentes (ou pelo menos trs): NOVO, PRONTO, EM ESPERA OU ALTERNADO, como ilustra a figura abaixo;
Escalonador de Programas, Escalonador de Processos (Liberam recursos)

Escalonador de programas (Equilibrando a utilizao dos recursos, memria, dispositivos).

Escalonador de Processos (algoritimos).

NOVO

PRONTO

EM EXECUO

TERMINADO

Escalonador de processos (sinal do gerenciador de dispositivos ou do manipulador de interrupo de pginas)

Escalonador de Processos (requisio de E/S, erro de Pgina. EM ESPERA

Escalonamentos

Fundamentos de Sistema Operacional Professor: Ren Furtado

O programa passa de NOVO para PRONTO quando este pronto para execuo, mas espera pela CPU. O estado de EM EXECUO, o programa esta sendo processado. EM ESPERA significa que o programa no pode continuar ate que um recurso especifico lhe seja alocado ou que uma operao de E/S tenha terminado. Uma vez concludo, o programa terminado e enviado de volta ao usurio. A transio de NOVO para PRONTO iniciada pelo escalonador de programas, de acordo com algum critrio predefinido. Nesse ponto, so verificadas a disponibilidade de memria e a disponibilidade dos recursos requisitados. A transio de PRONTO para EM EXECUO feita pelo escalonador de processos, de acordo com algum algoritmo predefinido. A transio de EM EXECUO de volta para PRONTO feita pelo escalonador de processos, de acordo com algum limite de tempo ou com outro critrio predefinido (por exemplo, uma interrupo de prioridade). A transio EM EXECUO para EM ESPERA feita pelo escalonador de processos e iniciada por uma instruo de programa que contenha o comando READ, o comando WRITE, qualquer outro comando de E/S ou um comando de busca de pgina. A transio EM ESPERA para PRONTO feita pelo escalonador de processos e iniciada por um sinal do gerenciador de dispositivos de E/S dizendo que a solicitao de E/S foi aceita e que o programa pode continuar. No caso de uma busca de pgina, o manipulador de erros de pgina envia um sinal dizendo que a pgina j est em memria e que o processo pode ser colocado em fila PRONTO. Eventualmente, a transio de EM EXECUTAR para TERMINADO iniciado pelo escalonador de processos ou pelo escalonador de programas quando: (1) o programa concludo com sucesso e ele termina a execuo, ou (2) o sistema operacional indica que houve um erro e que o programa foi terminado prematuramente.

BLOCOS DE CONTROLE DE PROCESSO


Cada processo no sistema representado por uma estrutura de dados, denominada bloco de controle de processo (BCP), que funciona maneira de um passaporte. O BCP contem informaes bsicas a respeito de um programa: o que ele , onde est indo, at onde seu processamento j foi concludo, onde est armazenado e o quanto j foi gasto em termos de utilizao de recursos. Escalonamentos 5

Fundamentos de Sistema Operacional Professor: Ren Furtado

Identificao do Processo Status do Processo Estado do Processo


Palavra de status de processo Contedo do Registrador Memria Principal Recursos Prioridade do processo

Contabilidade

IDENTIFICAO DO PROCESSO Cada programa recebe uma identificao especifica atravs da identificao do usurio e de um ponteiro que conecta o seu descritor (fornecido pelo escalonador de programas quando o programa entra no sistema e colocado na fila NOVO). STATUS DO PROCESSO Indica o status do programa em determinado momento NOVO, PRONTO, EM EXECUO ou EM ESPERA e os recursos responsveis por esta status. ESTADO DO PROCESSO Contm todas as informaes necessrias para indicar o estado do programa em determinado momento, como: Palavra de Status de Processo o contedo de instruo e do registrador quando o programa no esta em execuo ( quando seu status NOVO, PRONTO ou EM ESPERA). Se o programa estiver EM EXECUO, essa informao no definida. Contedo do Registrador o contedo do registrador quando o programa foi interrompido e est esperando para reiniciar a execuo. Memria Principal informaes pertinentes, incluindo o endereo onde o programa est armazenado e, no caso de memria virtual, o mapeamento entre as posies de memria virtual e memria fsica. Recursos informaes sobre todos os recursos alocados ao programa. Cada recurso possui um campo indicando o seu tipo e outro contendo detalhes sobre sua alocao (como o endereo de setor em um disco). Esses recursos podem ser unidades de hardware (como unidades de disco ou impressora) ou arquivos. Prioridades de Processo necessrio aos sistemas que utilizam algoritmos de escalonamento por prioridade para selecionar o prximo programa a ser executado.

Escalonamentos

Fundamentos de Sistema Operacional Professor: Ren Furtado

CONTABILIDADE Contm informaes utilizadas principalmente para cobrana e para medies de desempenho. Indica que tipo de recursos o programa utilizou e por quanto tempo. As cobranas mais comum tm a ver com: Tempo de utilizao da CPU do inicio ao fim da execuo. Tempo total em que o programa permaneceu no sistema ate deixa-lo. Ocupao da armazenagem principal por quanto tempo o programa permaneceu em memoria at o termino da execuo. Normalmente, fazse uma combinao entre os parmetros tempo e espao. Por exemplo, em um sistema de paginao, a ocupao pode ser medida em pagina/segundos. Armazenagem secundaria utilizada durante a execuo. Aqui tambm faz-se uma combinao entre o tempo e o espao utilizado. Programas de sistema utilizados, como compiladores, editores ou utilitrios. Nmero e tipo de operao de E/S, incluindo tempo de transmisso e utilizao de canais, unidades de controle e dispositivos. Tempo gasto para concluso das operaes de E/S. Nmero de registros de entrada lidos ( em particular, as entradas feitas on-line ou atravs de scanners ticos, leitores de carto ou outros dispositivos de entrada), e o nmero de registros de sada escritos (em particular, aqueles enviados impressora de linhas). Aqui, faz-se uma distino entro os dispositivos de armazenagem secundria e os dispositivos tpicos de E/S.

BANCOS DE CONTROLE DE PROCESSO (BCP) E FILAS


O BCP de um programa criado quando o escalonador de programa aceita o programa e atualizado ao longo de toda a execuo. As filas utilizam os BCPs para monitorar os programas da mesma maneira que um oficial de imigrao utiliza os passaportes para monitorar visitantes estrangeiros. Os BCPs e no os programas so encadeados para formar as filas. Mesmo que os BCPs no estejam representados detalhadamente, voc dever imaginar cada fila como um encadeamento de BCPs. Os BCPs de todos os programas prontos para execuo so encadeados na fila PRONTO, e todos os BCPs dos programas que acabaram de entrar no sistema so encadeados Escalonamentos 7

Fundamentos de Sistema Operacional Professor: Ren Furtado

na fila NOVO. Os BCPs dos programas que esto EM ESPERA so encadeados em diversas filas de acordo com o motivo de espera. Por exemplo: os BCPs dos programas que esto esperando por E/S em uma unidade de disco especifica so agrupados em uma fila e os BCPs dos programas que esto esperando por uma impressora de linha so agrupados em outra. As filas precisam ser gerenciadas de forma ordenada e isso depende dos critrios e dos algoritmos de escalonamento de processos.

CRITRIOS DE ESCALONAMENTO DE PROCESSOS


Em um ambiente de MULTIPROGRAMAO, o nmero de processos a executar normalmente excede a capacidade do sistema para processa-los simultaneamente. Antes de escalon-los, o sistema operacional precisa resolver trs limites: (1) O numero de recursos (unidade de disco, impressoras, unidade de fita, e etc) limitado. (2) alguns recursos, uma vez alocado, no podem mais ser compartilhados por outros programas (como impressoras); (3) alguns recursos necessitam da interveno de um operador, ou seja, no podem ser realocados automaticamente entre um programa e outro (como as unidades de fita). Qual seria um bom critrio de escalonamento de processo? H vrios critrios, mas observe na lista a seguir que uns contradizem outros: Maximizar produtividade executar o maior nmero possvel de programas em determinado perodo. Isso poderia ser facilmente alcanado com a execuo de programas curtos e/ ou sem interrupes.

Escalonamentos

Fundamentos de Sistema Operacional Professor: Ren Furtado

Minimizar o tempo de resposta rapidamente executar as solicitaes interativas. Isso poderia ser alcanado executando-se em primeiro lugar todos os programas interativos e deixando para depois a execuo dos programas em lotes. Minimizar o tempo de retorno submeter e retornar os programas o mais rapidamente possvel. Isso poderia ser alcanado executando-se em primeiro lugar todos os programas em lotes (eles podem ser agrupados de forma mais eficiente que programas interativos). Minimizar o tempo de espera retirar os programas da fila PRONTO o mais rapidamente possvel. Isso s poderia ser feito com a reduo do numero de usurios, de tal forma que a CPU pudesse estar disponvel imediatamente, assim que um programa entrasse na fila PRONTO. Maximizar a eficincia da CPU manter a CPU sempre ocupada. Isso poderia ser alcanado executando-se apenas os programas dependentes de CPU (e no os programas dependentes de E/S). Garantir equanimidade para todos os programas tornar disponvel a todos os programas a mesma quantidade de tempo de CPU e E/S. Isso poderia ser feito negando-se tratamento especial a todos os programas, revelia de suas caractersticas ou prioridade.

Podemos inferir da que, ao favorecer determinados usurios, o sistema prejudica outros ou deixa de utilizar eficientemente seus recursos. Para resolver o problema, o escalonador de processos muitas vezes utiliza um mecanismo de cronometragem que periodicamente interrompe processos em execuo quando um inerv-lo de tempo predeterminado se esgota. Quando isso acontece, o escalonador suspende toda a atividade do programa em execuo naquele momento e recoloca-o na fila PRONTO para que possa retornar mais tarde. A CPU ento alocada a um outro programa, o qual fica em execuo at que uma de trs coisas acontea: seu tempo se esgota, um comando E/S emitido ou o programa termina. Em seguida, o programa transferido para a fila PRONTO, para a fila EM ESPERA ou para a fila TERMINADO, respectivamente. Em um ambiente de multiprogramao, uma solicitao de E/S chamada de espera natural. Uma estratgia de escalonamento que interrompe a execuo de um programa e transfere a CPU para outro recebe o nome de critrio preemptivo de escalonamento ( amplamente utilizado nos ambientes de tempo compartilhado). Naturalmente, a alternativa um critrio no-preemptivo de escalonamento, o qual no permite interrupes externas tarefa. Nesse caso, quando um programa se apodera da CPU e comea a ser executado, ele permanece ininterruptamente no estado de EM EXECUO at que um Escalonamentos 9

Fundamentos de Sistema Operacional Professor: Ren Furtado

comendo de E/S (espera natural) seja emitido ou que o programa termine (programa feito aos laos infinitos, os quais so interrompidos por ambos os critrios, preemptivos e no-preemptivos.

ALGORITMOS DE ESCALONAMENTO DE PROCESSOS


O escalonador de processos trabalha com um algoritmo de escalonamento de processos baseado em critrios especficos para alocar a CPU e possibilitar o trnsito de programas pelo sistema. Os sistemas operacionais mais antigos trabalhavam com critrios no-preemptivos concebidos para movimentar os programas em lotes pelo sistema de maneira mais eficiente possvel. A maioria dos sistemas atuais, em que h uma nfase maior de interatividade e no tempo de resposta, trabalha com um algoritmo que procura satisfazer as necessidades imediatas dos usurios interativos. Vejamos, a seguir, seis algoritmos de escalonamento de processos amplamente atualizados. O primeiro a chegar, primeiro a ser atendido (PCPA) um algoritmo de escalonamento no-preemptivo que lida com programas de acordo com a ordem de chegada. O programa menor primeiro (MP) um algoritmo de escalonamento nopreemptivo que lida com os programas de acordo com a extenso de seus ciclos de CPU. Escalonamento por prioridade um algoritmo no-preemptivo e um dos algoritmos de escalonamento mais comum nos sistema em lotes, mesmo que resulte em tempo de retorno mais lento para alguns usurios. Menor tempo restante (MTR) a verso preemptiva do algoritmo MP. O processador alocado ao programa mais prximo de seu trmino, mas esse programa ainda pode ser preferido caso um novo, com tempo de execuo menor, entre na fila PRONTO. Rodzio um algoritmo preemptivo de escalonamento de processos amplamente utilizado nos sistemas interativos, j que fcil de se implementar e no se baseia nas caractersticas dos programas, mas em uma fatia de tempo reservada a cada programa de forma a garantir que a CPU seja equitativamente compartilhada por todos os processos ativos, e no monopolizar por um nico programa.

Escalonamentos

10

Fundamentos de Sistema Operacional Professor: Ren Furtado

Essa fatia de tempo chamada de quantum de tempo e seu tamanho crucial para o bom desempenho do sistema. Normalmente varia entre cem milissegundos e um ou dois segundos. Filas de mltiplos nveis no so exatamente um algoritmo de escalonamento separado, mas funcionam em conjunto com vrios dos esquemas apresentados anteriormente. So encontradas nos sistemas onde h programas que podem ser agrupados de acordo com uma caracterstica comum. J introduzimos pelo menos um tipo de fila de mltiplos nveis, a do um sistema baseado em prioridades em que h diferentes filas para cada nvel de prioridade.

MEMRIA CACHE
um tipo de memria de rpido acesso que foi concebida para amenizar as diferenas de velocidade entre a CPU muito rpida e uma memoria principal lenta. Com esse fim, dados utilizados com muita frequncia so armazenados em uma rea de memoria de fcil acesso, e no na memoria principal, de acesso lento. Um cache de memoria relativamente pequeno pode resultar em ganhos significativos de desempenho.

Escalonamentos

11

Fundamentos de Sistema Operacional Professor: Ren Furtado

Biografia Ida M. Flynn Introduo aos Sistemas Operacionais no: 2002.

Escalonamentos

12

You might also like