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: