Sistemas Operacionais
Gerenciador de Processos
Gerenciador de processo
Processos
• Um processo é um programa em execução que utiliza recursos,
incluindo tempo de CPU, memória, arquivos e dispositivos de E/S.
• O sistema operacional é responsável pelas seguintes atividades em
conjunto com o gerenciador de processos:
– Criação e exclusão de processos.
– Suspensão e resumo de processos.
– Provisão dos mecanismos de:
• Sincronização de processos
• Comunicação entre processos
• Multiprogramação:
– Pseudoparalelismo: coleção de processos
sendo executados alternadamente na CPU;
Gerenciador de processo
Processos
• Prioridade dos processos
0
– Tempo Real
– Tempo Compartilhado
Tempo
Real
15
15
Prioridade
variável
0
Processos
Processo Pai
Processo Filho
A
Processo Pai e
Filho
B
D
E
C
F
Threads e Processos
• Um processo pode ser composto por várias
threads.
T1
T1
T1
T1
T1
T1
T1
T1
T1
T1
P1
T1
T1
Threads do Windows Explorer
Criação
do thread
Criação
Reinicialização
5
Pronto
Terminado
3
Solicitação
para
execução
1
Espera
Standby
Término da
execução
2
6
4
Execução
1)
2)
3)
4)
5)
6)
Transição
Preempção por prioridade
Espera por um recurso do sistema
Recurso do sistema disponív el
Espera por um ev ento
Ev ento ocorrido
Preempção por tempo ou prioridade
Troca de
contexto
Threads
Estado
Descrição
Pronto (ready)
Indica que o thread aguarda apenas por uma chance
para ser executado (espera pela UCP)
Standby
Thread selecionado para execução e aguarda troca de
contexto. Somente um processo em standby por
processador
Execução (running)
Indica que o processo, de posse da UCP, está sendo
executado
Espera (waiting)
Indica que o processo aguarda por algum evento
(p.ex., operação de E/S)
Transição (transition)
Indica que o processo aguarda por algum recurso do
sistema para poder ser executado.
Terminado
(terminated)
Quando termina sua execução, o thread é colocado no
estado terminado, podendo ser eliminado ou não.
Criando Processos
• Processos precisam ser criados e finalizados
a todo o momento:
– Inicialização do sistema;
– Execução de uma chamada de sistema realizada
por algum processo em execução;
– Requisição de usuário para criar um novo
processo;
– Inicialização de um processo em batch –
mainframes com sistemas em batch;
Criando Processos
• Processos específicos para usuários específicos:
– Leitura de um arquivo;
– Iniciar um programa (linha de comando ou um duplo
clique no mouse);
• Processos com funções específicas que
independem de usuários – chamados de daemons:
– Recepção e envio de emails;
– Serviços de Impressão;
Criando Processos
• UNIX:
– Fork
• Windows:
– CreateProcess
Finalizando Processos
• Condições:
– Término normal (voluntário):
• A tarefa a ser executada é finalizada;
• Chamadas: exit (UNIX) e ExitProcess
(Windows)
– Término com erro (voluntário):
• O processo sendo executado não pode ser
finalizado: gcc filename.c, o arquivo filename.c não
existe;
Finalizando Processos
– Término com erro fatal (involuntário);
• Erro causado por algum bug no programa: Divisão
por 0 (zero);
– Término causado por algum outro processo
(involuntário):
• Kill (UNIX) e TerminateProcess
(Windows);
Escalonamento (RAM)
Programa de usuário 2
Programa de usuário 1
M
E
M
Ó
R
I
A
P
R
I
N
C
I
P
A
L
Programas de
usuário rodam no
modo usuário
Chamada de sistema (Kernel)
4
Procedimentos de
serviço
Rotinas do sistema
operacional rodam no
modo Kernel (ou modo
supervisor)
3
1
2
Tabela de
escalonamento
Escalonamento (tempo)
Escalonamento
PILHA
RAM
Pop
Pop
P3
REGISTRADORES
UNIDADE
DE
CONTRO
A
B
C
D
P
C
I
R
LE
Push
UNIDADE
LÓGICA E
ARITMÉTI
CA
P2
Pop
REGISTRADORES
UNIDADE
DE
CONTRO
A
B
C
D
P
C
I
R
LE
UNIDADE
Push
P1
LÓGICA E
ARITMÉTI
CA
REGISTRADORES
UNIDADE
DE
CONTRO
A
B
C
D
P
C
I
R
LE
Push
UNIDADE
LÓGICA E
ARITMÉTI
CA
Uso da CPU
Troca de Contexto
Uso de I/O
Escalonamento (conceitos)
• Quanto a Troca de Contexto
– Preemptivo
– Não preemptivo
• Quanto a Atividade
– I/O bound
– CPU bound
Download

GerenciadorProcessos_Intro_p1