ESTRUTURA DE UM PROCESSO

Um processo é formado por três partes, o contexto de hardware, o contexto de software e o espaço de endereçamento. Quando o processo está em execução, o contexto de hardware está armazenado nos registradores do processador. No momento que o processo perde a utilização da CPU, o sistema salva as informações no contexto de hardware do processo. O contexto de hardware é fundamental para a implementação de sistemas multiprogramáveis, pois os processos podem ser interrompidos e restaurados. A figura 36 ilustra a estrutura do processo.

Saiba mais: O contexto de hardware armazena o conteúdo dos registradores de uso específico, por exemplo, o program counter (PC), stack pointer (SP) e o registrador de status.

 



O SO gerencia as mudanças de contexto para implementar a concorrência ao salvar o conteúdo dos registradores do processo que está deixando a CPU e carrega os valores referentes ao novo processo que será executado. A figura 37 ilustra um exemplo deste conceito considerando dois processos.


O contexto de software especifica limites e características dos recursos que podem ser alocados pelo processo, tais como o número máximo de arquivos abertos simultaneamente pelo processo, a prioridade de execução, o tamanho do buffer para operações de E/S. Muitas destas características são determinadas na criação do processo e outras são determinadas durante a existência do processo. A figura 38 ilustra a estrutura do processo considerando as informações específicas para o contexto de software, o contexto de hardware e o espaço de endereçamento.

Atenção: O contexto de software é composto por três grupos de 1 informação sobre o processo: identificação, quotas e privilégios.


 O grupo de identificação descreve o identifier (ID), o dono e UserIdentifier (UID). O ID consiste em um número inteiro único que possibilita referenciar o processo para consultar seu contexto e alterar suas características. O dono, ou owner, descreve o responsável pelo processo. O UID consiste no ID do usuário. Através da combinação do ID, UID e dono, podem ser implementados modelos de segurança para acessar os processos.

O grupo de quotas descreve os limites de cada recurso que um processo pode usar. Quando este recurso se esgota o processo pode ficar lento, pode ser interrompido ou até mesmo não ser executado. Dentre os exemplos de quotas podemos citar o tamanho máximo de memória principal e secundária alocada por processo e o número máximo de operações de E/S pendentes.

O grupo de privilégio define as ações que um processo pode fazer. Este grupo pode ser dividido em dois tipos: (1) o que pode ser feito em relação a si mesmo; e (2) o que pode ser feito em relação aos demais processos. Exemplos de ações que um processo pode fazer em relação a si mesmo consiste na possibilidade de alteração de suas características, prioridade de execução e limites alocados na memória principal e secundária. Exemplos de ações que um processo pode executar em relação aos demais consistem na possibilidade de alterar as características dos demais processos do SO.

O espaço de endereçamento consiste na área de memória pertencente ao processo onde as instruções e dados do programa são armazenados para execução. Cada processo possui seu próprio espaço de endereçamento, o qual deve ser protegido do acesso dos demais processos.

Para implementar o processo no SO, torna-se necessário empregar uma estrutura de dados para representar o contexto de software, o contexto de hardware e o espaço de endereçamento. A estrutura de dados usada para estas situações consiste no bloco de controle de processos (PCB), também chamado de tabela de processos. Os PCBs dos processos residem na memória principal e o SO determina o espaço dos PCBs, armazenando nessa tabela todos os dados e recursos necessários para o gerenciamento dos processos. A figura 39 ilustra a estrutura de dados da PCB.

Atenção: A partir do PCB o sistema operacional mantém todas as informações sobre o contexto de hardware, o contexto de software e espaço de endereçamento.


 O grupo de identificação descreve o identifier (ID), o dono e UserIdentifier (UID). O ID consiste em um número inteiro único que possibilita referenciar o processo para consultar seu contexto e alterar suas características. O dono, ou owner, descreve o responsável pelo processo. O UID consiste no ID do usuário. Através da combinação do ID, UID e dono, podem ser implementados modelos de segurança para acessar os processos.

O grupo de quotas descreve os limites de cada recurso que um processo pode usar. Quando este recurso se esgota o processo pode ficar lento, pode ser interrompido ou até mesmo não ser executado. Dentre os exemplos de quotas podemos citar o tamanho máximo de memória principal e secundária alocada por processo e o número máximo de operações de E/S pendentes.

O grupo de privilégio define as ações que um processo pode fazer. Este grupo pode ser dividido em dois tipos: (1) o que pode ser feito em relação a si mesmo; e (2) o que pode ser feito em relação aos demais processos. Exemplos de ações que um processo pode fazer em relação a si mesmo consiste na possibilidade de alteração de suas características, prioridade de execução e limites alocados na memória principal e secundária. Exemplos de ações que um processo pode executar em relação aos demais consistem na possibilidade de alterar as características dos demais processos do SO.

O espaço de endereçamento consiste na área de memória pertencente ao processo onde as instruções e dados do programa são armazenados para execução. Cada processo possui seu próprio espaço de endereçamento, o qual deve ser protegido do acesso dos demais processos.

Para implementar o processo no SO, torna-se necessário empregar uma estrutura de dados para representar o contexto de software, o contexto de hardware e o espaço de endereçamento. A estrutura de dados usada para estas situações consiste no bloco de controle de processos (PCB), também chamado de tabela de processos. Os PCBs dos processos residem na memória principal e o SO determina o espaço dos PCBs, armazenando nessa tabela todos os dados e recursos necessários para o gerenciamento dos processos. A figura 39 ilustra a estrutura de dados da PCB. 

Atenção: A partir do PCB o sistema operacional mantém todas as informações sobre o contexto de hardware, o contexto de software e espaço de endereçamento.


Os processos desempenham um papel fundamental para gerenciar a concorrência aos recursos físicos de um sistema computacional. Esta concorrência é implementada em termos de software e baseia-se nas informações associadas com cada processo. Como foi visto anteriormente, as informações sobre os processos são organizadas em três grupos, o contexto de hardware, o contexto de software e espaço de endereçamento. Para representar estas informações é utilizado o bloco de controle de processos PCB.

Podemos usar o simulador SOSim para exemplificar a aplicação do contexto de hardware e software. Para fazer isto, primeiramente execute o simulador clicando duas vezes sobre o arquivo executável principal. Após a inicialização, você verá que quatro janelas serão abertas na inicialização. A figura 40 ilustra esta etapa.


Em seguida, crie dois processos. Para isto escolha a janela de gerência de processos, clique em Criar, deixe as opções previamente carregadas e mude o número de processos para 2. Por enquanto não se preocupe em entender todas essas opções, no decorrer desta unidade estudaremos cada uma delas. Após esta configuração clique em OK. Seguindo estes passos você deverá receber uma saída similar à ilustrada na figura.


Na Figura 41 observamos que existem informações dinâmicas sobre os processos, ou seja, que variam constantemente, e outras estáticas, isto é, permanecem inalteradas. Dentre as informações dinâmicas encontramos o estado e o tempo de UCP (ou CPU). As informações estáticas consistem no PID, na prioridade e frames. As informações dinâmicas, neste caso, pertencem ao contexto de software. Apesar de não variar neste exemplo, a prioridade também pertence ao contexto de software. As informações referentes ao contexto de hardware, neste caso, consistem ao campo Frame.

O simulador SOSim também permite visualizar as informações da PCB. Para ver estas informações, primeiramente você precisa criar um processo. Para isto reinicie o simulador e crie um novo processo. A figura 42 mostra a tela do simulador após a criação do processo.  


Na sequência, clique na opção PCB na janela de Gerência de Processos. A figura 43 ilustra a tela do simulador após a execução deste passo. Após seguir este procedimento, será apresentada uma nova janela descrevendo o contexto do processo. Nesta janela, escolha a opção PCB. Dentre as opções desta aba será apresentada a faixa de prioridade base e dinâmica, o estado, o tempo de criação, o tempo de CPU, os frames e o PC.



Comentários

Postagens mais visitadas deste blog

Transferência de arquivo por FTP

TIPOS DE PROCESSOS

Tipos de Servidores