Sistemas Operacionais - Prof. Edilberto Silva

Propaganda
Sistemas
Operacionais
Aula 7,8
Processos
Gerência de Processos
Prof.: Edilberto M. Silva
http://www.edilms.eti.br
Baseado no material disponibilizado por:
SO - Prof. Edilberto Silva
Prof. José Juan Espantoso
Sumário
Conceito de Processo
• Escalonamento de Processos
• Operações com Processos
• Processos Cooperativos
• Comunicação entre Processos
•
SO - Prof. Edilberto Silva
2
Conceito de Processo
Quando os sistemas passaram a ser multiprogramados
os programas não puderam mais ter controle total e acesso
a todos os recursos do sistema;
Necessidade de maior controle e compartilhamento
Um processo é:
- Um programa em execução;
- Unidade de trabalho em um sistema de tempo
compartilhado (em alguns casos há uma unidade
menor, denominada thread);
- Todas as atividades, desde as do sistema
operacional até as do usuário são encapsuladas em
um processo.
SO - Prof. Edilberto Silva
3
Estados de Processo
Durante a execução de um processo, ele altera seu estado:
– Novo (new): O processo está sendo criado.
– Executando (running): instruções estão sendo
executadas.
– Esperando (waiting): O processo está esperando algum
evento acontecer.
– Pronto (ready): O processo está esperando ser associado
a um processador.
– Terminado (terminated): O processo terminou sua
execução.
SO - Prof. Edilberto Silva
4
Diagrama de Estados de Processos
SO - Prof. Edilberto Silva
5
Processos
Modelo de Processo
Multiprogramação de 4 programas
Modelo conceitual de 4 processos independentes e
sequenciais
Apenas um programa ativo em um dado instante
SO - Prof. Edilberto Silva
6
Criação de Processos
Principais eventos que causam a criação de
processos
- Inicialização do sistema
- Execução de um sistema de criação de processos (ex.
Shell)
- Usuário requesita a criação de um novo processo
- Inicialização de um arquivo de lote
SO - Prof. Edilberto Silva
7
Terminação de Processos
- Término normal (voluntário)
- Término com erro (voluntário)
- Erro Fatal (involuntário)
- Morto por outro processo (involuntário)
Processo executa última declaração e pede ao sistema
operacional para decidir (exit).
- Recursos do processo são desalocados pelo sistema
operacional.
Algumas situações o pai pode terminar a execução do processo
filho (abort):
- Filho se excedeu alocando recursos.
- Tarefa delegada ao filho não é mais necessária.
- Pai está terminando.
SO - Prof. Edilberto Silva
8
Hierarquia de Processos
Processos pai criam processos filhos, e processos
filhos criam sou próprios filhos
Formando uma hierarquia
Em UNIX chama-se isto de "process group"
Windows não possui conceito de hierarquia de
processos
Todos processos são criados iguais
SO - Prof. Edilberto Silva
9
Estado dos Processos (1)
 Estados possíveis dos processos
 running - rodando
 blocked - bloquiado
 ready - pronto
 Transições entre estados
SO - Prof. Edilberto Silva
10
Estado dos Processos (2)
Camada mais baixa de SO estruturados-aprocesso
Tratamento de interrupções, escalonamento
(scheduling)
Acima desta camada estão processos sequenciais
SO - Prof. Edilberto Silva
11
Mudanças de Estado
Mudanças de estado do processo
E s t a d o d e E x e c u ç ã o
d
b
a
c
E s t a d o d e E s p e r a
SO - Prof. Edilberto Silva
E s t a d o d e P r o n t o
12
Espaço de Endereçamento
Estrutura de um processo
nom e
PID
o w n e r (U I D )
r e g istr a d o r e s
g e r a is
p r io r id a d e d e
e x e cu ç ã o
d a ta / h o ra
d e cr ia ç ã o
r e g istr a d o r P C
C o n te x t o d e
S o f tw a r e
C o n te x t o d e
H a rd w a re
r e g istr a d o r S P
te m p o d e
p r o ce ssa d o r
q u o ta s
Pro g ra m a
p r iv ilé g io s
r e g istr a d o r
d e sta t u s
E s p a ç o d e
E n d e r e ç a m e n to
e n d e r e ç o s d e m e m ó r ia
p r in cip a l a lo ca d o s
SO - Prof. Edilberto Silva
13
Implementação de Processos (1)
Campos de uma entrada na tabela de processos
SO - Prof. Edilberto Silva
14
Implementação de Processos (2)
Esqueleto do que a camada mais baixa do SO faz
quando uma interrupção ocorre
SO - Prof. Edilberto Silva
15
Process Control Block (PCB)
É a informação associada a cada processo.Contém:
• Estado do Processo.
• Contador .
• Informações de escalonamento da CPU.
• Informação de Gerenciamento de memória.
• Informação para Contabilidade.
• Informações do status de E/S.
SO - Prof. Edilberto Silva
16
Process Control Block (PCB)
SO - Prof. Edilberto Silva
17
Troca de CPU entre Processos
SO - Prof. Edilberto Silva
18
Filas de Escalonamento de Processos
• Fila de processos – conjunto de processos no
sistema.
• Fila de Processos prontos (Ready queue) –
conjunto de todos os processos residentes na
memória principal, prontos e esperando para
executar.
• Fila de dispositivos – conjunto dos processos
esperando por um dispositivo de E/S.
Existe uma migração de processos entre as várias
filas.
SO - Prof. Edilberto Silva
19
Fila de Processos Pronto e Várias Filas de E/S
SO - Prof. Edilberto Silva
20
Escalonamento de Processos e CPU
Escalonador de processos (Long-term scheduler) – seleciona
quais processos devem ser trazidos para a fila de processos
prontos.
Escalonador da CPU (Short-term scheduler) – seleciona qual
processo deve ser executados a seguir e aloca CPU para ele.
O escalonador de processos controla o grau de
multiprogramação.
Processos podem ser descritos como:
– Processos com E/S predominante (I/O-bound process) –
gasta mais tempo realizando E/S do que computando, muitos
ciclos curtos de CPU.
– Processos com uso de CPU predominante (CPU-bound
process) – gasta mais tempo realizando computações; poucos
ciclos longos de CPU.
SO - Prof. Edilberto Silva
21
Troca de Contexto
Quando CPU alterna para outro processo, o sistema
deve salvar o estado do processo deixando o
processador e carregar o estado anteriormente salvo
do processo novo.
Tempo de Troca de Contexto é dependente de suporte
em hardware.
Criação de Processos
Processo pai cria processo filho, o qual, por sua vez,
pode criar outros processos, formando uma árvore
de processos.
Compartilhamento de Recursos
– Pai e filho compartilham todos os recursos.
– Filho compartilha um subconjunto dos recursos do
pai.
SO - Prof. Edilberto Silva
22
Uma Árvore de Processos em um
Sistema UNIX Típico.
SO - Prof. Edilberto Silva
23
Processos Cooperativos
Processos Independentes não podem afetar ou ser
afetados pela execução de outro processo.
Processos Cooperantes podem afetar ou ser afetados
pela execução de outro processo.
Vantagens da cooperação entre processos:
– Compartilhamento de Informações.
– Aumento na velocidade da computação.
– Modularidade.
SO - Prof. Edilberto Silva
24
Comunicação entre Processos
(Interproccess Communication)
É o mecanismo para processos se comunicarem e
sincronizarem suas ações.
Sistema de mensagens – processos se comunicam uns
com os outros sem utilização de variáveis
compartilhadas.
O suporte a IPC provê duas operações uma para envio
outra para recebimento:
– send (mensagem) – tamanho da mensagem fixo ou
variável
– receive (mensagem)
Se dois processos P1 e P2 querem se comunicar, eles
necessitam:
– Estabelecer um link de comunicação entre eles.
– Trocar mensagens via send/receive.
SO - Prof. Edilberto Silva
25
Comunicação Direta
Processos devem nomear o outro explicitamente:
– send (P1, mensagem) – envia uma mensagem ao
processo P
– receive (P2, mensagem) – recebe uma mensagem do
processo P2
Propriedades dos links de comunicação
– Links são estabelecidos automaticamente.
– Um link é associado com exatamente um par de
processos comunicantes.
SO - Prof. Edilberto Silva
26
Comunicação Indireta
Mensagens são dirigidas e recebidas de caixas postais
através de mailboxes (também chamadas de portas).
Propriedades do link de comunicação:
– Um link pode estar associado com muitos
processos.
Operações
– Criar uma nova mailbox.
– Enviar e receber mensagens através da mailbox.
– Destruir uma mailbox.
SO - Prof. Edilberto Silva
27
Modelos de Processo
Modelo de Processo:
O Sistema Operacional gerencia os processos através de
system calls, que realizam operações como criação,
eliminação e suspensão;
O processo pode ser dividido em três elementos básicos:
• Contexto de Hardware;
• Contexto de Software;
• Espaço de Endereçamento
SO - Prof. Edilberto Silva
28
Estrutura do processo
C o n te x t o d e
S o f tw a r e
C o n te x t o d e
H a rd w a re
Pro g ra m a
E s p a ç o d e
E n d e r e ç a m e n to
SO - Prof. Edilberto Silva
29
Contexto de Hardware
Contexto de Hardware
O contexto de hardware constituí-se, basicamente, do
conteúdo de registradores (PC, SP, etc.);
Quando um processo está em execução, o seu contexto de
hardware está armazenado nos registradores do
processador;
O contexto de hardware é fundamental p/ a
implementação dos sistemas de tempo compartilhado,
onde os processos se revezam na utilização do
processador.
SO - Prof. Edilberto Silva
30
o
d
n
ta
cu
xe
e
ss
SO - Prof. Edilberto Silva
A
o
o
d
s re
o
d
a
tr
g
e
is
ce
r
ro
P
a
g
e
B
o
ss
ce
ro
P
o
d
s re
o
d
a
tr
is
g
e
r
a
lv
a
S
o
d
n
ta
cu
xe
e
B
o
ss
ce
ro
P
o
d
s re
o
d
a
tr
is
g
e
r
a
g
e
rr
a
C
A
o
ss
ce
ro
P
o
d
s re
o
d
a
tr
is
g
e
r
a
lv
a
S
B
o
ss
ce
ro
P
A
o
ss
ce
ro
P
l
a
n
o
ci
ra
e
p
O
a
m
te
is
S
Mudança de
contexto
rr
a
C
o
d
n
ta
cu
xe
e
Contexto de Hardware
31
Contexto de Software
Contexto de Software
O contexto de software especifica características do
processo que vão influir na execução de um programa;
Por exemplo, número máximo de arquivos abertos
simultaneamente ou o tamanho do buffer p/ operações de
E/S;
O contexto de software define basicamente três grupos de
informação sobre um processo: sua identificação, suas
quotas e seus privilégios.
SO - Prof. Edilberto Silva
32
Contexto de Software
Contexto de Software
O contexto de software especifica características do
processo que vão influir na execução de um programa;
Por exemplo, número máximo de arquivos abertos
simultaneamente ou o tamanho do buffer p/ operações de
E/S;
O contexto de software define basicamente três grupos de
informação sobre um processo: sua identificação, suas
quotas e seus privilégios.
SO - Prof. Edilberto Silva
33
Contexto de Software
Contexto de Software
 Identificação:
• Cada processo criado pelo sistema recebe uma identificação
única (PID – Process Identification), representada por um
número;
 Quotas:
• As quotas são os limites de cada recurso do sistema que um
processo pode alocar. Caso uma quota seja insuficiente, o
processo deverá ser executado lentamente ou mesmo não ser
executado;
 Privilégios:
• Os privilégios definem o que o processo pode ou não fazer
em relação ao sistema e aos outros processos.
SO - Prof. Edilberto Silva
34
Endereçamento
Contexto de Endereçamento
É a área de memória onde o programa será executado,
além do espaço para os dados utilizados por ele;
Cada processo possui seu próprio espaço de
endereçamento, que deve ser protegido do acesso dos
demais processos.
SO - Prof. Edilberto Silva
35
Processos Independentes, Subprocessos e Threads
Estrutura de processos e subprocessos
Pro ce sso A
Pro ce sso C
Pro ce sso B
Pro ce sso D
Pro ce sso E
SO - Prof. Edilberto Silva
36
Processos Independentes, Subprocessos e Threads
Processo multithread
C o n te x t o
d e h a r d w a r e
C o n te x t o
d e h a r d w a r e
T h re a d 1
T h re a d 2
T h re a d 3
C o n te x t o d e
so f tw a r e
C o n te x t o
d e h a r d w a r e
E s p a ç o d e
e n d e r e ç a m e n to
SO - Prof. Edilberto Silva
37
Processos Foreground e Background
Processos foreground e background
(a ) P r o c e s s o F o r e g r o u n d
e n tra d a
s a íd a
te r m in a l
te r m in a l
(b ) P r o c e s s o B a c k g r o u n d
e n tra d a
s a íd a
a r q u iv o
d e e n tr a d a
a r q u iv o
d e s a íd a
SO - Prof. Edilberto Silva
38
Processo Foreground e Background
Pipe
– Um pipe é um pseudo-arquivo que pode ser usado
para conectar dois processos;
– Quando o processo A desejar enviar dados ao
processo B, ele escreve no pipe como se este fosse
um arquivo de saída;
– Já o processo B lê os dados, tratando o pipe como
um arquivo de entrada.
SO - Prof. Edilberto Silva
39
Processo Foreground e Background
Pipe
s a íd a d o
Pro ce sso A
e n tra d a d o
Pro ce sso A
s a íd a d o
Pro ce sso B
e n tra d a d o
Pro ce sso B
P r o c e s s o A
SO - Prof. Edilberto Silva
P r o c e s s o B
40
Processos do Sistema
Auditoria e segurança
Serviços de rede
Contabilização do uso de recursos
Contabilização de erros
Gerência de impressão
Gerência de jobs batch
Temporização
Comunicação de eventos
Interface de comandos (shell)
SO - Prof. Edilberto Silva
41
Processos CPU e IO Bound
Processos CPU x IO Bound
E/S
E/S
U C P
U C P
( a ) C P U ­ b o u n d
te m p o
SO - Prof. Edilberto Silva
te m p o
( b ) I / O ­ b o u n d
42
in te r r u p ç ã o
s in a l
S is t e m a O p e r a c io n a l
[c tr l­ C ]
Pro ce sso
Sinais, interrupções e
exceções
Pro ce sso
Pro ce sso
S in a is
S is t e m a O p e r a c io n a l
In te rru p çõ e s
Exceções
H a rd w a re
SO - Prof. Edilberto Silva
43
Threads
Uma thread (ou um processo leve) é uma unidade básica
de utilização da CPU; ela consiste de:
– Contador de programas
– Conjunto de registradores
– Espaço de pilha
Uma thread compartilha com seus pares (outras threads
vinculadas):
– Seção de código
– Seção de dados
– Recursos do sistema operacional
Coletivamente conhecida como uma tarefa (task).
SO - Prof. Edilberto Silva
44
Download