Vous êtes sur la page 1sur 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

PROCESSOS

NDICE:

1. Introduo 2. Estrutura do Processo 3. Estados dos Processos 4. Mudana de Estado do Processo 5. Criao e eliminao de Processos 6. Processos Independentes, Subprocessos e Threads 7. Processos Foreground e Background 8. Processos do Sistema Operacional 9. Processos CPU-bound e I/O-bound 10. Sinais 11. Bibliografia 12. Lista de Exerccios

1 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

1. INTRODUO
O conceito de processo a base para a implementao de um sistema multiprogramado. O processador projetado apenas para executar instrues, no sendo capaz de distinguir qual programa se encontra em execuo. A gerncia de um ambiente multiprogramado funo exclusiva do sistema operacional, que deve controlar a execuo de diversos programas e o uso concorrente do processador. Para isto, para ser executado, um programa deve estar sempre associado a um processo. A gerncia dos processos uma das principais funes de um sistema operacional. Atravs de processos, um programa pode alocar recursos, compartilhar dados, trocar informaes e sincronizar sua execuo. Nos sistemas multiprogramados, os processos so executados concorrentemente, compartilhando o uso do processador, da memria principal e dos dispositivos de E/S.

2. ESTRUTURA DO PROCESSO
Um processo pode ser entendido inicialmente como um programa em execuo, s que seu conceito mais abrangente. Em um sistema multiusurio, cada usurio associado a um processo. Ao executar um programa, o usurio tem a impresso de possuir o processador e todos os demais recursos reservados exclusivamente para seu uso. Na realidade, o processador executa o programa de um usurio durante um intervalo de tempo e, no instante seguinte, poder estar processando um outro programa. Para que a troca de programas ocorra sem problemas, necessrio que todas as informaes do programa interrompido sejam guardadas para que, quando este retornar a ser executado, no lhe falte nenhuma informao necessria continuao do processamento. Todas as informaes importantes e necessrias execuo de um programa fazem parte do processo. Um processo tambm pode ser definido como o ambiente onde um programa executado. Este ambiente, alm das informaes sobre a execuo, possui tambm o quanto de recursos do sistema cada programa pode utilizar, como o espao de endereamento, tempo de processador e rea em disco. Um processo formado por trs partes, conhecidas como contexto de hardware, contexto de software e espao de endereamento, que juntas mantm todas as informaes necessrias execuo de um programa.
2 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

Figura 1: Estrutura do processo 2.1. Contexto de Hardware O contexto de hardware armazena o contedo dos registradores gerais da CPU, alm dos registradores de uso especfico, como o program counter (PC), stack pointer (SP) e registrador de status. Quando um processo est em execuo, o seu contexto de hardware est armazenado nos registradores do processador. No momento em que o processo perde a utilizao das CPU, o sistema salva as informaes no contexto de hardware do processo. A troca de um processo por outro no processador, comandada pelo sistema operacional, denominada de mudana de contexto. A mudana de contexto consiste em salvar o contedo dos registradores do processo que est deixando a CPU e carreg-los com os valores referentes ao novo processo que ser executado.

Figura 2: Mudana de contexto

3 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

2.2.

Contexto de Software No contexto de software so especificadas caractersticas e limites dos recursos que podem ser alocados pelo processo, como o nmero mximo de arquivos abertos simultaneamente, prioridade de execuo e tamanho do buffer para operaes de E/S. Muitas dessas caractersticas so determinadas no momento da criao do processo, enquanto outras podem ser alteradas durante sua existncia. A maior parte das informaes do contexto de software do processo so provenientes de um arquivo do sistema operacional, conhecido como arquivo de contas. Neste arquivo, gerenciado pelo administrador de sistema, so especificados os limites dos recursos que cada processo pode alocar. O contexto de software composto por trs grupos de informaes sobre o processo: identificao, quotas e privilgios. a. Identificao Cada processo criado pelo sistema recebe uma identificao nica (PID) representada por um numero. Atravs do PID, o sistema operacional e outros processos podem fazer referncia a qualquer processo existente, consultando seu contexto ou alterando uma de suas caractersticas. O processo tambm possui a identificao do usurio ou processo que o criou (UID), a qual permite implementar um modelo de segurana, onde apenas os objetos que possuem a mesma UID do usurio podem ser acessados. b. Quotas As quotas so os limites de cada recurso do sistema que um processo pode alocar. Caso a quota seja insuficiente, o processo poder executar lentamente ou mesmo no ser executado. Exemplos de quotas: nmero mximo de arquivos abertos simultaneamente; nmero mximo de operaes de E/S pendentes; tamanho mximo do buffer para operaes de E/S; tamanho mximo de memria principal e secundria que o processo pode alocar; nmero mximo de processos, subprocessos e threads que podem ser criados. c. Privilgios Os privilgios ou direitos definam as aes que um processo pode fazer em relao a ele mesmo, aos demais processos e ao sistema operacional.
4 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

Privilgios que afetam o prprio processo permitem que suas caractersticas possam ser alteradas, como prioridade de execuo, limites alocados na memria principal, etc. J os privilgios que afetam os demais processos permitem alterar as caractersticas de outros processos. Os privilgios que afetam o sistema esto relacionados operao e gerncia do ambiente, como a desativao do sistema, alterao de regras de segurana, criao de outros processos, entre outros. A maioria dos sistemas operacionais possui uma conta de acesso com todos estes privilgios disponveis, com o propsito de o administrador gerenciar o sistema operacional. No Unix existe a conta root, no Windows a conta administrator e no OpenVMS a conta system. 2.3. Espao de Endereamento O espao de endereamento a rea de memria pertencente ao processo onde as instrues e os dados do programa so armazenados para execuo. Cada processo possui seu prprio espao de endereamento, que deve ser protegido do acesso dos demais processos. 2.4. Bloco de Controle do Processo O processo implementado pelo sistema operacional atravs de uma estrutura de dados chamada bloco de controle do processo (Process Control Block PCB). A partir do PCB, o sistema operacional mantm todas as informaes sobre o contexto de hardware, contexto de software e espao de endereamento de cada processo.

Figura 3: Bloco de controle de processos (PCB) Os PCBs de todos os processos residem na memria principal em uma rea exclusiva dos sistemas operacionais.

5 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

Toda a gerncia de processo feita atravs de chamadas de sistema, que realizam operaes como criao, alterao de caractersticas, visualizao, eliminao, sincronizao de processos, dentre outras.

3. ESTADOS DO PROCESSO
Em um sistema multiprogramvel, um processo no deve alocar a CPU com exclusividade, de forma que possa existir um compartilhamento no uso do processador. Os processos passam por diferentes estados ao longo do seu processamento, em funo de eventos gerados pelo sistema operacional ou pelo prprio processo. Um processo pode encontrar-se em trs estados diferentes:

Execuo (running) Um processo dito no estado de execuo quando est sendo processado pela CPU. Os processos se alternam na utilizao do processador seguindo uma poltica estabelecida pelo sistema operacional. Pronto (ready) Um processo est no estado de pronto quando ele tem condies lgicas de executar e apenas aguarda para ser executado. O sistema operacional responsvel por determinar a ordem e os critrios pelos quais os processos em estado de pronto devem fazer uso do processador. Esse mecanismo conhecido como escalonamento. Em geral, existem vrios processos no sistema no estado de pronto organizados em listas encadeadas.

Espera (wait) Um processo no estado de espera aguarda por algum evento externo ou por algum recurso para prosseguir seu processamento, ou seja, ele no tem condies lgicas de executar. O sistema organiza os vrios processos no estado de espera tambm em listas encadeadas, associadas a cada tipo de evento.

4. MUDANAS DE ESTADO DO PROCESSO


Um processo muda de estado durante seu processamento em funo de eventos originados por ele prprio (eventos voluntrios) ou pelo sistema operacional (eventos involuntrios). Basicamente, existem quatro mudanas de estado que podem ocorrer a um processo:
6 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

Pronto Execuo Aps a criao de um processo, o sistema o coloca em uma lista de processos no estado de pronto, onde aguarda uma oportunidade para ser executado. Cada sistema operacional tem seus prprios critrios e algoritmos para a escolha da ordem em que os processos sero executados. Execuo Espera Um processo em execuo passa para o estado de espera por eventos gerados pelo prprio processo, como uma operao de E/S, ou por eventos externos (sistema operacional suspende por um perodo de tempo a execuo do processo). Espera Pronto Um processo no estado de espera passa para o estado pronto quando a operao solicitada atendida ou o recurso esperado concedido. Um processo em estado de espera sempre ter que passar pelo estado de pronto antes de poder ser novamente selecionado para execuo. Execuo Pronto Um processo em execuo passa para o estado de pronto por eventos gerados pelo sistema, como o trmino da fatia de tempo que o processador possui para sua execuo.

Figura 4: Mudanas de estado do processo Um processo em estado de pronto ou de espera pode no se encontrar na memria principal. Esta condio ocorre quando no existe espao suficiente para todos os processos na memria principal e parte do contexto do processo levada para a
7 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

memria secundria. Uma tcnica conhecida como swapping retira processos da memria principal e os traz de volta seguindo critrios de cada sistema operacional.

5. CRIAO E ELIMINAO DE PROCESSOS


Processos so criados e eliminados por motivos diversos. A criao de um processo ocorre a partir do momento em que o sistema operacional adiciona um novo PCB sua estrutura e aloca um espao de endereamento na memria para uso. A partir da criao do PCB, o sistema operacional j reconhece a existncia do processo, podendo gerenci-lo e associar programas ao seu contexto para serem executados. No caso da eliminao de um processo, todos os recursos associados ao processo so desalocados e o PCB eliminado pelo sistema operacional. Alm dos trs estados anteriores, a maioria dos sistemas operacionais estabelece dois estados adicionais para os momentos da criao e eliminao de processos.

Criao (new) Um processo dito no estado de criao quando o sistema operacional j criou um novo PCB, porm ainda no pode coloc-lo na lista de processos no estado de pronto. Alguns sistemas limitam o nmero de processos ativos em funo dos recursos disponveis ou do desempenho. A criao de processos pode ocorrer por diferentes razes, como:

logon interativo: um processo criado atravs do estabelecimento de uma sesso interativa por um usurio a partir de um terminal; criao por um outro processo: um processo j existente pode criar outros processos, sendo estes novos processos independentes ou subprocessos;

criao pelo sistema operacional: criados com o intuito de oferecer algum tipo de servio.

Terminado (exit) Um processo no estado de terminado no poder ter mais nenhum programa executado no seu contexto, porm o sistema operacional ainda mantm suas informaes de controle presentes em memria. Como o PCB ainda existe, o sistema operacional pode recuperar informaes sobre a contabilizao de uso de recursos do processo, como o tempo total gasto do processador. O trmino de processo pode ocorrer por razes como: trmino normal de execuo;
8 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

eliminao por um outro processo; eliminao forada por ausncia de recursos disponveis no sistema.

Figura 5: Mudanas de estado do processo

6. PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS


Processos independentes, subprocessos e threads so maneiras diferentes de implementar a concorrncia dentro de uma aplicao. Neste caso, busca-se subdividir o cdigo em partes para trabalharem de forma cooperativa. O uso de processos independentes a forma mais simples de implementar a concorrncia em sistemas multiprogramveis. Neste caso no existe vnculo do processo criado com o seu criador. A criao de um processo independente exige a alocao de um PCB. Subprocessos so processos criados dentro de uma estrutura hierrquica. Neste modelo, o processo criador chamado de processo pai enquanto o novo processo chamado de processo filho. Uma caracterstica desta implementao a dependncia existente entre o processo criador e o subprocesso. Caso um processo pai deixe de existir, os subprocessos subordinados so automaticamente eliminados. Os subprocessos tambm possuem seu prprio PCB. Outra caracterstica que os processos filhos podem compartilhar quotas com o processo pai. O uso de processos independentes e subprocessos demanda consumo de diversos recursos do sistema. Sempre que um novo processo criado, o sistema deve alocar recursos, consumindo tempo da CPU neste trabalho. Outro problema a

9 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

comunicao e sincronizao entre processos, considerada pouco eficiente, visto que cada processo possui seu prprio espao de endereamento.

Figura 6: Estrutura de processos e subprocessos O conceito de thread foi introduzido na tentativa de reduzir o tempo gasto na criao, eliminao e troca de contexto de processos nas aplicaes concorrentes, bem como economizar recursos do sistema como um todo. Em um ambiente multithread, um nico processo pode suportar mltiplos threads, cada qual associado a uma parte do cdigo da aplicao. Neste caso no necessrio haver diversos processos para a implementao da concorrncia.

Figura 7: Ambiente multithread


10 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

Cada thread possui seu prprio contexto de hardware, porm compartilha o mesmo contexto de software e espao de endereamento com os demais threads do processo. O compartilhamento do espao de endereamento permite que a comunicao de threads dentro de um mesmo processo seja realizada de forma simples e rpida.

7. PROCESSOS FOREGROUND E BACKGROUND


Um processo possui sempre associado sua estrutura pelo menos dois canais de comunicao por onde so realizadas todas as entradas e sadas de dados ao longo do seu processamento. Os canais de entrada (input) e de sada (output) de dados podem estar associados a terminais, arquivos, impressoras e outros processos. Um processo foreground aquele que permite a comunicao direta do usurio com o processo durante seu processamento. Neste caso, tanto o canal de entrada quanto o de sada esto associados a um terminal com teclado, mouse e monitor, permitindo a interao com o usurio. Um processo background aquele onde no existe a comunicao com o usurio durante seu processamento. Neste caso, os canais de E/S no esto associados a nenhum dispositivo, mas em geral a arquivos de E/S.

Figura 8: Processos foreground e background possvel associar o canal de sada de um processo ao canal de entrada de um outro processo. Neste caso dizemos que existe um pipe ligando os dois processos.
11 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

Figura 9: Pipe

8. PROCESSOS DO SISTEMA OPERACIONAL


O conceito de processo, alm de estar associado a aplicaes de usurios, pode tambm ser implementado na prpria arquitetura do sistema operacional, conforme visto nos sistemas com arquitetura microkernel. Quando processos so utilizados para a implementao de servios do sistema, estamos retirando cdigo de seu ncleo, tornando-o menor e mais estvel. A seguir, listamos alguns servios que o sistema operacional pode implementar atravs de processos: auditoria e segurana; servios de rede; contabilizao do uso de recursos; contabilizao de erros; gerncia de impresso; gerncia de jobs batch; temporizao; comunicao de eventos; interface de comandos (shell).

9. PROCESSOS CPU-BOUND E I/O-BOUND


Os processos podem ser classificados como CPU-bound ou I/O-bound, de acordo com a utilizao do processador e dos dispositivos de E/S.
12 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

Um processo definido como CPU-bound (ligado CPU) quando passa a maior parte do tempo no estado de execuo, ou seja, utilizando o processador. Esse tipo de processo realiza poucas operaes de leitura e gravao e encontrado em aplicaes cientficas que efetuam muitos clculos.

E/S CPU

tempo

Um processo classificado como I/O-bound (ligado E/S) quando passa a maior parte do tempo no estado de espera, pois realiza um elevado nmero de operaes de E/S. Esse tipo de processo encontrado em aplicaes comerciais, que se baseiam em leitura, processamento e gravao.

E/S CPU

tempo

10. SINAIS
Sinais so um mecanismo que permite notificar processos de eventos gerados pelo sistema operacional ou por outros processos. O uso de sinais fundamental para a gerncia de processos, alm de possibilitar a comunicao e sincronizao entre processos.

13 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

Figura 10: Uso de sinais Sinais podem ser utilizados em conjunto com temporizadores no intuito de sinalizar ao processo algum evento associado ao tempo. A gerao de um sinal ocorre quando o sistema operacional, a partir da ocorrncia de eventos sncronos ou assncronos, notifica o processo atravs de bits de sinalizao localizados no seu PCB. Um processo no responde instantaneamente a um sinal. Os sinais ficam pendentes at que o processo seja escalonado, quando ento sero tratados. O tratamento de um sinal muito semelhante ao mecanismo de interrupes. possvel tambm que um processo bloqueie temporariamente ou ignore por completo alguns sinais. O sinal est para o processo assim como as interrupes e excees esto para o sistema operacional.

11. BIBLIOGRAFIA
MACHADO, F. B., MAIA, L. P., Arquitetura de Sistemas Operacionais, 3a edio, Ed. LTC, 2002, Rio de Janeiro. TANENBAUM, A., Sistemas Operacionais Modernos, 5a edio, Ed. Makron Books, 1999, Rio de Janeiro.

14 de 15

SISTEMAS OPERACIONAIS NOTAS DE AULA

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


Defina o conceito de processo. Por que o conceito de processo to importante no projeto de sistemas multiprogramveis? possvel que um programa execute no contexto de um processo e no execute no contexto de um outro? Por qu? Quais partes compem um processo? O que contexto de hardware de um processo e como a implementao da troca de contexto? Qual a funo do contexto de software? Exemplifique cada grupo de informao. O que o espao de endereamento de um processo? Como o sistema operacional implementa o conceito de processos? Qual a estrutura de dados indicada para organizar os diversos processos na memria principal?

9. 10. 11. 12. 13. 14. 15. 16.

Defina os cinco estados possveis de um processo. D um exemplo que apresente todas as mudanas de estado de um processo, juntamente com o evento associado a cada mudana. Diferencie processos multithreads, subprocessos e processos independentes. Explique a diferena entre processos foreground e background. Qual a relao entre o processo e a arquitetura microkernel? D exemplos de aplicaes CPU-bound e I/O-bound. Justifique com um exemplo a frase o sinal est para o processo assim como as interrupes esto para o sistema operacional. Explique como a eliminao de um processo utiliza o mecanismo de sinais.

15 de 15