Vous êtes sur la page 1sur 9

SISTEMAS OPERACIONAIS

4 PROCESSOS
Os primeiros sistemas operacionais permitiam que apenas um processo fosse executado por vez. Dessa maneira, este processo tinha todo o sistema computacional a sua disposio. Os atuais sistemas operacionais permitem que vrios processos sejam carregados na memria e executados de forma concorrente pelo processador. Esta evoluo visava a maior eficincia do sistema computacional e a diminuio de desperdcio de recursos do mesmo. Embora tenha sido bem sucedido em alcanar essas metas, a multitarefa trouxe uma srie de complicaes para a implementao do sistema operacional, cujo projeto tornou-se bastante complexo. Via de regra, quanto mais complexa for a estrutura de um sistema operacional, maior ser a quantidade de servios oferecidos por ele. A concorrncia por recursos, o que inclui o prprio processador, fez com que fossem tomadas um conjunto de mecanismos para controle do compartilhamento dos recursos. Os recursos so compartilhados por processos, os quais so programas em execuo.

4.1 CONCEITO DE PROCESSO


Mesmo em sistemas monousurios possvel a execuo de vrias tarefas em paralelo. At quando o no nenhum programa de usurio sendo executado h processos sendo executados em paralelo.

EXEMPLO: Processo para atualizao da hora Processo para monitoramento da necessidade de proteo de tela
Figura 4-1 - Exemplo

comum que os termos job e processo sejam usados para a mesma finalidade. Atualmente, mais comum o uso do termo processo, pois job foi muito utilizado em sistemas batch.

4.1.1 O PROCESSO
De forma geral, um processo um programa em execuo. O cdigo do programa nada mais do que uma seo de texto. Para ele se tornar um processo preciso acrescentar o apontador de programas, contedo de registradores, rea de
WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

variveis globais e uma pilha com dados temporrios como, por exemplo, parmetros de mtodos ou funes, endereos de retorno e variveis locais. Pode-se definir um programa como uma entidade passiva e o processo uma entidade ativa. Um outro ponto importante a ser firmado o fato de que a execuo de duas cpias do mesmo programa gera dois processos.

4.1.2 ESTADOS DE UM PROCESSO


Um processo pode assumir uma srie de estados entre o incio e o fim de sua execuo. A transio no seqencial, embora tenha uma ordem bsica, pois ela pode assumir ciclos de estados. A existncia e a durao de ciclos de execuo depende do tempo de execuo, dos recursos que ele ir utilizar e dos processos que esto em execuo juntamente com ele. Os estados de execuo de um processo so: Novo o processo est sendo criado; Em execuo (Run) as instrues esto sendo executadas; Em espera (Blocked) o processo est bloqueado esperando a ocorrncia de um evento para poder voltar a ser executado. Muitas vezes ele fica esperando o trmino de uma operao de I/O ou um sinal de algum processo; Pronto (Ready) o processo est aguardando ser selecionado para uso do processador; Encerrado o programa terminou sua execuo. Estas terminologias para estes estados variam de acordo com a bibliografia. A Figura 4.2 ilustra o diagrama de transio de estados de um processo.
Novo Interrupo Aceito Pronto Em Execuo Sada Encerrado

Escolha do Escalonador Concluso do Evento Espera por um evento Em Espera


Figura 4-2 - Diagrama de Transio de Estados de um Processo
WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

4.1.3 BLOCO DE CONTROLE DE PROCESSO


Cada processo representado no sistema operacional por um bloco de controle de processo (PCB Process Control Block). Ele contm uma srie de informaes, das quais destacam-se e so ilustradas na Figura 4.3: Estado do Processo informa o estado atual do processo; Contador de Programa indica o endereo da prxima instruo a ser executada para este processo; Registradores de CPU informa os registradores a serem utilizados pelo sistema. A quantidade e categorias de registradores variam de acordo com a arquitetura do computador em uso. As informaes contidas nos registradores devem ser salvas quando ocorrer uma interrupo; Informaes de Escalonamento de CPU indica a prioridade do processo, ponteiros para filas de escalonamento e demais informaes do algoritmo de escalonamento; Informaes de Gerncia de Memria essas informaes incluem dados de valores dos registradores de base e limite, tabelas de pginas e de segmentos, dependendo da estrutura de memria utilizada; Informaes de Contabilizao so alocadas informaes capacidade da CPU e tempo real utilizados, nmero de jobs; sobre a

Informaes de Status de I/O so os dispositivos alocados para o processo.


Ponteiro Estado do Processo

Nmero do Processo Contador do Programa Registradores Limites da Memria Recursos

Demais Informaes

Figura 4-3 - Bloco de Controle de Processo


WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

4.1.4 THREADS
comum a discusso de processos que possuem um nico fluxo de execuo, o que possibilita o processo executar apenas uma tarefa por vez. A ttulo de exemplificao, se um programa de processamento de textos est sendo utilizado pelo usurio, onde ele est digitando um texto, o corretor ortogrfico no poder ser utilizado, pois um outro fluxo de controle. Entretanto, como sabido, possvel usar o corretor ortogrfico em paralelo a edio do texto. Em outras palavras, possvel a execuo de vrios fluxos do programa, os quais so mais comumente chamados de threads.

4.2 ESCALONAMENTO DE PROCESSOS


O objetivo da multiprogramao ter processos em execuo o tempo todo, visando maximizar o uso do processador. Para isto o tempo de uso do processador compartilhado entre todos os processos em execuo. A viabilidade est no fato de que nenhum processo usa os mesmos recursos ao mesmo tempo, ou mesmo que algumas operaes de I/O demoradas deixam o processador ocioso.

4.2.1 FILAS DE ESCALONAMENTO


Os processos que esto aptos a serem executados so alocados em uma fila que denominada Fila de Jobs, a qual contm todos os processos do sistema que esto em execuo. Esta fila possui divises de acordo com os possveis estados de execuo de um processo (Ver Figura 4.2). Logicamente no h filas para os estados: Novo, Terminado e Em Execuo. Se o tempo de uso do processador pelo processo terminou, ele deve ser alocado na fila de processos prontos e esperar ser selecionado novamente. J quando ele est bloqueado esperando um evento, ele fica na fila de processos Em Espera, at o evento ocorrer e, ento, ele realocado para a Fila de Prontos. Alm dessas filas, existem aquelas para espera para uso de dispositivos. Primeiro eles so alocados na Fila de Processos Em Espera e identificado o dispositivo requerido. Em seguida, uma chamada de sistema feita para indicar que o processo est na fila do referido dispositivo, caso um outro processo j esteja usando o dispositivo. O esquema bsico das filas de escalonamento de processos ilustrado na Figura 4.4.

WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

Fila de Processos Prontos

CPU

I/O

Fila de I/O

Pedido de I/O

Expira o Slot de tempo Filho Executa Ocorre Interrupo Cria um Processo filho Espera uma Interrupo

Figura 4-4 - Diagrama de Filas de Escalonamento

Cada caixa retangular representa uma fila com duas categorias: Processos Prontos e de Dispositivos. Os crculos so os recursos e as elipses eventos. As setas representam os fluxos. Todo novo processo alocado na Fila de Processos Prontos, onde aguarda ser selecionado para execuo. Podem ocorrer os seguintes eventos: O processo emite uma requisio de uso de um dispositivo de I/O e alocado na fila do mesmo; O processo pode criar um outro filho, chamado processo filho, e espera o seu trmino; O processo pode ser removido a fora da CPU como resultado de uma interrupo e ser alocado na fila de processos prontos;

4.2.2 ESCALONADORES
A Figura 4.4 ilustrou que um processo pode migrar entre vrias filas de escalonamento. tarefa do gerenciador de processos do Sistema Operacional selecionar os processos dessas filas que usaro os recursos. A parte do gerente de processos que responsvel pela seleo chamado de escalonador de processos (scheduler process).
WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

Nos sistemas multitarefa, vrios processos so submetidos execuo. Como existe apenas um nico processador, aqueles que esto aptos a serem executados imediatamente so colocados em um spool (espao de armazenagem em disco), onde so mantidos at serem executados. O escalonador de longo prazo seleciona alguns processos para ocuparem a memria. O escalonador de curto prazo seleciona um dos processos da memria para utilizar o processador, por isso ele tambm chamado de escalonador de CPU. A diferena entre esses escalonadores est na freqncia de execuo. Enquanto o segundo executado com altssima freqncia devido ao curto de perodo de tempo de uso de um processo por vez, o primeiro executado sem muita freqncia. tarefa do escalonador de longo prazo formar o banco de processos a serem escalonados. Conseqentemente, importante que ele faa uma cuidadosa seleo dos processos. Para fazer esta seleo, foi feita uma nova diviso de categoria de processos:

Processos Limitados por I/O so processos que predominantemente fazem operaes de I/O durante a sua execuo; Processos Limitados por CPU predominantemente, eles fazem operaes com a CPU.
altamente recomendado que o escalonador de longo prazo faa uma combinao com processos de ambas categorias. Esta recomendao tem por objetivo maximizar o uso dos recursos computacionais. A ttulo de exemplificao, toma-se a hiptese de que h uma grande quantidade de processos limitados por I/O na memria. Existe uma grande probabilidade de no haver processos na fila de processos prontos para execuo, conseqentemente o processador estar sendo subutilizado. Por outro lado, se houver muitos processos limitados por CPU, a probabilidade dos recursos ficarem ociosos grande. Alm disso, pode haver processos que poderiam utiliz-los e no o fazem por no estarem na memria.

4.2.3 SUBSTITUIO DE PROCESSOS


O procedimento de substituio de um processo no processador requer uma srie de cuidados, pois se ele voltar a utilizar o processador, importante que ele recomece exatamente de onde ele parou. importante a mudana de contexto de processo que representado pelo Bloco de Controle de Processo. Outro ponto a ser considerado que a troca de processos um processo, e consome recursos da CPU, os quais acabam no sendo contabilizados.

WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

4.3 OPERAES EM PROCESSOS


Os processos em um Sistema multitarefa executam de forma concorrente. Dessa maneira, muito importante que haja um rigoroso controle sobre as operaes realizadas pelos processos.

4.3.1 CRIAO DE PROCESSOS


Um processo criado a partir de uma chamada de sistema e pode criar outros processos atravs de novas chamadas de sistemas. O processo criador chamado processo-pai, enquanto os processos gerados por ele so chamados por processos-filho. Como cada processo pode criar novos processos, pode ser feita uma analogia com uma rvore de processos, conforme ilustrado na Figura 4.5.
Raiz

Pagedaemon

Swapper

Init

Usurio 1

Usurio 2

Usurio 3

Figura 4-5 - rvore de Processo

Para realizar a sua tarefa, os processos geralmente precisam de recursos. Um processo filho pode tanto requerer os seus recursos junto ao Sistema Operacional ou usar os recursos do processo-pai que o gerou. Quando isto ocorre, o processopai deve distribuir os recursos que esto em sua posse entre seus processos-filho. Restringir um processo-filho a usar apenas os recursos que esto com o seu processo-pai possibilita um maior controle sobre os recursos e evita que um deles sobrecarregue o sistema. O processo pai tambm pode passar os dados de

WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

entrada para os seus processos filhos. Quando um processo gera um outro processo podem ocorrer duas situaes: 1. O processo-pai continua a executar de forma concorrente com os processosfilho; 2. O processo-pai fica bloqueado at que um ou todos os seus processos-filho tenham terminado a execuo. Alm disso, um processo filho pode ser: Uma duplicata do processo-pai; Um outro programa carregado na memria. A Figura 4.6 ilustra um exemplo em fluxograma da gerao de um processo.
Incio

Pid = new process();

Pid < 0 Falha

Pid == 0 Execuo paralela Filho conclui

Fim
Figura 4-6 - Criao de Processo

4.3.2 TRMINO DE UM PROCESSO


O trmino de um processo marcado pela execuo de sua instruo final que pede que o sistema operacional o exclua da lista de processos. Todos os recursos alocados pelo processo so liberados.
WILIAM HIROSHI HISATUGU

SISTEMAS OPERACIONAIS

4.4 PROCESSOS COOPERATIVOS


Os processos concorrentes que esto executando no sistema operacional podem ser concorrentes ou cooperativos. Um processo independente se no afeta a execuo de outros processos. Basicamente, qualquer processo que no compartilha dados ou recursos independente. Caso um processo afete outro, ento ele cooperativo. Existem vrias razes para construir um ambiente favorvel aos processos cooperativos: Compartilhamento de Informaes vrios usurios podem estar interessados na mesma informao. preciso fornecer mecanismos para que possam utiliz-la sem causar danos uns aos outros ou prpria informao; Velocidade de Computao dividir uma tarefa em partes menores pode fazer com que ela seja executada mais rpida. importante que cada parte no utilize os mesmos recursos; Modularidade a construo do sistema em forma modular facilita a manuteno do mesmo e at a gerncia de memria e processos do sistema operacional; A questo dos conflitos dos processos cooperativos foco constante de pesquisas. Uma primeira anlise de concorrncia de processos pode ser feita atravs da analogia do problema do produtor-consumidor. Nele h dois processos e uma memria compartilhada:

Produtor insere uma srie de itens continuamente na memria; Consumidor retira os itens continuamente da memria compartilhada;
A memria pode ser limitada ou ilimitada. Ou seja, pode ou no ter uma capacidade mxima de armazenamento. Alm disso, a taxa de criao dos itens do processo Produtor pode ser diferente da taxa de retirada dos itens do processo consumidor. Este problema a analogia do uso do buffer de qualquer dispositivo.

4.5 COMUNICAO ENTRE PROCESSOS


O compartilhamento de recursos torna necessrio que haja mecanismos para prover esta cooperao entre eles. Os mecanismos tambm devem assegurar a integridade dos recursos e que eles no sejam tomados arbitrariamente de algum processo. Toda cooperao baseada na comunicao entre os membros, no caso os processos. A melhor forma para prover esta comunicao entre os processos a troca de mensagens entre eles, os quais podem ser definidos de vrias formas.

WILIAM HIROSHI HISATUGU

Vous aimerez peut-être aussi