Sistemas Operacionais
2. Processos
Texto base: capítulos 3 e 4
Operating Systems: Internals and Design Principles
W. Stallings
IC - UFF
O conceito de processos

No capítulo 1, fizemos as seguintes
afirmativas quanto aos processos:


IC - UFF
Mais geral que programa
Consiste em um código executável e seus
dados associados, além de um contexto de
execução
Enfim, ...


Um processo é uma abstração de um
programa em execução
Exemplo:
fazer um bolo ...
 ... primeiros socorros!

IC - UFF
O que esperar do SO?




Alternar a execução de processos de
forma a maximizar a utilização da UCP e
fornecer tempo de resposta razoável
Alocar recursos a processos
Suportar criação de processos pelo
usuário
Suportar comunicação entre processos
IC - UFF
Modelo simples de processo
despacho
entra
sai
nãoexecutando
executando
pausa
(a) diagrama de transição de estado
entra
fila
sai
despacho
UCP
pausa
IC - UFF
(b) possível implementação
Criando de processos

O que faz o SO para criar processos?



constrói estruturas de dados
aloca espaço de endereçamento
Quando cria?


IC - UFF
quando usuário abre sessão;
quando gerado por outro processo (e.g.,
servidor de FTP); ...
Terminando processos

Quando terminar?



execução da instrução Halt;
condições de erro; ...
Algumas razões para o término:




IC - UFF
tempo excedido;
falta de memória;
uso de instrução privilegiada;
término do processo pai; ...
Problema com o modelo simples

Um processo que não está executando
estará sempre pronto a executar?
Não:
 pode estar bloqueado esperando E/S!
 despachante não pode simplesmente
ppegar um processo que esteja na fila

IC - UFF
Um modelo mais elaborado
despacho
admissão
novo
liberação
pronto
evento
ocorre
bloqueado
IC - UFF
executando
pausa
espera
evento
saída
Implementando o modelo (1)
fila dos prontos
liberação
despacho
admissão
UCP
pausa
fila dos bloqueados
evento ocorre
IC - UFF
espera evento
Implementando o modelo (2)
fila dos prontos
liberação
despacho
admissão
UCP
pausa
fila evento 1
espera evento 1
evento 1 ocorre
fila evento 2
evento 2 ocorre
IC - UFF
espera evento 2
Implementando o modelo (3)
prioridade 2
prioridade 1
liberação
despacho
admissão
UCP
pausa
fila evento 1
espera evento 1
evento 1 ocorre
fila evento 2
evento 2 ocorre
IC - UFF
espera evento 2
O estado Suspenso



O processador é muito mais rápido que
E/S: todos os processos podem estar
bloqueados
Swapping
Necessidade de novo estado:
representação de processo suspenso
IC - UFF
Diagrama com estado Suspenso
despacho
admissão
novo
pronto
ativação
evento
ocorre
suspenso
bloqueado
suspensão
IC - UFF
liberação
executando
pausa
espera
evento
saída
Pensando melhor ...
novo
admissão
prontosuspenso
suspende
admissão
despacho
liberação
ativa
pronto
executando
suspende
pausa
evento
espera
ocorre
evento
ativa
suspensobloqueado
bloqueado
evento
ocorre
suspende
IC - UFF
saída
O que o SO deve fazer?

Em um sistema multi-tarefas, o SO
deverá:




escalonar e despachar processos para
execução
alocar recursos aos processos
responder a pedidos de recursos feitos pelos
programas dos usuários
Como fazer?
IC - UFF
Tabelas!

Tabelas de memória


Tabelas de E/S


IC - UFF
e.g., estado de dispositivo de E/S
Tabelas de arquivos


e.g., alocação de MP aos processos
localização de arquivos em MS
Tabelas de processos

e.g., lista de processos existentes
Controlando processos

Para gerenciar processos o SO precisa
conhecer:



onde o processo está localizado
os atributos do processo
Como é representado um processo?

IC - UFF
imagem do processo: programa + dados +
pilha(s) + atributos
Atributos do processo


O conjunto dos atributos de um processo
é conhecido como bloco de controle do
processo (PCB, em inglês)
PCB pode ser dividido em três partes:



IC - UFF
identificação do processo
informação de estado do processador
informação de controle do processo
Identificação do processo

Feita por identificadores numéricos que
incluem:



IC - UFF
identificador do processo
identificador do processo que o criou
identificador do usuário
Informação do processador

Contida nos registradores do
processador:



IC - UFF
registradores visíveis ao usuário (aqueles
referenciados por programa)
registradores de controle e estado (e.g., PC,
códigos de condição)
apontadores de pilha
Informação de controle (1)

Estado e escalonamento, que inclue:




IC - UFF
estado do processo (e.g., pronto)
nível corrente de prioridade
suporte ao escalonamento (e.g., há quanto
tempo o processo está esperando)
evento (e.g., identificação do evento que o
processo está esperando)
Informação de controle (2)

Estruturação de dados (e.g., relação paifilho)


Comunicação entre processos (e.g., sinais)
Privilégios (e.g., tipos de instruções que
podem ser executadas)

Gerenciamento de memória (e.g., ponteiro
para tabela de páginas)

IC - UFF
Propriedade e uso de recursos (e.g.,
arquivos abertos)
Funções típicas do núcleo do SO

Preliminares:



Funções do núcleo:




IC - UFF
O que é modo dual de operação?
O que é o núcleo do SO?
gerenciamento de processos
gerenciamento de memória
gerenciamento de E/S
funções de suporte
Funções típicas do núcleo do SO

Preliminares:



Funções do núcleo:




IC - UFF
O que é modo dual de operação?
O que é o núcleo do SO?
gerenciamento de processos
gerenciamento de memória
gerenciamento de E/S
funções de suporte
Gerenciamento de processos (1)

Funções típicas:





IC - UFF
criação e término de processos
escalonamento e despacho
chaveamento
sincronização e suporte a IPC
gerenciamento de PCBs
Gerenciamento de processos (2)

Criação de processos





IC - UFF
atribuição de identificador único e adicionar
nova linha à tabela primária de processos
alocação de espaço para a imagem
iniciação do PCB
adicionar apontador nas listas apropriadas
(e.g., lista de prontos para escalonamento)
outras estruturas: e.g., arquivo de
contabilização
Gerenciamento de processos (3)

Quando chavear?

interrupções





IC - UFF
relógio ( mudança de estado, escalonamento)
E/S
falta de memória (página ou segmento)
traps: condições anormais
chamada ao sistema (e.g., operação de E/S)
Unix: Fork
#include <stdio.h>
int main (int argc, char *argv[ ])
{
int pid;
/* criação de outro processo por fork */
pid = fork();
IC - UFF
if (pid < 0) {/* ocorreu erro */
fprintf(stderr, "Fork falhou");
exit(-1);
}
else if (pid == 0) {
/* processo filho */
execlp ("/bin/ls", "ls", NULL);
}
else {
/* processo pai */
/* processo pai vai esperar o filho terminar */
wait(NULL);
printf("Filho terminou\n");
exit(0);
}
}
Gerenciamento de memória

Funções típicas:



IC - UFF
alocação de espaço de endereçamento aos
processos
swapping
gerenciamento de páginas e segmentos
Gerenciamento de E/S

Funções típicas:


IC - UFF
gerenciamento de buffers
alocação de canais e dispositivos de E/S
Funções de suporte

Funções típicas:



IC - UFF
tratamento de interrupção
monitoramento
contabilidade
Leitura suplementar


Operating Systems Concepts, A.
Silberschatz e P.B. Galvin, AddisonWesley
Modern Operating Systems, A.S.
Tanenbaum, Prentice Hall
IC - UFF
Download

Gerenciamento de processos