Aula 4 - Processo

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 29

Processo

Professor Danilo
A gerência de um ambiente multiprogramável é
função exclusiva do sistema operacional que deve
controlar a execução dos diversos programas e o uso
concorrente do processador e demais recursos.

Para isso, um programa ao ser executado deve estar


sempre associado a um processo.
Introdução
O conceito de processo é a base para a
implementação de um sistema multiprogramável.
A gerência de processos é uma das principais funções
de um sistema operacional, possibilitando aos
programas alocar recursos, compartilhar dados, trocar
informações e sincronizar suas execuções.

Nos sistemas multiprogramáveis os processos são


executados concorrentemente, compartilhando o uso do
Introdução processador, memória principal e dispositivos de E/S,
dentre outros recursos.

Nos sistemas com múltiplos processadores não só


existe a concorrência de processos pelo uso do
processador como também a possibilidade de execução
simultânea de processos nos diferentes processadores.
O processador é projetado para executar
instruções a partir do ciclo de busca e execução.
Neste ciclo, o processador busca a instrução a ser
executada na memória principal, armazena-a no
registrador de instruções para, finalmente,
Estrutura decodificar seus bits e realizar a execução.

do O registrador PC tem a função de armazenar


Processo sempre o endereço da próxima instrução a ser
executada, e as alterações do seu conteúdo
determinam o sequenciamento de execução das
instruções armazenadas na memória principal.
Na visão da camada de hardware, o processador
executa instruções sem distinguir qual programa
encontra-se em processamento.

Estrutura É de responsabilidade do sistema operacional


implementar a concorrência entre programas
do gerenciando a alternância da execução de
instruções na UCP de maneira controlada e segura.
Processo O conceito de processo torna-se essencial para
que os sistemas multiprogramáveis implementem
a concorrência de diversos programas e atendam a
múltiplos usuários simultaneamente.
Um processo pode ser entendido inicialmente como um programa em
execução, só que seu conceito é mais abrangente.

Para que a concorrência entre os programas ocorra sem problemas, é


necessário que todas as informações do programa interrompido sejam
Estrutura guardadas para que, quando este voltar a ser executado, não lhe falte
nenhuma informação necessária à continuação do processamento.

do Estas informações são fundamentais para que o sistema operacional


possa gerenciar a execução concorrente de programas, e é a base de
Processo qualquer ambiente multiprogramável.

O conceito de processo pode ser definido como sendo o conjunto


necessário de informações para que o sistema operacional implemente
a concorrência de programas.
Concorrência
de
programas e
processos
Estrutura do Processo
• Em um sistema multiusuário, cada usuário tem seu programa associado a um processo.
• Ao executar um programa, o usuário tem a impressão de possuir o processador e todos
os demais recursos reservados exclusivamente para seu uso.
• De fato isto não é verdade, visto que todos os recursos estão sendo compartilhados,
inclusive a UCP.
• Nesse caso, o processador executa o programa de um usuário durante um intervalo de
tempo e, no instante seguinte estará processando um outro programa.
• Um processo também pode ser definido
como o ambiente onde um programa é
executado.
Estrutura do • Este ambiente, além das informações sobre
a execução, possui também a quantidade
Processo de recursos do sistema que cada programa
pode utilizar, como o espaço de
endereçamento da memória principal,
tempo de processador e área em disco.
Estrutura do
Processo

• Um processo é formado
por três partes, conhecidas
como contexto de
hardware, contexto de
software e espaço de
endereçamento, que
juntos mantêm todas as
informações necessárias à
execução de um programa.
• 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
Contexto de registrador de status.
• Quando um processo está em execução, o seu

Hardware contexto de hardware está armazenado nos


registradores do processador. No momento em
que o processo perde a utilização da UCP, o
sistema salva as informações no contexto de
hardware do processo.
• O contexto de hardware é fundamental para a
implementação dos sistemas multiprogramáveis,
onde os processos se alternam na utilização da
UCP, podendo ser interrompidos e,
posteriormente, restaurados.
Contexto de • O sistema operacional gerencia a mudança de
contexto, base para a implementação da
Hardware concorrência, que consiste em salvar o conteúdo
dos registradores do processo que está deixando
a UCP e carregá-lo comos valores referentes ao do
novo processo que será executado. Essa operação
se resume em substituir o contexto de hardware
de um processo pelo de outro.
Contexto de
Hardware
• No contexto de software de um processo são
especificados limites e características dos
recursos que podem ser alocados pelo processo,
Contexto de como o número máximo de arquivos abertos
simultaneamente, prioridade de execução e
Software tamanho do buffer para operações de E/S.
• Muitas destas características são determinadas no
momento da criação do processo, enquanto outras
podem ser alteradas durante sua existência.
• A maior parte das informações do contexto de
software do processo provém de um arquivo do
sistema operacional, conhecido como arquivo de
Contexto de usuários. Neste arquivo são especificados os
limites dos recursos que cada processo pode
alocar, sendo gerenciado pelo administrador do
Software sistema.
• Outras informações presentes no contexto de
software são geradas dinamicamente ao longo da
execução do processo.
O espaço de endereçamento é a
área de memória pertencente ao
processo onde instruções e dados
do programa são armazenados para
Espaço de execução.
Endereçamento Cada processo possui seu próprio
espaço de endereçamento, que
deve ser devidamente protegido do
acesso dos demais processos.
Espaço de
Endereçamento
Bloco de Controle do Processo (PCB)
• O processo é implementado pelo sistema operacional através de
uma estrutura de dados chamada bloco de controle do processo
(Process Control Block - PCB).
• 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.
Bloco de
Controle do
Processo
(PCB)
Bloco de • Os PCBs de todos os processos ativos residem na
memória principal em uma área exclusiva do
Controle do sistema operacional.
• O tamanho desta área, geralmente, é limitado por

Processo um parâmetro do sistema operacional que


permite especificar o número máximo de
processos que podem ser suportados
(PCB) simultaneamente pelo sistema.
Visualização de processos no Linux
• Em um sistema multiprogramável, um processo
não deve alocar exclusivamente a UCP, de forma
que exista um compartilhamento no uso do
processador.
Estados do • Os processos passam por diferentes estados ao
longo do seu processamento, em função de
Processo eventos gerados pelo sistema operacional ou pelo
próprio processo.
• Um processo ativo pode encontrar-se em três
diferentes estados: Execução, Pronto e Espera.
Execução (running)
• Um processo é dito no estado de execução quando
está sendo processado pela UCP. Em sistemas com
apenas uma UCP, somente um processo pode estar
sendo executado em um dado instante de tempo.
Estados do Os processos se alternam na utilização do
processador seguindo uma política estabelecida
pelo sistema operacional.
Processo • Em sistemas com múltiplos processadores, existe
a possibilidade de mais de um processo ser
executado ao mesmo tempo. Neste tipo de
sistema, também é possível um mesmo processo
ser executado simultaneamente em mais de uma
UCP (processamento paralelo).
Pronto (ready)
• Um processo está no estado de pronto quando
aguarda apenas para ser executado.
• O sistema operacional é responsável por
determinar a ordem e os critérios pelos quais os
Estados do processos em estado de pronto devem fazer uso
do processador. Este mecanismo é conhecido

Processo como escalonamento.


• Em geral existem vários processos no sistema no
estado de pronto organizados em listas
encadeadas. Os processos devem estar ordenados
pela sua importância, permitindo que processos
mais prioritários sejam selecionados
primeiramente para execução
Espera (wait)
• Um processo no estado de espera aguarda por
Estados do algum evento externo ou por algum recurso para
prosseguir seu processamento.

Processo • Como exemplo, podemos citar o término de uma


operação de entrada/saída ou a espera de uma
determinada data e/ou hora para continuar sua
execução.
• Processos podem ser classificados como CPU-bound ou
I/O-bound de acordo com a utilização do processador e
dos dispositivos de E/S.
• Um processo é definido como CPU-bound (ligado à
UCP) quando passa a maior parte do tempo no estado
Processos de execução, utilizando o processador, ou pronto.
• Esse tipo de processo realiza poucas operações de

CPU-bound leitura e gravação, e é encontrado em aplicações


científicas que efetuam muitos cálculos.
• Um processo é classificado como I/O-bound (ligado à
e I/O-bound E/S) quando passa a maior parte do tempo no estado
de espera, pois realiza um elevado número de
operações de E/S.
• Esse tipo de processo é encontrado em aplicações
comerciais, que se baseiam em leitura, processamento
e gravação.
Processos Foreground e Background
• Um processo possui sempre pelo menos dois canais de comunicação
associados a sua estrutura, pelos quais são realizadas todas as
entradas e saídas de dados ao longo do seu processamento.
• Os canais de entrada (input) e saída (output) de dados podem estar
associados a terminais, arquivos, impressoras e até mesmo a outros
processos.
Processos Foreground e Background
• Um processo foreground é aquele que permite a comunicação
direta do usuário com o processo durante o seu processamento.
Neste caso, tanto o canal de entrada quanto o de saída estão
associados a um terminal com teclado, mouse e monitor, permitindo,
assim, a interação com o usuário. O processamento interativo tem
como base processos foreground.
• Um processo background é aquele onde não existe a comunicação
com o usuário durante o seu processamento). Neste caso, os canais
de E/S não estão associados a nenhum dispositivo de E/S interativo,
mas em geral a arquivos de E/S. O processamento do tipo batch é
realizado através de processos background.
Processos
Foreground
e
Background

Você também pode gostar