Trabalho
Introdução
O sistema operacional deve controlar a execução de diversos programas e o uso concorrente da UCP. Para ser executado num ambiente multiprogramável, um programa deve estar sempre associado a um processo. A gerência de processos é uma das principais funções de um sistema operacional. Através de processos, um programa pode alocar recursos, compartilhar dados, trocar informações e sincronizar sua execução. .
Estrutura do Processo Um processo pode ser definido, de forma mais abrangente, como o ambiente onde um programa é executado. Este ambiente, além das informações sobre a execução, possui também o quanto de recursos do sistema cada programa pode utilizar, como o espaço de endereçamento, tempo de UCP e área em disco. A execução de um mesmo programa pode variar dependendo do processo no qual ele é executado, ou seja, em função dos recursos disponíveis. Um processo é formado por três partes, conhecidas como contexto de hardware, contexto de software e espaço de endereçamento, que juntas mantêm todas as informações necessárias à execução de um programa.
Contexto de Hardware O contexto de hardware armazena o conteúdo dos registradores gerais da UCP, além dos registradores de uso específico, como program counter (PC), stack pointer (SP) e registrador de status (PSW). 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 na UCP, comandada pelo sistema operacional, é denominada mudança de contexto, consistindo 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.
Contexto de Software No 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