Академический Документы
Профессиональный Документы
Культура Документы
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
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
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.
3 de 15
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
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
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.
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
memria secundria. Uma tcnica conhecida como swapping retira processos da memria principal e os traz de volta seguindo critrios de cada sistema operacional.
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
eliminao por um outro processo; eliminao forada por ausncia de recursos disponveis no sistema.
9 de 15
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.
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.
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
Figura 9: Pipe
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
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
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