Você está na página 1de 8

PARTE V - PROCESSOS E THREADS

CAPÍTULO V – PROCESSO

5.0 INTRODUÇÃO

• O processo é a base para a implementação de sistemas multiprogramáveis;

• A gerência de um sistema multiprogramável é uma função exclusiva do sistema


operacional, que deve controlar os diversos programas e o uso concorrente do
processador;

• Um programa deve estar SEMPRE associado a um processo;

• A gerência de processos é uma das principais funções do sistema operacional;

• Através do processo o programa pode alocar recursos, compartilhar dados, trocar


informações e sincronizar sua execução.

5.1 ESTRUTURA DO PROCESSO

• Um processo pode ser definido como o ambiente onde um programa é executado.


Este ambiente, além das informações sobre execução, possui também o quanto de
recursos do sistema cada processo pode utilizar, como o espaço de endereçamento,
tempo do processador e área em disco;

• Um processo é formado por três partes conhecidas como Contexto de Hardware,


Contexto de Software e Espaço de endereçamento.

5.2.1 CONTEXTO DE HARDWARE

• Armazena o conteúdo dos registradores gerais da UCP, além dos registradores de uso
específico, como o Program Counter ( PC ), Stack Pointer ( SP ) e o registrador de
status.

• Enquanto um processo está em execução, seu contexto de hardware está armazenado


nos registradores da UCP. No momento em que o processo perde o uso da UCP, o
sistema salva as informações no contexto de hardware do processo;

• A troca de um processo por outro no processador, comandada pelo sistema


operacional, é denominada mudança de contexto;

• A mudança de contexto consiste em salvar o conteúdo dos registradores do processo


que está deixando a UCP e carregá-los com os valores referentes ao do novo processo
que será executado;

5.2.2 CONTEXTO DE SOFTWARE


• São especificadas características e limites dos recursos que podem ser alocados pelo
processo, como o número máximo de arquivos abertos simultaneamente, prioridade
de execução e tamanho do buffer para operações E/S.

• O arquivo de contas é um arquivo do sistema operacional de onde provém a maior


parte das informações de contexto, como os limites dos recursos que cada processo
pode alocar;

• O arquivo do contexto de software é composto por três grupos de informações sobre


o processo: identificação, quotas e privilégios.

5.2.2.1 IDENTIFICAÇÃO

• Cada processo criada pelo sistema recebe uma identificação única ( PID –
Process Identification ).

• Através do PID, o sistema operacional e outros processos podem fazer


referência a qualquer processo;

• O processo possui a identificação do usuário que o criou ( owner );

• Cada usuário possui uma identificação única no sistema ( UID ), atribuída no


momento de sua criação;

• Segurança de Usuário: implementada através do UID, cada usuário tem acesso


apenas aos seus processos.

5.2.2.2 QUOTAS

• São os limites dos recursos do sistema que cada processo pode alocar.

• Exemplos de cotas:

o Número máximo de arquivos abertos simultaneamente;

o Tamanho máximo da memória principal e secundária que o


processo pode alocar;

o Número máximo de operações E/S que o processo pode


deixar pendentes;

o Tamanho máximo do buffer para operações E/S;

o Número máximo de processos, subprocessos e threads que


podem ser criados;

5.2.2.3 PRIVILÉGIOS
• Define quais ações que um processo pode fazer em relação a ele mesmo, a
outros processos e ao sistema operacional.

5.2.3 ESPAÇO DE ENDEREÇAMENTO

• É a área de memória pertencente ao processo onde as instruções e os


dados do programa são armazenados para execução;

• Cada processo possui o seu próprio espaço de endereçamento que deve


ser devidamente protegido do acesso dos demais processos;

5.2.3 BLOCO DE CONTROLE DO PROCESSO ( PCB )

• O processo é implementado pelo sistema operacional através de uma


estrutura de dados denominada bloco de controle do processo ( PCB –
Process Control Block ).

• A partir do PCB, o sistema operacional mantém todas as informações


sobre o contexto de hardware, contexto de software e espaço de
endereçamento de cada processo.

• Os PCB’s de todos os processos residem na memória principal, em uma


área exclusiva do sistema operacional;

• O tamanho dessa área equivale ao número máximo de processos que


podem ser executados pelo sistema, simultaneamente.

• Toda a gerência de processos é realizada através de System Calls.

5.3 ESTADOS DO PROCESSO

• Em sistemas multiprogramáveis, um processo não pode alocar a UCP com


exclusividade;

• Os processos passam por diferentes estados ao longo do seu processamento em


função de eventos gerados pelo sistema operacional ou pelo próprio processo;

5.3.1 EXECUÇÃO ( RUNNING )

• Um processo é dito em execução quando está sendo processo pela UCP;

• Há apenas um processo em execução a cada instante em sistemas com uma


UCP;

5.3.2 PRONTO ( READY )

• É um processo que aguarda para ser executado;


• O sistema operacional escalona os processos escolhendo qual em estado
pronto será processado pela UCP;

• Processos são agrupados em listas encadeadas e recebem prioridades de


execução.

5.3.3 ESPERA ( WAIT )

• Aguarda por algum evento externo ou por algum recurso para prosseguir seu
processamento;

• O estado de espera, em alguns sistemas operacionais, é chamado


“bloqueado”;

• São organizados em listas encadeadas associadas a cada tipo de evento;

5.4 MUDANÇAS DE ESTADO DO PROCESSO

• Um processo muda de estado durante seu processamento em função de eventos


originados por ele próprio ( eventos voluntários ) ou pelo sistema operacional
( eventos involuntários ). Basicamente, existem quatro mudanças de estado que
podem ocorrer a um processo, listadas a seguir.

5.4.1 DE PRONTO PARA EXECUÇÃO

o Após a criação de um processo, o sistema o coloca em uma lista de processos


no estado pronto, onde aguarda por uma oportunidade para ser executado;

o O escalonamento de processos é implementado diferentemente por cada


sistema operacional;

5.4.2 DE EXECUÇÃO PARA ESPERA

o Um processo passa do estado de execução para o estado de espera em função


de eventos gerados por ele mesmo ou por eventos externos;

5.4.3 DE ESPERA PARA PRONTO

o Um processo passa do estado de espera para o estado de pronto quando a


operação solicitada é atendida ou o recurso esperado é concedido.

o Um processo no estado de espera terá sempre de passar pelo estado de


pronto antes de ser novamente selecionado para execução.
5.4.4 DE EXECUÇÃO PARA PRONTO

o Um processo em execução passa para o estado de pronto por eventos gerados


pelo sistema, como o término da fatia de tempo que o processo possui para
execução.

Não necessariamente um processo em estado de espera ou de pronto se encontra na memória


principal. Caso não haja espaço, o processo pode ser movido à memória secundária, onde
aguardará até o momento de ser novamente processado.

5.5 CRIAÇÃO E ELIMINAÇÃO DE PROCESSOS

• Processos são criados e eliminados por motivos diversos;

• A criação de um processo ocorre quando o sistema operacional adiciona um novo


PCB à sua estrutura e aloca um espaço de endereçamento na memória para seu uso.

• No caso da eliminação de um processo, todos os recursos associados ao processo são


desalocados e o PCB eliminado pelo sistema operacional;

Além dos três estados apresentados anteriormente, a maioria dos sistemas


operacionais implementa dois estados adicionais referentes à criação e à eliminação
de processos.

5.5.1 CRIAÇÃO ( NEW )

• Um processo é dito no estado de criação quando o sistema operacional já


criou o PCB, porém ainda não pode colocá-lo na lista de processos em estado
de pronto;

• Alguns sistemas operacionais limitam o uso de processos ativos em função dos


recursos disponíveis ou do desempenho;

Processos são criados por diferentes razões, algumas delas a seguir:

• Logon interativo: estabelecimento de uma sessão interativa do


usuário através de um terminal;

• Criação por um outro processo: um processo que já existe pode


criar outros processos, sendo estes novos processos
independentes ou subprocessos;
• Criação pelo sistema operacional: O SO pode criar novos
processos a fim de oferecer algum tipo de serviço;

5.5.2 TERMINADO ( EXIT )

• Um processo no estado de terminado não poderá ter nenhum programa executado


no seu contexto;

• O sistema operacional ainda mantém suas informações de controle presentes na


memória;

• Apesar de o PCB ainda existir, o processo não é mais considerado ativo.

• O término do processo pode ocorrer por razões como:

o Término normal de execução;

o Eliminação por outro processo;

o Eliminação forçada por ausência de recursos do sistema.

5.6 PROCESSOS INDEPENDENTES, SUBPROCESSOS E THREADS

• São maneiras de implementar a concorrência dentro de uma aplicação;

5.6.1 PROCESSOS INDEPENDENTES

o Maneira simples de implementar a concorrência em sistemas


multiprogramáveis;

o Não há vínculo entre o processo criado e o criador;

o Exige a alocação de um PCB, com todo seu contexto próprio.

5.6.2 SUBPROCESSOS

o São processos criados dentro de uma estrutura hierárquica;

o Há dependência entre o processo criador e o subprocesso. Caso o processo


pai deixe de existir, todos seus subprocessos são eliminados.;

o Subprocessos possuem seu próprio PCB;

o Subprocessos podem compartilhar quotas com o processo pai. Quando o


subprocesso é criado, o processo pai cede parte de suas cotas ao processo
filho.

O uso de processos e subprocessos demanda consumo excessivo de diversos


recursos do sistema, tanto na alocação quanto na desalocação de processos.
Outro problema é a comunicação e a sincronização entre processos, considerada
pouco eficiente, visto que cada processo possui o seu próprio espaço de
endereçamento.

5.6.3 THREADS

o Foi introduzida na tentativa de reduzir o tempo gasto na criação, eliminação e


troca de contexto de processos nas aplicações concorrentes, bem como
economizar recursos do sistema como um todo;

o Em um ambiente multithread, cada processo pode suportar múltiplos threads,


cada qual associado a uma parte do código da aplicação;

o Threads compartilham os recursos do sistema da mesma maneira como se


fossem um processo;

o Cada thread possui seu próprio contexto de hardware, porém compartilham


o mesmo contexto de software e espaço de endereçamento com os demais
threads do processo.

5.7 PROCESSOS BACKGROUND E FOREGROUND

• Um processo possui sempre associado à sua estrutura pelo menos dois canais de
comunicação por onde são realizadas todas as entradas e saídas de dados ao longo do
seu processamento. Estes são os canais de entrada e saída ( input e output ).

5.7.1 PROCESSO FOREGROUND

o Permite a comunicação direta do usuário com o processo durante o seu


processamento;

o Processamento interativo;

5.7.2 PROCESSO BACKGROUND

o Não há comunicação com o usuário durante o processamento;

o Os canais de entrada e saída não estão associados a nenhum dispositivo de


E/S, mas sim, a arquivos de E/S. Por exemplo, o processamento do tipo Batch;

5.7.3 PIPE

o Ocorre quando um canal de entrada ou saída está ligado a outro


processo.

5.8 PROCESSOS DO SISTEMA OPERACIONAL

• Além de estarem associados a aplicações do usuário, os processos podem também ser


implementados na própria arquitetura do sistema operacional.

• Arquitetura Micro-Kernel
5.9 PROCESSOS CPU – BOUND E IO - BOUND

• Classificação que se dá a um processo em virtude da sua utilização do processador e


dos dispositivos de entrada e saída.

5.9.1 PROCESSO CPU – BOUND

o Passa a maior parte do tempo em estado de execução;

o Poucas operações de leitura e gravação;

o Exemplo: Aplicações científicas que efetuam muitos cálculos;

5.9.2 IO – BOUND

o Passa a maior parte do tempo em estado de espera, pois realizada elevado


número de operações de entrada e saída;

o Exemplo: Aplicações Comerciais

5.10 SINAIS

• Permitem notificar processos sobre eventos gerados pelo sistema operacional ou


outros processos;

• É fundamental para a gerência de processos;

• Possibilita a comunicação e sincronização entre processos;

• Processos recebem sinais através de bits de localização localizados no PCB;

• O processo não responde imediatamente a um sinal. Os sinais ficam pendentes até


que o processo seja escalonado, quando então serão tratados.