Você está na página 1de 6

Processo (informtica)

Origem: Wikipdia, a enciclopdia livre.

Processo , no contexto da informtica , um programa de computador em execuo.

Em sistemas operacionais, processo um mdulo executvel nico, que corre concorrentemente com outros
mdulos executveis. Por exemplo, em um ambiente multi-tarefa (como o Unix) que suporta processos, um
processador de texto, um navegador e um sistema de banco de dados so processos separados que podem rodar
concomitantemente. Processos so mdulos separados e carregveis, ao contrrio de threads, que no podem
ser carregadas. Mltiplas threads de execuo podem ocorrer dentro de um mesmo processo. Alm das threads,
o processo tambm inclui certos recursos, como arquivos e alocaes dinmicas de memria e espaos de
endereamento.

A comunicao entre processos o grupo de mecanismos que permite aos processos transferirem informao
entre si. A capacidade de um sistema operacional executar simultaneamente dois ou mais processos chamada
multiprocessamento. Se existirem dois ou mais processos executados em simultneo e disputam o acesso a
recursos partilhados, problemas da concorrncia podem ocorrer. Estes problemas podem ser resolvidos pelo
gerenciamento adequado de mltiplas linhas de execuo ou processos atravs da sincronizao (multitarefa)
ou por outros recursos (como a troca de contexto).

A execuo de um processo ocorre de maneira sequencial, ou seja, uma instruo aps a outra. A qualquer
instante, apenas uma instruo de um determinado processo executada. Os processos tambm exercem a
atividade de executar operaes concorrentes mesmo que possua apenas uma Unidade Central de
Processamento disponvel.

Embora dois processos possam estar associados a um mesmo programa, so considerados duas sequncias de
execuo distintas. Por exemplo, cpias de um programa de correio eletrnico podem estar sendo executadas
por vrios usurios ou o mesmo usurio pode estar usando diversas cpias de um processador de texto. Cada
um desses programas em execuo constitui um processo distinto e, por mais que o texto de alguns programas
possa ser o mesmo, o estado de cada um ser diferente. comum ter um processo que crie muitos processos
durante sua execuo, criando uma hierarquia entre processos pais e filhos.

ndice
1 Tipos de Processo
2 Representao
3 Memria compartilhada
3.1 Vantagens
3.2 Interface padronizada
4 Hierarquia de processos
5 Estados de processos
5.1 No-Submetido
5.2 Suspenso
5.3 Pronto
5.4 Executando
5.5 Espera
5.6 Completo
6 Criao de Processos
7 Trmino de Processos
8 Bloco de Controle de Processo (BCP)
9 Localizao dos processos
10 Estados do processo em Linux
10.1 Alguns comandos que podem ser utilizados
11 Fork no Unix
12 Referncias
13 Ver tambm

Tipos de Processo
Dentre os processos, podemos destacar dois principais tipos que esto relacionados a seu local de execuo, no
caso CPU e Entrada e Sada de dados.

Processos CPU bound (orientados CPU): so processos que utilizam muito o processador, em que o
tempo de execuo definido pelos ciclos de processador.
Processos I/O bound (orientados E/S): so processos que realizam muitas operaes de entrada e sada
de dados, em que o tempo de execuo definido pela durao destas.
IDEAL: existir um balanceamento entre processos CPU-bound e I/O-bound;

Representao
Em geral, processos de sistemas computacionais so formados pelos seguintes recursos:

Uma imagem do cdigo de mquina executvel associado com um programa.


Memria, que inclui o cdigo executvel, dados especficos do processo (dados da entra e sada), uma
chamada de pilha (para manter a pilha de subrotinas ativas e/ou outros eventos) e um heap (alocao
dinmica de memria) para manter a computao intermediria gerada durante o tempo de execuo.
Descritores de sistema operacional que so alocados aos processo, como os descritores de arquivo do
(segundo a terminologia UNIX) ou handles (usado no Windows) e os cdigos e sinks.
Atributos de segurana, tais como conjunto de permisses para o usurio que criou o processo, so as
operaes permitidas.
Contexto de estado do processador, tal como o contedo dos registradores, memria fsica de
endereamento. O estado normalmente guardado nos registradores quando o processo est em
execuo, e na memria principal caso contrrio.

O sistema operacional mantm a maior parte da informao sobre processos dentro de estruturas de dados
chamadas Bloco de controle de processos

Qualquer subconjunto de recursos, mas normalmente ao menos o estado do processador, pode ser associado
com cada um dos processos threads no sistema operacional, que suporte threads ou processos 'filho'.

O sistema operacional mantm esses processos separados e aloca recursos necessrios para cada um deles,
diminuindo as chances de um processo atrapalhar o outro (e.g., deadlock). O sistema operacional pode alm
disso prover mecanismos para comunicao entre processos, permitindo assim interao e comportamento mais
seguro entre os processos.

Memria compartilhada
Vantagens

Melhora o desempenho de processos que acessam frequentemente dados compartilhados.


Os processos podem compartilhar a mesma quantidade de dados que podem enderear.

Interface padronizada
Memria compartilhada System V
Memria compartilhada POSIX
No permite que os processos mudem privilgios de um segmento de memria compartilhada.

Hierarquia de processos
Em alguns sistemas, quando um processo cria outro, o processo pai e o processo filho continuam, de certa
forma, associados. Os processo filhos pode criar mais processos, formando assim uma hierarquia de processos,
porm nela apenas existir um processo pai e ter ou no um ou mais processos filhos.

Este tipo de organizao dificulta a propagao de vrus em nossos sistemas operacionais, pois quando um
processo pai morto seja pelo sistema ou pelo prprio usurio, todos que estiverem abaixo dele na hierarquia
sero mortos tambm.

No UNIX, um processo, todos os seus filhos e descendentes formam um grupo de processos. Exemplos da
atuao de hierarquia ocorre quando h envio de sinal do teclado, onde o sinal entregue a todos os processos
associados ao teclado. Individualmente, cada processo pode capturar o sinal, ignor-lo ou tomar a ao
predefinida, isto , ser finalizado pelo sinal. Alm disso, os processos filhos no podem ser deserdados do
processo pai.

Por outro lado, o Windows no apresenta esse conceito de hierarquia, nele todos os processos so iguais. Algo
parecido com uma hierarquia ocorre somente quando um processo criado. Ao pai dado um identificador
especial, que ele pode usar para controlar o filho. Contudo, ele livre para passar o identificador para alguns
outros processos, invalidando, assim, a hierarquia.

Estados de processos
No-Submetido

o processo que ainda no


est submetido a CPU, est
nas mos do usurio." At
onde interessa ao sistemas ele
no existe, porque o usurio
ainda no o submeteu. Ele
simplesmente apresentado
como sendo o primeiro passo
na vida de um processo. O
Sistema Operacional, Estados possveis para um processo, e seus relacionamentos entre si.
naturalmente, no reconhece
esse estado.[1]". Pode por exemplo, ser um arquivo executvel que est armazenado no HD.

Suspenso

o processo que j foi submetido, porm permanece suspenso at que o horrio ou evento programado ao
usurio venha acontecer. Processo suspenso aquele que esta no aguarde de uma entrada de dados.

Pronto

O processo j foi submetido e est pronto para receber a CPU, porm ainda aguarda o escalonador de processos
para ter controle da CPU. Processos que esto esperando E/S no se aplicam a esse estado.

Executando
A execuo propriamente dita. O cdigo est sendo processado. Se ocorrer durante a execuo uma requisio
de E/S o processo colocado no estado de espera e outro processo da fila de prontos poder ento concorrer a
CPU.

Espera

o processo que foi colocado na fila de espera de E/S devido ao processador de E/S ser mais lento que a CPU
principal. O processo tornaria a CPU mais escrava dele se no houvesse esse estado, pois como ele no est
concorrendo CPU ao executar um E/S, pode-se ento coloc-lo no estado de espera para que os demais
processos do estado pronto possam concorrer a CPU.

Ex: parte de um cdigo em C

scanf(%d, &VALOR);
SOMA=VALOR+JUROS;

Como podemos notar, a instruo scanf (uma requisio de entrada e sada) gerada se no fosse possvel
colocar o processo em estado de espera; caso o usurio no entrasse com nenhum valor, o programa ficaria
suspenso e no liberaria a CPU para outros processos.

Completo

Neste estado temos a finalizao do processo.

Criao de Processos
H vrias razes para o incio de um processo, os principais so:

Inicio do sistema;

Solicitao de chamada de execuo ao sistema de criao de processo;

Solicitao do usurio;

Incio de um job em lote.


Quando se cria um processo, o sistema operacional realiza os seguintes passos:
Atribui um identificador nico ao processo. Cria-se o BCP, mas s se preenche o campo do identificador.
Atribui memria ao processo.
Inicializa o BCP.
Inserir o processo na lista de processos que corresponda. Por exemplo na lista de processos prontos.
Outras operaes, como atualizar todas as estruturas de controle que mantenha o sistema operacional.

Trmino de Processos
Os processos podem terminar de forma voluntria e involuntria. Aqui esto alguns exemplos de motivos para
os processos cessarem sua execuo e sua forma:

Sada normal: A tarefa anteriormente solicitada j terminou sua execuo (sada voluntria);

Sada por erro: O arquivo no encontrado (sada voluntria);

Erro fatal: efeituado uma diviso por 0 (sada involuntria);

Cancelamento por um outro processo: kill, TerminateProcess (sada involuntria).


Bloco de Controle de Processo (BCP)
BCP a estrutura de dados que contm a informao a cerca de um processo se denomina bloco de controle de
processos (BCP)

A manifestao de um processo em um sistema operacional um BCP. Um BCP a representao de um


processo durante sua execuo. Um BCP criado quando se cria seu processo associado. O conjunto de BCPs
representa o estado do sistema. So acedidos e mantidos por rotinas do sistema operacional.

Elementos do BCP

Informaes importantes para o controle


identificao do processo, estado em que ele se encontra, prioridade.
registradores,r status
ponteiros: pilha, cdigo e dados
tempos: incio, de CPU, alarmes, dos filhos
diretrios: raiz, trabalho
descritores de arquivos

O BCP permite ao sistema operacional localizar toda a informao dos processos. O conjunto de BCP forma as
tabelas de processos. O vo do processo usa-se como ndice nas tabelas dos processos.

Localizao dos processos


Processos ficam em estruturas que os classificam conforme seu estado. Processos Prontos serem
escalonados para a execuo ficam na lista/fila de prontos.

Estados do processo em Linux


O linux trabalha com 4 estados de processo.

Executvel: O processo pode ser executado imediatamente.


Dormente: Precisa aguardar algo para ser executado.
Parado: No pode ser executado.
Zumbi: O processo considerado "morto", mas ainda existe.

Alguns comandos que podem ser utilizados

Ps - Pelo comando ps possvel saber quais os processos em execuo atualmente, quais os PIDs
correspondentes e outros.
Kill - O comando Kill tem a funo de "matar" um processo, e usado em momentos crticos.
Jobs - Este comando visualiza os processos que esto parados ou executando em segundo plano.
Bg - Coloca a ltima tarefa que estiver em segundo plano em execuo.

Fork no Unix
O fork no Unix cria um processo filho, que diferencia-se a partir do processo pai somente em suas PID e PPID.
O fork consome tempo e memria requerida para duplicar as tabelas do processo pai. Se funcionar, a PID do
processo filho devolvido para o pai e retorna-se um 0 para o filho. Caso contrrio, um -1 retornado no
contexto pai, e no se cria o processo filho.

Referncias
1. William Shay , "Sistemas Operacionais"(1996), So Paulo:Makron Books
Sistemas Operacionais Modernos, ISBN 0-13-031358-0

Ver tambm
Processo zombie
Sistema operacional

Obtida de "https://pt.wikipedia.org/w/index.php?title=Processo_(informtica)&oldid=48184362"

Categorias: Computao concorrente Tecnologia dos sistemas operacionais

Esta pgina foi modificada pela ltima vez (s) 20h45min de 5 de maro de 2017.
Este texto disponibilizado nos termos da licena Creative Commons - Atribuio - Compartilha Igual
3.0 No Adaptada (CC BY-SA 3.0); pode estar sujeito a condies adicionais. Para mais detalhes,
consulte as condies de uso.