Vous êtes sur la page 1sur 11

SISTEMAS OPERACIONAIS

Notas de Aula: Processos

Notas de Aula Sistemas Operacionais 1.0 - DEFINIO DE PROCESSOS O conceito de processo surgiu nos anos 60, sendo a base da multiprogramao e dos sistemas de tempo compartilhado (time-sharing). O processo pode ser entendido como um programa em execuo, s que seu conceito mais abrangente. Este conceito torna-se mais claro quando pensamos de que forma os sistemas multiprogramveis (multitarefa) atendem os diversos usurios (tarefas) e mantm informaes a respeito dos vrios programas que esto sendo executados concorrentemente. Como sabemos, um sistema multiprogramvel simula um ambiente de monoprogramao para cada usurio, isto , cada usurio do sistema tem a impresso de possuir o processador exclusivamente para ele. Nesses sistemas, o processador executa a tarefa de um usurio durante um intervalo de tempo (time-slice) e, no instante seguinte, est processando outra tarefa. A cada troca, necessrio que o sistema preserve todas as informaes da tarefa que foi interrompida, para quando voltar a ser executada no lhe faltar nenhuma informao para a continuao do processamento. A estrutura responsvel pela manuteno de todas as informaes necessrias execuo de um programa, como contedo de registradores e espao de memria, chama-se processo. O conceito de processo pode ser definido como sendo o ambiente onde se executa um programa. Um mesmo programa pode produzir resultados diferentes, em funo do processo no qual ele executado. Por exemplo, se um programa necessitar abrir cinco arquivos simultaneamente, e o processo onde ser executado s permite que se abram quatro, o programa ser interrompido durante a sua execuo. Nenhum programa executado diretamente na memria e sim dentro de um processo. Se no fosse isto, o programa poderia fazer uso indiscriminado de qualquer rea de memria inclusive areas protegidas ou ento efetuando operaes de I/O indiscriminadamente em qualquer rea aleatria do disco, provocando o maior balaio de gato no computador e comprometendo a integridade e a consistncia dos dados. Da conclui-se que atravs do processo que o sistema operacional controla a execuo, as permisses e as restries que o programa ter quando estiver sendo executado, bem como os recursos que estaro e quando estaro disponveis ele. O processo pode ser dividido em trs elementos bsicos: contexto de hardware, contexto de software e espao de endereamento, que juntos mantm todas as informaes necessrias execuo do programa (Fig. 1).

Notas de Aula Sistemas Operacionais Contexto de hardware constitui-se, basicamente, no contedo de registradores: program counter (PC), stack pointer (SP) e bits de estado. Quando um processo est em execuo, o contexto de hardware est armazenado nos registradores do processador. No momento em que o processo perde a utilizao da UCP, o sistema salva suas informaes. Contexto de software especifica caractersticas do processo que vo influir na execuo de um programa, como, por exemplo, o nmero mximo de arquivos abertos simultaneamente ou o tamanho do buffer para operaes de E/S. Essas caractersticas so determinadas no momento da criao do processo, mas algumas podem ser alteradas durante sua existncia. O contexto de software define basicamente trs grupos de informaes de um processo: sua identificao, suas quotas e seus privilgios. Espao de endereamento a rea de memria do processo onde o programa ser executado, alm do espao para os dados utilizados por ele. Cada processo possui seu prprio espao de endereamento, que deve ser protegido do acesso dos demais processos.

Figura 1 Estrutura de um Processo

1.1 - Criando Processos - Processos podem ser: Processos especficos de usurios Processos com funes especficas que independem de usurios daemons: Recepo e envio de emails;

Notas de Aula Sistemas Operacionais Servios de Impresso. - No Unix/Linux: Fork - No Windows: CreateProcess

1.2 - Finalizando Processos Trmino normal (voluntrio): a) A tarefa a ser executada finalizada. b) Chamadas: exit (UNIX/Linux) e ExitProcess (Windows). Trmino com erro (voluntrio): a) O processo sendo executado no pode ser finalizado: exemplo: parmetro incorreto. Trmino com erro fatal (involuntrio) a) Erro causado por algum bug no programa. Ex: Diviso por 0 (zero). Trmino causado por algum outro processo (involuntrio): a) Kill (UNIX/Linux) e TerminateProcess (Windows).

1.3 - Implementao de Processos Tabela de Processos (Process Table): guarda a lista de processos; Cada processo possui uma entrada nessa tabela com as seguintes informaes: Estado do processo; Contador de programas; Pilha de execuo; Alocao de memria; Arquivos; Etc... Essas informaes so importantes para a troca de processos que ocorre na CPU;

1.4 - Estrutura do Processo Para que seja possvel trocar processos, necessrio que todas as informaes do processo interrompido sejam guardadas para que depois possa ser reconstrudo o contexto.

Notas de Aula Sistemas Operacionais Um processo possui o contexto de software, de harware e o espao de armazenamento. Juntas estas informaes contm todos os detalhes necessrios para a execuo do programa.

1.4.1 Contexto de Hardware O contexto de hardware armazena o contedo dos registradores da CPU. No momento que o processo est em execuo, seu contexto de hardware est armazenado nos registradores da CPU. No momento em que o processo perde a utilizao da CPU, o sistema salva as informaes em seu contexto de hardware.

1.4.2 Contexto de Software No Contexto de Software so especificadas as caractersticas e limites dos recursos que podem ser alocados pelo processo, como o nmero mximo de arquivos abertos simultaneamente, prioridade e tamanho do buffer. Algumas caractersticas so especificadas na criao do processo, e outras so alteradas durante sua existncia. Estas informaes normalmente so configuradas pelo administrador do sistema operacional, e ficam localizadas no arquivo de contas do S.O. O contexto de software possui algumas partes, tais como estas: 1 - Identificao cada processo recebe uma identificao nica o PID (Process Identification) representado por um nmero Atravs do PID o sistema operacional ou outros processos podem fazer referncia ao processo; Alguns sistemas operacionais tambm guardam o nome do processo como parte de sua identificao; O processo tambm possui a identificao do usurio que o criou, que por sua vez identificado no sistema atravs de um nmero nico (UID user identification). Atravs desta identificao pode-se implementar polticas de segurana, fazendo com que, por exemplo, um processo de um usurio s tenha acesso ao arquivos e recursos que o usurio tem acesso. 2 - Cota so os limites de recursos que o processo pode alocar. Cotas que normalmente podem ser configuradas:

Notas de Aula Sistemas Operacionais - nmero mximo de arquivos abertos simultaneamente; - tamanho mximo da memria principal e secundria que o processo pode alocar; - nmero mximo de operaes de E/S pendentes; - tamanho do buffer para operaes de E/S; - nmero mximo de sub-processos e threads que podem ser criados.

1.4.3 Espao de Endereamento O espao de endereamento a rea de memria pertencente ao processo, onde esto armazenados as instrues e os dados.

Figura 2 Bloco de Controle do Processo

Notas de Aula Sistemas Operacionais 2.0 - ESTADOS DE UM PROCESSO - EXECUO (RUNNING): Quando um processo est sendo processado pela CPU. Tais processos se revezam na execuo. - PRONTO (READY): Quando um processo aguarda que o sistema operacional aloque a CPU para sua execuo. - ESPERA (WAIT): Quando um processo est aguardando algum evento externo para prosseguir com o processamento.

Os processos mudam de estado por eventos gerados por eles prprios ou pelo sistema operacional.

Figura 3 Criao e Eliminao de Processo

Notas de Aula Sistemas Operacionais

2.1 - Criao e Eliminao Alguns S.O. limitam o nmero de processos ativos. Desta forma, o processo, mesmo com o PCB criado, permanece no estado de Criao. O processo permanece no estado de trmino apenas o tempo necessrio para o S.O. colher as informaes necessrias para eventuais estatsticas de uso.

Quando um processo passa a maior parte do tempo no estado de execuo, a este chamamos de CPU-BOUND. Este tipo de processo muito comum em aplicaes matemticas, cientficas e grficas por efetuarem muitos clculos. Quando o processo passa a maior parte do tempo em estado de espera e realizando muitas operaes de I/O (Entrada/Sada), a este chamamos de I/O-BOUND. o processo mais comum em aplicaes comerciais.

Figura 4 Processos CPU-Bound x I/O-Bound

Notas de Aula Sistemas Operacionais 3.0 - PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS O uso de processo independentes, subprocesso ou threads so maneiras diferentes de implementar a concorrncia numa aplicao. O uso de processos independentes a maneira mais simples de implementar a concorrncia. Neste caso, no existe vnculo entre o processo criado com o seu criador. O processo criado tem um PCB prprio. Subprocessos so processos criados numa estrutura hierrquica. O processo criador chamado de processo pai, enquanto o novo processo chamado de subprocesso ou processo filho. Caso o processo pai deixe de existir, o subprocesso automaticamente eliminado. O subprocesso tambm tem seu prprio PCB.

3.1 - Problemas do Uso de Processos Independentes ou Subprocessos O uso de processos independentes ou de subprocessos demanda consumo de recursos do sistema (alocao do contexto de hardware, de software e do espao de endereamento) e exige tempo da CPU para este processo. No trmino dos processos, tambm h um overhead para desalocar os recursos. Outro problema na comunicao entre processos, visto que o espao de endereamento so diferentes para os processos.

3.2 - Processos Foreground e Background A entrada e a sada de um processo podem estar associadas a terminais, arquivos, impressoras ou at mesmo a outros processos. => Processo foregroung aquele que se comunica com o usurio durante o seu processamento. => Processo background no tem interao com o usurio.

Notas de Aula Sistemas Operacionais

Figura 5 Processos Foreground x Processos Background

Figura 6 Pipe de Processos

10

Notas de Aula Sistemas Operacionais QUESTES PARA ESTUDO

1 O que so processos ?

2 Quais as partes que compem um processo ? Defina cada uma delas.

3 Em quais situaes os processos podem ser criados e/ou finalizados ?

4 O que o PCB ?

5 Quais os estados que geralmente um processo pode assumir em um S.O. ? Explique qual o significado de cada um destes estados.

6 Diferencie Processos CPU-Bound e Processos I/O-Bound.

7 O que so Processos Independentes ? Para que servem ? H desvantagem(ens) em utiliz-lo ? Qual (ais) ?

8 Diferencie Processos Foreground e Processos Background.

11

Vous aimerez peut-être aussi