Buscar

Getenciamento de processos

Prévia do material em texto

Sistemas Operacionais
Gerenciamento de Processos
Conceitos Básicos
UNIVERSIDADE FEDERAL DO AMAZONAS – UFAM
INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA – ICET
Período 2021.2
Prof. Dr. Rainer Xavier de Amorim
raineramorim@ufam.edu.br
Na aula anterior, vimos...
 1) Chamada de Sistemas
 2) Interrupções
 Conteúdo desta aula:
❖ Gerenciamento de Processos: conceitos básicos.
Contextualização
Contextualização
❖ A gerência de um ambiente multiprogramável é uma função exclusiva 
do SO, que deve controlar a execução dos diversos programas e o uso 
concorrente do processador.
❖ Nos sistemas multiprogramáveis, os processos são executados 
concorrentemente, compartilhado, entre outros recursos, a utilização do 
processador, da memória principal e dos dispositivos de E/S.
❖ Além disso, em sistemas com multiprocessadores, não só existe a 
concorrência de processos pelo uso do processador, como também a 
execução simultânea de processos nos diferentes processadores.
Estrutura de um processo
Estrutura de um Processo
❖ Processo: pode ser definido como o programa em execução,
juntamente com seu contexto e suas áreas de dados, código e pilha.
❖ Ao executar um programa, o usuário tem a impressão de possuir o
processador e os demais recursos de hardware de forma exclusiva. Na
verdade, todos esses recursos estão sendo compartilhados.
❖ Nesse caso, o sistema operacional faz com que um processo de
usuário seja executado durante certo intervalo de tempo e, após esse
intervalo, o processo é interrompido para que outro possa ser
executado.
Estrutura de um Processo
❖ Para que essa troca de processo ocorra sem problemas, é necessário salvar
as informações do processo interrompido, para que possam ser
recuperadas quando aquele processo voltar a executar.
❖ Todas as informações relevantes e necessárias à execução de um
programa que fazem do processo. Essas informações são chamadas de:
contexto do processo.
❖ Além disso, é necessário haver áreas de memória (para armazenamento
de instruções e dados) alocadas para o processo, chamado de espaço de
endereçamento.
Estrutura de um Processo
❖ Um exemplo é caracterizado por um programa em
execução.
Diferença entre processo e programa?
Um processo é uma instância de um programa e possui
dados de entrada, dados de saída e um estado
(executando, bloqueado, pronto).
Programa vs. Processo
❖ Um programa pode ter várias instâncias em execução (em 
diferentes processos).
❖ Algoritmo codificado.
❖ Forma como o programador vê a tarefa a ser executada.
❖ Um processo é único.
❖ Código acompanhado de dados e estado.
❖ Forma pela qual o SO vê um programa e possibilita sua 
execução.
Processo em Primeiro Plano
1) Interage com o usuário.
Exemplos: 1) Ler um arquivo.
2) Iniciar um programa (linha de comando ou um 
duplo clique no mouse).
entrada saída
Processo Foreground
terminal terminal
Processo em Segundo Plano
Processos com funções específicas que independem de usuários –
daemons:
Exemplos: 1) Recepção e envio de e-mails.
2) Serviços de impressão.
entrada saída
Processo Background
arquivo de entrada arquivo de saída
Cada processo possui
1) Conjunto de instruções.
2) Espaço de endereçamento (espaço reservado para que o 
processo possa ler e escrever – 0 até max).
3) Contexto de hardware (valores nos registradores, como PC, 
ponteiro de pilha, e reg. de prop. gerais).
4) Contexto de software (atributos em geral, como lista de 
arquivos abertos, variáveis, etc.). 
Cada processo possui
Espaço de
Endereçamento
Contexto
de 
software
Contexto
de 
hardware
programa
Espaço de endereçamento
1) Texto: código executável do(s) 
programa(s).
2) Dados: as variáveis.
3) Pilha de execução: 
1. Controla a execução do processo.
2. Empilhando chamadas a 
procedimentos, seus parâmetros e 
variáveis locais, etc.
Pilha
Gap
Dado
Texto
0000
FFFF
Endereçamento
(hexadecimal)
.
.
.
Cada processo possui
Espaço de
Endereçamento
Contexto
de 
software
Contexto
de 
hardware
programa
Contexto de hardware
❖ O contexto de Hardware armazena o conteúdo dos registradores gerais da CPU, além 
dos registradores de uso especifico, como program counter (PC), stack point (SP) e 
registradores de status.
❖ Quando um processo está em execução, o conteúdo de alguns registradores é 
alterado a cada nova instrução executada. No momento em que o processo perde a 
utilização da CPU, o sistema salva as informações no contexto de hardware do 
processo.
❖ A troca de um processo por outro no processador, comandada pelo sistema 
operacional, e denominada chaveamento (mudança) de contexto. 
Contexto de hardware
1
Programa A
2 3 4
1 – Salva registradores do processo A.
2 – Carrega registradores do Processo B
3 – Salva registradores do Processo B
4 – Carrega registradores do Processo APrograma B
Cada processo possui
Espaço de
Endereçamento
Contexto
de 
software
Contexto
de 
hardware
programa
Contexto de software
❖ Armazena as informações características e limites dos recursos que 
podem ser alocados pelo processo, como o número máximo de 
arquivos abertos simultaneamente e a prioridade de execução e 
tamanho de buffer para operações de E/S.
❖ O contexto de software é composto por três grupos de 
informações sobre o processo: identificação, quotas e privilégio.
Contexto de software: identificação
❖ Cada processo criado pelo sistema, recebe uma identificação única (PID-
Process Identification), representada por um número. Por meio do PID, o SO 
e outros processos podem fazer referência a qualquer processo existente, 
consultando seu contexto ou alterando uma das suas características. Alguns 
sistemas, além do PID, identificam o processo através de um nome.
❖ O processo também possui a identificação do usuário ou processo que o 
criou (owner). Cada usuário possui uma identificação única no sistema (UID –
User Identification), atribuída ao processo no momento de sua criação.
Contexto de software: quotas
❖ As quotas são os limites de cada recurso do sistema que um processo pode alocar. 
Alguns exemplos de quotas presentes na maioria dos sistemas operacionais são:
➢ Tamanho máximo de memória principal e secundária que o processo pode 
alocar;
➢ Número máximo de arquivos abertos simultaneamente;
➢ Números máximo de operações de E/S pendentes;
➢ Tamanho máximo de processo, subprocessos e threads que podem ser criados.
❖ Caso uma quota seja insuficiente, o processo poderá ser executado lentamente, 
interrompido durante seu processamento, ou mesmo, não ser executado.
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.
❖ Privilégios que afetam o próprio processo permitem que suas características 
possam ser alteradas, como prioridade de execução, limites alocados na 
memória principal e secundária, etc.
❖ Já os privilégios que afetam os demais processos permitem, além da 
alteração de suas próprias características, a alteração de outros processos.
Contexto de software: privilégios
❖ Privilégios que afetam o sistema são os mais amplos e poderosos, pois 
estão relacionados à operação e gerência do ambiente, como a 
desativação do sistema, alteração de regras de segurança, criação de 
outros processos privilegiados, modificação de parâmetros de 
configuração do sistema, entre outros.
❖A maioria dos sistemas operacionais possui uma conta de acesso com 
todos esses privilégios, com o propósito de o administrador gerenciar o 
sistema operacional.
Contexto de software: espaço de 
endereçamento
❖O espaço de endereçamento é a área da memória pertencente 
ao processo onde às instruções e os 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
Espaço de
Endereçamento
Contexto
de 
software
Contextode 
hardware
programa
Endereços da memória principal alocados
Nome
PID
Owner (UID)
Prioridade de Execução
Data/hora
Tempo de processador
Quotas
Privilégios
Registradores gerais
Registradores PC
Registradores SP
Registrador de Status
Estrutura de um Processo
Tabela de Processos
1) Também chamada de BCP (Bloco Controle de Processo).
2) Contém informações de contexto de cada processo (ex. 
ponteiros de arquivos abertos, posição do próximo byte a ser 
lido em cada arquivo, etc.).
3) Contém informações necessárias para trazer o processo de 
volta, caso do SO tenha que tirá-lo de execução.
4) Contém estados de um processo em um determinado tempo.
Tabela de Processos
Tabela de Processos ou Blocos de Controle de Processos
Campos da entrada de uma tabela de processos
Tabela de Processos
1) O BCP só não guarda o 
conteúdo do espaço de 
endereçamento do processo.
2) Assim. Um processo é 
constituído de seu espaço de 
endereçamento e BCP (com 
seus registradores, etc.), 
representando uma entrada 
na tabela de processos.
.
.
.
Tabela de processos
.
.
.
BCP – P1
BCP – P2
BCP – Pn
Bloco de Controle de Processo
❖ O sistema operacional utiliza uma estrutura de
dados, chamada bloco de controle de
processo (Process Control Block – PCB), para
implementar os processos.
❖ A partir do PCB, o sistema operacional mantém
todas as informações sobre o contexto de
hardware, o contexto de software é o espaço
de endereçamento de cada processo.
ponteiros
Estados do processo
Nome do processo
Prioridade do processo
Registradores
Limites de memória
Lista de arquivos Abertos
.
.
Bloco de Controle de Processo
❖ Os PCBs de todos os processos residem na memória principal, em uma 
área exclusiva do sistema operacional. 
❖ O tamanho dessa área geralmente é limitada por um parâmetro do 
sistema operacional que permite especificar o número máximo de 
processos possíveis de serem suportados simultaneamente pelo sistema.
❖ Toda gerência dos processos é realizada por meio de chamadas de 
sistema, que realizam operações como criação, alteração, 
sincronização e suspensão de processos, entre outras.
Características de Processo
Características de Processo
1) Processos CPU-bound (orientados à CPU):
▪ Processos que utilizam muito o processador.
▪ Tempo de execução é definido pelos ciclos de processador.
2) Processos I/O-bound (orientado à E/S).
▪ Tempo de execução é definido pela duração das operações de
E/S.
IDEAL: existir um balanceamento entre processos.
CPU-bound e I/O-bound.
Situação ideal
 Processos de surto curto preenchem as lacunas de uso da CPU 
deixadas pro processos mais longos.
Criação de Processos
a) Inicialização do sistema
b) Execução de uma chamada de sistema para criação de 
processo, realizada por algum processo em execução.
c) Requisição de usuário para criar um novo processo (duplo 
clique do mouse, etc.).
d) Inicialização de um processo em batch (em sistemas 
mainframes com proc. em batch).
Processos criando outros processos
1) No UNIX com a função fork().
a) Cria clone do processo Pai: cópias exatas na memória, 
mas com identificadores diferentes.
2) No Windows com CreateProcess.
a) Cria processo Filho, já carregando novo programa nele.
Criando processo com fork()
int main(int argc, char *argv[]){
int pid, num = -1;
pid = fork();
printf(“%d”, num);
if(pid == 0){ /* child */
num = 1;
} else if(pid > 0){ /* parent */
num = 2;
}
printf(“%d”, num);
}
Finalizando Processos
1) Término normal (voluntário):
a) A tarefa a ser executada é finalizada;
b) Ao terminar, o processo executa uma chamada 
(comunicando ao SO que terminou): exit (UNIX) e ExitProcess
(Windows).
2) Término por erro (voluntário):
a) O processo sendo executado não pode ser finalizado. 
Ex.: gcc filename.c; o arquivo filename.c não existe.
Finalizando Processos
1) Término com erro fatal (involuntário):
a) Erro causado por algum erro no programa (bug);
Ex.: Divisão por 0 (zero); Referência à memória inexistente; 
Execução de uma instrução ilegal.
2) Término (involuntário) causado por algum outro processo, via 
chamada a:
a) kill (UNIX).
b) TerminateProcess (Windows).
Estados de Processos
❖ Em sistemas multiprogramáveis, é comum haver vários processos
compartilhado a utilização do processador. Para evitar que alguns
processos monopolize o processador, o sistema operacional determina
quando cada processo tem direito a executar.
❖Assim, enquanto cada um processo executa, os demais aguardam em
uma fila pela sua vez. Se um processo estiver executando e solicitar
uma operação de E/S (através de uma chamada de sistema), ele deve
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 de Processos
❖ Para saber em que situação se encontra cada processo, o sistema
operacional implementa o conceito de estados do processo. Ao
longo do seu processamento, os processos passam por diferentes
estados, em função de eventos gerados pelo próprio processo ou
pelo sistema operacional.
Estados de Processos
1) Executando: realmente usando a CPU naquele
momento.
2) Bloqueado: incapaz de executar enquanto um evento
externo não ocorrer.
3) Pronto: em memória, pronto para executar (ou para
continuar sua execução), apenas aguardando a
disponibilidade do processador.
Executando (running)
❖ Considerando-se um processo está no estado de execução, quando ele está 
sendo processado pela CPU. Em sistemas com um único processador, somente 
um processo pode ser executado em um dado momento.
❖ O sistema operacional alterna (escalona) a utilização do processador entre os 
processos, segundo alguma política estabelecida por ele.
❖ Em sistemas com múltiplos processadores, há a possibilidade de mais de um 
processo estar sendo executado ao mesmo tempo.
❖ Nesse tipo de sistema, também é possível um mesmo processo ser executado 
simultaneamente, em mais de uma CPU (processamento paralelo)
Pronto ou Apto (ready)
❖ Um processo está no estado de pronto ou apto, quando aguarda sua vez de 
ser executado.
❖ Em geral, existem vários processos no sistema em estado de pronto, 
organizados em uma fila. 
❖ Por meio dessa fila, chamada de fila de apto ou fila de pronto, o sistema 
operacional determina a ordem e os critérios pelos quais os processos em 
estado de pronto devem utilizar o processador. Esse mecanismo é conhecido 
como escalonamento.
Bloqueado ou Espera (wait) 
❖Um processo no estado bloqueado ou espera aguarda por algum 
evento ou por algum recurso para prosseguir seu processamento.
❖Como exemplo, podemos citar um processo que aguarda o término 
de uma operação de entrada e saída ou espera de uma determinada 
data e/ou hora para continuar sua execução.
Estados de criação e destruição de um 
processo
❖ Para um processo entrar na fila de aptos e aguardar sua vez de executar, é
necessário que seja criado pelo loader do sistema operacional.
❖ Primeiro, o sistema operacional deve alocar na memória principal as áreas de
código, dados e pilha. Em seguida, o programa deve ser transferido da
memória secundária para memória principal nas áreas alocadas. Por último, o
PCB é criado e inicializado apropriadamente, com as informações do
processo.
❖ A partir desse momento, o SO já reconhece a existência do processo.
Estados de criação e destruição de um 
processo
❖ Após criar o processo, o sistema operacional normalmente coloca na
fila de aptos para que ele concorra à utilização do processador.
❖ No entanto algumas vezes, podem faltar recursos (por exemplo:
números máximo de processo ativos alcançados); nesse caso, o sistema
operacional manterá o processo no estado de criação, até que haja
recursos para ele se tornar ativo.
Bloqueado
Apto Executando DestruiçãoCriação
chamadas
Estados de criação e destruição de um 
processo
❖ Quando um processo e finalizado, todos os recursosdo processo devem
ser desalocados e o PCB deve ser eliminado pelo sistema operacional. O
término de um processo pode ocorrer pelas razões:
➢ Termino normal de execução;
➢ Eliminação forçada por erros de proteção;
➢ Eliminação por outro processo;
➢ Eliminação forçada por ausência de recursos disponíveis no sistema.
Transições entre estados
❖ 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:
Bloqueado
Apto Executando DestruiçãoCriação
Ocorrencia 
de eventos 
(interrupçao)
Chamda de 
Sistema
Tempo/
voluntário
Seleção
Termino
Transições entre estados
novo
pronto
em 
execução
em espera
encerrado
admissão
escalonamento
espera por
evento ou I/O
final de
execução
programa
carga
evento ou I/O 
concluído
Considerações Finais
 Foram abordados nesta aula:
 Gerenciamento de Processos: conceitos básicos.
Estes slides estão baseados na bibliografia:
 Sistemas Operacionais Modernos; Tanenbaum, A. S. 4ª Edição.
Na próxima aula:
 Mais sobre Gerenciamento de Processos.

Continue navegando

Outros materiais