You are on page 1of 65

Sistemas Operativos

Capítulo 2
Descrição e Controlo dos
Processos
Descrição e Controlo dos
Processos
 O Processo
 Estados de um Processo
 Descrição de Processos
 Controlo do Processo
 Gestão de Processos em UNIX SVR4

Paulo Neves Sistemas Operativos 2


O Processo
 Processo é criado
para executar um
programa
 Conceito de trace
 Comportamento do
processo
 Listagem de
sequência de
instruções

Paulo Neves Sistemas Operativos 3


Ideias a reter
 Tempo de execução alojado
 Time out  despacho
 Nível de multiprogramação
 Pedido de E/S  despacho
 Terminação  despacho
 Comutação obrigatória após time out
 Tempo de execução do despacho não
influência tempo de alocação
Paulo Neves Sistemas Operativos 4
1 A000 26 D000
2 A001 27 D001

Exemplo -
3 A002 28 D002
4 A003 29 D003
5 A004 30 D004

traces
6 A005 31 D005
Time Out 32 A006
7 D000 33 A007
8 D001 34 A008
9 D002 35 A009
10 D003 36 A010
A000 B000 C000 11 D004 37 A011
B001 12 D005 Process End
A001 C001
13 B000 38 D000
A002 B002 C002 39 D001
14 B001
A003 B003 C003 15 B002 40 D002
A004 C004 16 B003 41 D003
A005 C005 Process End 42 D004
A006 C006 43 D005
17 D000
A007 C007 44 C003
18 D001
45 C004
A008 C008 19 D002
46 C005
A009 C009 20 D003
47 C006
A010 C010 21 D004
48 C007
22 D005
A011 C011 49 C008
23 C000
Time Out
Trace do processo A Trace do processo B Trace do processo C 24 C001
25 C002 50 D000
51 D001
I/O Request
52 D002
53 D003
54 D004
55 D005
56 C009
Paulo Neves Sistemas Operativos 57 C010 5
58 C011
Estados de um Processo
 Modelo de 2 estados
 Modelo de 5 estados
 Modelos de 6 e 7 estados

Paulo Neves Sistemas Operativos 6


Modelo de 2 estados
 Processo pode estar em execução ou
parado

Paulo Neves Sistemas Operativos 7


Problemas do Modelo
 Criação do processo
 Novo batch job, Interactive Logon, criado
pelo SO, criado por um processo
 Termino do processo
 Normalmente, time out, falta de memória,
violação do espaço de endereçamento,
erro de protecção, erro aritmético, time
overrun, falha de E/S, instrução
privilegiada, erro na utilização de dados,
intervenção do SO ou operador, termino do
pai, a pedido do pai
Paulo Neves Sistemas Operativos 8
Criação de um Processo I
 Novo batch job
 Sistema de controlo de jobs
 Novo job
 Leitura da sequência de comandos de controlo
da tarefa
 Interactive Logon
 Um utilizador autentica-se no sistema

Paulo Neves Sistemas Operativos 9


Criação de um Processo II
 Criado pelo SO
 Fornecimento de serviços
 A pedido de aplicações ou outras
funcionalidades do SO
 Exemplo: impressão
 Criado por um processo existente
 Uma aplicação pode invocar a criação de
processos

Paulo Neves Sistemas Operativos 10


Termino de um Processo I
 Terminação normal
 Processo invoca uma chamada de sistema a
indicar que terminou
 Time Out
 O processo demorou mais tempo a executar que o
especificado
 Falta de memória
 Processo requisitou mais memória que a
disponível

Paulo Neves Sistemas Operativos 11


Término de um Processo II
 Violação do espaço de endereçamento
 Processo tentou aceder a outro espaço de
endereçamento
 Erro de protecção
 Processo tenta utilizar um recurso que não
lhe pertence
 Erro aritmético
 P. ex. divisão por zero

Paulo Neves Sistemas Operativos 12


Término de um Processo III
 Time overrun
 Processo esperou mais tempo que o
especificado para a ocorrência de um dado
evento
 Falha de E/S
 Ficheiro inexistente, falha de L/E, operação
inválida

Paulo Neves Sistemas Operativos 13


Término de um Processo IV
 Instrução inválida
 Processo tenta executar uma instrução
inválida (típico: tenta executar dados)
 Instrução privilegiada
 Instrução reservada ao SO
 Erro na utilização de dados
 Dados não inicializados ou de tipo
incorrecto

Paulo Neves Sistemas Operativos 14


Término de um Processo V
 Intervenção do SO ou operador
 Por alguma razão um deles terminou o
processo
 Termino do pai
 A terminação do pai provoca
automaticamente a terminação de todos os
processos por ele criados
 A pedido do pai
 O processo que o criou invocou a
terminação do filho
Paulo Neves Sistemas Operativos 15
O modelo de 5 Estados
 Resposta aos problemas do modelo de
2 estados
 Estado bloqueado

Paulo Neves Sistemas Operativos 16


Análise das transições
 Null  New
 Um novo processo é criado para executar
um programa
 Evento desencadeado por qualquer uma
das razões já apresentadas

Paulo Neves Sistemas Operativos 17


 SO pronto para aceitar novo processo
 Processo é admitido
 Alguns SOs
 Limitação para o número de processos

Paulo Neves Sistemas Operativos 18


 Dispatch
 O processo é seleccionado para execução
 Só os processos no estado Ready podem
ser despachados
 Algoritmos de escalonamento próprios

Paulo Neves Sistemas Operativos 19


 Time out
 Tempo de execução ininterrupto chegou ao
fim
 Política de prioridades (em alguns SOs)
 Processo prioritário pode forçar a preempção
do actual

Paulo Neves Sistemas Operativos 20


 O processo é terminado pelo SO após
indicação deste
ou
 O processo é abortado

Paulo Neves Sistemas Operativos 21


Event Wait
 Processo colocado em espera
 P. ex. operação de E/S
 Evita quebras de desempenho
ou
 Aplicação solicita ao SO um serviço

ainda não activo


 Recurso tem de ser libertado

Paulo Neves Sistemas Operativos 22


Event Occurs
 Processo sai do estado bloqueado
 Evento pelo qual esperava ocorreu
 Processo entra no estado Ready
 Pode ser seleccionado para execução a
qualquer momento

Paulo Neves Sistemas Operativos 23


Ready  Exit
 Reflecte o facto do processo pode ser
terminado a qualquer altura
 A pedido do pai, termino do pai

 Blocked  Exit
 Existe pela mesma razão

Paulo Neves Sistemas Operativos 24


Modelo de 6 e 7 Estados
 Suporte ao modelo de memória virtual
 Processo pode estar suspenso
 Modelo de 7 estados contempla 2
estados de suspensão
 Ready/suspend
 Blocked/suspend

Paulo Neves Sistemas Operativos 25


Modelo de 6 e 7 estados

Paulo Neves Sistemas Operativos 26


Modelo de 6 estados
 Estado suspended
 Processo foi colocado em memória
secundária
 Colocação pelo SO
 Fornecimento de mais memória a outros
processos

Paulo Neves Sistemas Operativos 27


Modelo de 7 estados
 Blocked/suspended
 Processo está bloqueado e foi colocado em
memória secundária
 Ready/suspended
 Processo encontra-se pronto para
execução, mas foi colocado em memória
secundária
 Para ser executado tem de ser trazido para
memória
Paulo Neves Sistemas Operativos 28
Análise de Algumas Transições
 Blocked  Blocked/suspend
 Blocked/suspend  Ready/suspend
 Ready/suspend  Ready
 Ready  Ready/suspend

Paulo Neves Sistemas Operativos 29


Blocked  Blocked/suspend
 Libertação de memória para outros
processos
 Não existem processos prontos para
execução em memória
 Necessário colocar alguns processos
bloqueados em memória secundária
 Trazer processos para a memória

Paulo Neves Sistemas Operativos 30


Blocked/suspend 
Ready/suspend
 Ocorrência do evento
 Processo permanece em memória
secundária
 SO tem de ter acesso ao estado dos
processos suspensos

Paulo Neves Sistemas Operativos 31


Ready/suspend  Ready
 Não existem processos prontos para
execução em memória
 Processo é prioritário
 Mesmo que hajam processos prontos em
memória

Paulo Neves Sistemas Operativos 32


Ready  Ready/suspend
 Normalmente não é muito utilizado
 Políticas de prioridade
 Libertação de memória para outros
processos
 Todos os processos que estão em memória
estão prontos para execução

Paulo Neves Sistemas Operativos 33


Descrição dos Processos
 SO gere os recursos que os processos
pedem
 Para o SO controlar, tem de possuir
informação
 Que informação?
 Como é ela organizada?

Paulo Neves Sistemas Operativos 34


Estruturas de Controlo do SO

Paulo Neves Sistemas Operativos 35


Em relação às tabelas…
 As tabelas não estão isoladas
 Possuem ligações entre si
 Como é que o SO sabe como criar as
tabelas?
 SO tem de possuir informação sobre os
recursos
 Inicialização

Paulo Neves Sistemas Operativos 36


Imagem de um Processo I
 Manifestação física do processo
 Estrutura de dados pré-definida
 Estrutura que permite
 Conhecimento do estado do processo
 Recursos alojados
 O programa que lhe está associado

Paulo Neves Sistemas Operativos 37


Imagem de um Processo II
 Dados do Utilizador
 Dados modificáveis do utilizador
 Programa do Utilizador
 Programa a ser executado
 Pilha de Sistema
 Armazenamento de parâmetros e
endereços de retorno
 Bloco de Controlo do Processo
Paulo Neves Sistemas Operativos 38
Bloco de Controlo do Processo
 Identificação do processo
 Identificadores numéricos diversos
 Informação do estado do processador
 Registos visíveis ao utilizador
 Registos de controlo e estado
 Apontadores de pilha de sistema
 Informação de controlo do processo

Paulo Neves Sistemas Operativos 39


Informação de Controlo do
Processo I
 Informação de escalonamento e estado
 Estado, prioridade, identificação do evento
que bloqueou o processo
 Estruturação dos dados
 Ligações entre processos
 Comunicação inter-processos
 Flags, sinais, mensagens
 Parte ou toda a informação residente no
BCP
Paulo Neves Sistemas Operativos 40
Informação de Controlo do
Processo II
 Privilégios do processo
 Tipos de instruções e memória
 Utilização de recursos e serviços
 Gestão de memória
 Utilização e posse de recursos

Paulo Neves Sistemas Operativos 41


Filas de Processos com o
Mesmo Estado

Paulo Neves Sistemas Operativos 42


Controlo do Processo
 Modos de Execução
 Criação do Processo
 Comutação de Processos
 Comutação de Modo
 Execução do SO

Paulo Neves Sistemas Operativos 43


Modos de Execução
 Modo de kernel – Kernel Mode
 Modo com maiores privilégios
 Leque de instruções executáveis maior
 Acesso a todos os recursos do processador
 Modo de utilizador – User Mode
 Normalmente utilizado na execução das
aplicações do utilizador
 Algumas instruções são protegidas

Paulo Neves Sistemas Operativos 44


O Kernel – Funcionalidades I
 Gestão de processos
 Criação e termino
 Escalonamento e despacho
 Comutação
 Sincronização e suporte para comunicação
inter-processo
 Gestão de BCPs

Paulo Neves Sistemas Operativos 45


O Kernel – Funcionalidades II
 Gestão de Memória
 Alocação do espaço de endereçamento
 Swapping
 Gestão do sistema de
paginação/segmentação
 Gestão de E/S
 Gestão de buffers
 Alocação de canais de E/S

Paulo Neves Sistemas Operativos 46


O Kernel – Funcionalidades III
 Funções de suporte
 Interrupt handling
 Monitorização
 Geração de estatísticas de utilização
(accounting)

Paulo Neves Sistemas Operativos 47


Criação do Processo
 Atribuição de um ID único
 Alocação de espaço de endereçamento
 Inicialização do BCP
 Definir as ligações apropriadas
 Criar ou expandir outras estruturas de
dados

Paulo Neves Sistemas Operativos 48


Comutação de Processos –
Razões I
 Interrupções externas à execução da
instrução actual
 Interrupção por tempo
 Interrupção por operação de E/S
(ocorrência do evento)
 Interrupção por parte falha de memória
 Excepções
 Erro fatal versus erro não fatal

Paulo Neves Sistemas Operativos 49


Comutação de Processos –
Razões II
 Chamada ao supervisor
 Programa efectua chamada ao supervisor
 Rotina que faz parte do SO
 Passagem para o estado blocked

Paulo Neves Sistemas Operativos 50


Passos da Comutação
 Guardar o contexto do processador
 Actualização do BCP
 Estado e contabilização
 Mover o BCP do processo para a fila
apropriada
 Selecção de outro processo para
execução

Paulo Neves Sistemas Operativos 51


Passos da Comutação II
 Actualização do BCP do novo processo
 Actualização das estruturas de gestão
de memória
 Actualização do contexto do
processador com a informação
correspondente do BCP

Paulo Neves Sistemas Operativos 52


Comutação de Modo
 Comutação entre os modos do
processador
 Geração de uma interrupção
 Guardar o contexto do programa actual
 PC aponta para inicio da rotina de
tratamento
 Comutação para o modo de kernel
 Executa as instruções da rotina

Paulo Neves Sistemas Operativos 53


Implicações
 Salvaguarda do contexto
 Contexto do processador (BCP)
 Pode degenerar numa comutação de
processo
 Mais rápida que uma comutação de
processo

Paulo Neves Sistemas Operativos 54


Execução do SO
 O SO é um processo?
 Quem o controla?
 Como?
 Concorre com os outros processos?
 Processador
 Memória

Paulo Neves Sistemas Operativos 55


Abordagens
 Kernel separado
 Funções do SO são executadas no
espaço de endereçamento dos
processos
 Funções do SO são executadas em
processos separados

Paulo Neves Sistemas Operativos 56


Kernel Separado
 Kernel não é um processo, não precisa
ser controlado
 SO é uma entidade separada que opera
em modo privilegiado

Paulo Neves Sistemas Operativos 57


Funções do SO são executadas no
espaço de endereçamento dos
processos
 Máquinas de pequeno porte
 Utilização de stack separada para
execução em modo privilegiado
 Apenas ocorre uma comutação de
modo

Paulo Neves Sistemas Operativos 58


Funções do SO são executadas
em processos separados
 Colecção de processos
 Existência de um programa de
comutação separado

Paulo Neves Sistemas Operativos 59


Gestão de Processos em UNIX
SVR4

Paulo Neves Sistemas Operativos 60


A primitiva fork()
 Forma de criação de processos em
UNIX
 Devolve um valor inteiro que tem de ser
processado em software
 Caso não consiga criar o processo
devolve –1 ao processo pai

Paulo Neves Sistemas Operativos 61


A primitiva fork() – Passos I
 Alocação de um slot na tabela de
processos para o novo processo
 Especificação de um identificador único
 Cópia da imagem do processo do pai
para o filho, excepto memória partilhada
 Incrementa contadores de ficheiros do
pai, reflectindo a inclusão de um novo
dono

Paulo Neves Sistemas Operativos 62


A primitiva fork() – Passos II
 O processo filho é colocado no estado
Ready to Run
 Devolve ao pai o ID do processo filho
 Devolve ao filho 0
 Valor de retorno permite a identificação
do processo em execução e separação
do programa

Paulo Neves Sistemas Operativos 63


Mini-teste!
 Explique o que entende por imagem e
bloco de controlo de um processo.
 Explique o que entende por comutação
de modo e as suas vantagens em
relação a comutação de contexto.

Paulo Neves Sistemas Operativos 64


Questões

Paulo Neves
?
Sistemas Operativos 65

You might also like