Você está na página 1de 50

SISTEMAS OPERACIONAIS

Odecília Barreira
Unidade II – Processos

 Conceito de Processo;
 Estados de um processo.
Processos
 Como um sistema operacional consegue executar vários
programas ao mesmo tempo?
 A resposta para esta pergunta está nos PROCESSOS.
Processos
 Os sistemas operacionais multiprogramáveis permitem
carregar mais de um programa em memória e executa-los
concorrentemente.

 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.

 O conceito de processo é a base para a implementação de um


sistema multiprogramável.
Processos
 Um processo é um programa em execução;
 Assim há uma diferenciação entre programas e processos.
O programa é algo estático enquanto os processos são
dinâmicos.

 Os programas são formados por sequências de comandos


e instruções e não tem a possibilidade de alterar o seu
estado. Os processos por sua vez, são quem executam os
comandos dos programas, e à medida que os comandos
são executados o processo pode sofrer alterações.
Processos
 Quando abrimos um programa um processo é associado a ele.
 Se abrirmos uma segunda instância desse mesmo programa,
um novo processo será criado, totalmente independente do
primeiro.
 Ou seja, podemos ter vários processos relacionados a um
único programa e gerenciados individualmente pelo sistema
operacional.
Processos
Processos

 Um processo também pode ser definido como o


ambiente onde um programa é executado.

 Este ambiente, além das informações sobre a execução,


possui também a quantidade 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.
Processos
 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
processador, memória principal e dispositivos de E/S,
dentre outros recursos.
Processos
 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.
Processos
 A troca de um processo por outro no processador,
comandada pelo sistema operacional, é denominada
mudança de contexto.
 Em um sistema multiusuário, cada usuário tem seu
programa associado a um processo.
 O processador executa o programa de um usuário
durante um intervalo de tempo, e conforme observado,
no instante seguinte será processado outro programa.
Processos
 Um processo é formado por três partes:
 Contexto de hardware;
 Contexto de software;
 Espaço de endereçamento.
Processos – Contexto de Hardware

 O contexto de hardware de
um processo, 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.
 No momento em que o
processo perde a utilização
da CPU, o sistema salva as
informações no contexto de
hardware do processo.
Processos – Contexto de Hardware
 A troca de contexto segue a seguinte sequencia:
 Ao executar um processo “A”, o seu contexto de
hardware é armazenado nos registradores do processador.
Quando o sistema operacional decide trocar de processo,
executar o processo “B”, primeiramente salva os dados dos
registradores no contexto de hardware do processo “A” e em
seguida disponibiliza a utilização do processador para o
processo “B”. O contexto de hardware do processo “B” é
armazenado nos registrados do processador. A necessidade de
armazenar os registradores no contexto de hardware quando
um processo perde o uso do processador é que quando este
processo voltar a ser executado possa continuar exatamente
de onde foi interrompido.
Processos – Contexto de Software
 O contexto de software de um processo armazena
características e limites dos recursos que podem ser
alocados pelo processo, tais como:
 Número máximo de arquivos abertos simultaneamente,
 Prioridade de execução;
 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 a sua existência.
Processos – Contexto de Software
 As especificações de limites de recursos permitidos a um
processo alocar são definidos pelo administrador do
sistema e armazenado num arquivo do sistema
operacional denominado arquivo de usuários.
 O contexto de software é formado por três grandes
grupos de informações sobre o processo:
 Identificação;
 Quotas;
 Privilégios.
Processos – Contexto de Software
 Identificação
 Cada processo possui uma identificação única (PID – Process
Identification), representado por um número.
 O processo também possui uma identificação do usuário ou
processo que o criou (owner)
 Cada usuário possui uma identificação única no sistema (UID –
User Identification).
 A UID permite implementar um modelo de segurança, onde
apenas os objetos (processos, arquivos, áreas de memória, etc.)
que possuem a mesma UID do usuário (processo) podem ser
acessados.
Processos – Contexto de Software
 Quotas
 As quotas são os limites de cada recurso do sistema que um
processo pode alocar;

 Exemplos:
 Número máximo de arquivos abertos simultaneamente;
 Tamanho máximo de memória principal e secundária que o
processo pode alocar;
 Número máximo de operações de E/S pendentes, etc.
Processos – Contexto de Software
 Quotas
 Caso uma quota seja insuficiente, o processo
poderá ser executado lentamente, interrompido
durante seu processamento, ou mesmo, não ser
executado.
Processos – Contexto de Software
 Privilégios
 Os privilégios ou direitos definem as ações que um processo
pode fazer em relação a ele mesmo, aos demais processos e ao
sistema operacional.
 A maioria dos sistemas operacionais disponibiliza uma conta
de acesso com todos estes privilégios disponíveis, com o
propósito de o administrador gerenciar o sistema operacional.

 No sistemas Unix/Linux existe a conta “root”, no MS Windows


a conta “administrador”.
Espaço de Endereçamento
 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 execução.

 Cada processo possui seu próprio espaço de


endereçamento, que deve ser devidamente protegido do
acesso dos demais processos.
Estrutura de um processo
Processos - PCB
 BCP / PCB – Bloco de Controle do Processo
(Process Control Block)
 O processo é implementado pelo sistema operacional através
de uma estrutura de dados chamada PCB.
 O sistema operacional ao criar um processo,
cria um bloco chamado Blocos de controle de
processos (PCBs), também conhecido como
descritor de processo.

 Através do PCB, o sistema operacional


mantém todas as informações sobre os
contextos de hardware, software e espaço
de endereçamento de cada processo.
Processos - PCB
 O bloco de controle de processo contém diversas
informações que auxiliam o seu gerenciamento pelo
sistema operacional. Entre estas informações estão:
 Número de Identificador de processo (PID – Process
Identification Number): número pelo qual o processo é identificado
pelo sistema operacional.
 Estado do processo: estado atual do processo (Pronto,
Execução, Em Espera, etc.).
 Contador de programa: indica qual instrução do processo
deverá ser executada.
 Prioridade de escalonamento: indica qual a prioridade do
processo na escala de prioridade de execução.
 Credenciais: indica quais as permissões o processo possui.
Estados do Processo
 Em sistemas multiprogramáveis, é comum haver vários
processos compartilhando a utilização do processador.

 Para evitar que algum processo monopolize o


processador, o sistema operacional determina quando
cada processo tem direito a executar.

 Assim, enquanto um processo executa, os demais


aguardam em uma fila pela sua vez.
Estados do Processo
 Se um processo estiver executando e solicitar uma
operação de E/S (através de uma chamada de sistema), ele
deverá liberar o processador e aguardar até que a
operação seja concluída.

 Só então ele estará apto novamente a disputar a


utilização do processador com os outros processos.
Estados do Processo
 Os processos passam por diferentes estados ao longo do
seu processamento, em função de eventos gerados pelo
sistemas operacional ou pelo próprio processo, são eles:
 Execução (running);
 Pronto (ready);
 Espera (Wait).
Estados do Processo
Execução (running)
 Um processo é dito no estado de execução quando está
sendo processado pela UCP.
 Em sistemas com uma UCP, somente um processo pode
estar sendo executado em um dado instante de tempo.
 Em sistemas com múltiplos processadores, existe a
possibilidade de mais de um processo a ser executado ao
mesmo tempo, ou de um mesmo processo ser executado
simultaneamente em mais de uma UCP (processamento
paralelo).
Estados do Processo
Pronto (ready)
 Um processo está no estado de pronto quando aguarda
para ser executado.
 O sistema operacional é responsável por determinar a
ordem e os critérios pelos quais os processos em estado
de pronto devem fazer uso do processador –
escalonamento.
 Os processos devem estar ordenados pela sua
importância, permitindo que processos mais prioritários
sejam selecionados primeiramente para execução.
Estados do Processo
Espera / bloqueado (Wait)
 Um processo no estado de espera aguarda por algum
evento externo ou por algum recurso para prosseguir seu
processamento.
 Exemplo:
 O término de uma operação de E/S ou a espera de uma
determinada data e/ou hora para continuar sua execução.

Os processos são separados em listas de espera


associadas a cada tipo de evento. Nesse caso, quando um
evento acontece, todos os processos da lista associada ao
evento são transferidos para o estado de pronto.
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.
 Pronto → Execução;
 Execução → Espera;
 Espera → Pronto;
 Execução → Pronto.
Mudanças de Estado do Processo
Mudanças de Estado do Processo
 Pronto → Execução
 Após a criação do processo, o sistema o coloca em uma lista
de processos no estado de pronto, onde aguarda por uma
oportunidade para ser executado.
 O sistema operacional tem sua política de escalonamento
(critérios e algorítmos).
 Execução → Espera
 Um processo passa do estado de Execução para Espera por
eventos gerados pelo próprio processo, como uma operação
de E/S, ou por eventos externos, como quando o S.O suspende
por um período de tempo a execução de um processo.
Mudanças de Estado do Processo
 Espera → Pronto
 Um processo no estado de espera muda para pronto quando a
operação solicitada é atendida ou o recurso esperado é
concedido.
 Um processo no estado de espera sempre terá de passar
para o estado de pronto antes de poder ser novamente
selecionado para a execução.
 Execução → Pronto
 Um processo passa do estado de execução para pronto por
eventos gerados pelo sistema, como o término da fatia de
tempo que o processo possui para a sua execução.
 Nesse caso, o processo volta para a fila de pronto, onde
aguarda por uma nova oportunidade para continuar seu
processamento.
Swapping
 Um processo em estado de pronto ou espera pode não
estar armazenado na memória principal, devido a falta de
espaço suficiente para todos os processos e então parte
do contexto do processo é levado para a memória
secundária.

 A técnica conhecida como swapping, retira os processos


da memória principal (swap out) e os traz de volta (swap
in) seguindo critérios de cada sistema operacional.
 Neste caso, os processos em estado de espera e pronto
podem estar residentes ou não na memória principal
(outswapped).
Criação e Eliminação de Processos
 A criação de um processo ocorre a partir do momento
em que o sistema operacional adiciona um novo PCB à
sua estrutura e aloca um espaço de endereçamento na
memória para uso.

 A partir da criação do PCB, o S.O. já reconhece a


existência do processo, podendo gerenciá-lo e associar
programas ao seu contexto para serem executados.

 No caso da eliminação, todos os recursos associados ao


processos são desalocados e o PCB eliminado pelo
sistema operacional.
Criação e Eliminação de Processos
 Além dos três estados apresentados anteriormente para
o processo, a maioria dos sistemas operacionais
estabelece para os momentos de criação e eliminação de
um processo dois estados adicionais.
 Criação (New) – o S.O. cria o PCB mas ainda não colocou no
estado de pronto.

 Término (Exit) – o processo não poderá ter mais nenhum


programa executando no seu contexto, porém ainda mantém
informações de controle presentes.
 Término normal de execução;
 Eliminação por um outro processo;
 Eliminação forçada por ausência de recursos disponíveis no sistema.
Criação e Eliminação de Processos
Estado do Processo
Em resumo:
 Início (criação) » Pronto: ocorre apenas na criação;
 Pronto » Executando: ocorre quando o processo é
selecionado para execução segundo um critério
predefinido pelo sistema operacional;
 Executando » Pronto: ocorre quando o processo é
interrompido e novo processo será selecionado;
 Executando » Espera: ocorre quando o processo deve
aguardar um recurso;
 Espera » Pronto: ocorre quando a solicitação de recurso
é atendida;
 Executando » Fim (término): término do programa.
Estado do Processo
Tipos de Processo
 CPU-bound
 São processos que passam a maior parte do tempo em estado de
execução utilizando o processador ou pronto.
 Realizam poucas operações de E/S;
 I/O bound
 São processos que passam a maior parte do tempo em estado de
espera, pois realizam um elevado número de operações de E/S
Tipos de Processo
 Processo em foreground: são processos que mantém
com o usuário uma ligação direta enquanto esta
sendo processado. Esta ligação do processo com o
usuário é feita através dos canais de comunicação
associados ao teclado, mouse, monitor, etc.
 Processos em background: são processos que não
tem ligação direta com o usuário enquanto esta
sendo processado. Este tipo de processo é muito
utilizado em processamentos do tipo batch.
Tipos de Processo
Exercícios

SOSIM
Responda:
Responda:
Responda:
Responda:
Responda:

Você também pode gostar