Buscar

Prévia do material em texto

24/10/2020
1
Sistemas Operacionais –
Processos, Threads, Comunicação entre 
processos, Escalonamentos
Parte 1
FATEC-SCS
Profª MSc. Aletéia
Processo
 O processo:
 pode ser entendido como um programa
em execução, só que seu conceito é mais
abrangente.
 É a estrutura responsável pela
manutenção de todas as informações
necessárias à execução de um programa,
como conteúdo de registradores e
espaço de memória.
1
2
24/10/2020
2
Processo X Programa em execução
 Um programa é uma seqüência de 
instruções. É algo passivo dentro do sistema, 
não altera seu próprio estado.
 O processo altera o seu estado, à medida 
que executa um programa.
 É processo que faz chamadas de sistema ao 
executar os programas.
 O processo pode ser dividido em três 
elementos básico: contexto de hardware, 
software e espaço de endereçamento.
Processo
 Estrutura do Processo 
Programa
Contexto de
Software
Contexto de
Hardware
Espaço de
Endereçamento
3
4
24/10/2020
3
Contexto de hardware
 Constitui-se, basicamente, do 
conteúdo de registradores: 
 program counter (PC),
 stack pointer (SP); e 
 bits de estado 
Contexto de Software
 Especifica características do processo que 
vão influir na execução de um programa, 
como, por exemplo:
 o número máximo de arquivos abertos 
simultaneamente
 ou o tamanho do buffer para operações de E/S.
 Define basicamente três grupos de 
informações sobre um processo: 
 sua identificação, 
 suas quotas e 
 seus privilégios. 
5
6
24/10/2020
4
Espaço de endereçamento
 É a área de memória do processo 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.
Processo
 Características da Estrutura de um Processo 
Programa
Contexto de
Software
prioridade de
execução registrador PC
data/ hora
de criação
tempo de
processador
registrador SP
quotas
privilégios
endereços de memória
principal alocados
registrador
de status
owner (UID)
PID
nome
registradores
gerais
Contexto de
Hardware
Espaço de
Endereçamento
7
8
24/10/2020
5
Tela do Windows 8
Tela do Windows 8
9
10
24/10/2020
6
Tela do Linux: Comando TOP do Linux
Tela do Linux: Comando PS do Linux
11
12
24/10/2020
7
Bloco de controle de processo
 Cada processo é representado no sistema
operacional por um bloco de controle do
processo (Process Control Block – PCB).
 A partir do PCB, o sistema operacional
mantém todas as informações sobre o
processo, como sua identificação,
prioridade, estado corrente, recursos
alocados por ele e informações sobre o
programa em execução.
Bloco de Controle de Processo 
(Process Control Block)
 Informações associadas a cada processo
 Estado do processo 
 Contador de programa 
 Registradores da CPU
 Informação de escalonamento de CPU 
 Informação de gerenciamento de memória 
 Informação contábil 
 Informação de status de E/S 
13
14
24/10/2020
8
Sistemas Operacionais com Java
Silberschatz, Galvin e Gagne (c) 2003
Estado do Processo 
• Conforme um processo é executado, ele muda de 
estado
– novo: O processo está sendo criado
– executando: As instruções estão sendo 
executadas
– esperando: O processo está esperando que 
ocorra algum evento
– pronto: O processo está esperando para ser 
atribuído a um processador
– terminado: O processo terminou sua execução
Sistemas Operacionais com Java
Silberschatz, Galvin e Gagne (c) 2003
Diagrama de Estado do Processo
15
16
24/10/2020
9
Sistemas Operacionais com Java
Silberschatz, Galvin e Gagne (c) 2003
Troca da CPU
de um Processo para Outro
Sistemas Operacionais com Java
Silberschatz, Galvin e Gagne (c) 2003
Troca de Contexto 
• Quando a CPU passa para outro processo, o 
sistema precisa salvar o estado do processo antigo 
e carregar o estado salvo do novo processo
• O tempo da troca de contexto é custo adicional; o 
sistema não realiza qualquer trabalho útil durante 
a troca
• O tempo depende do suporte do hardware
17
18
24/10/2020
10
Mudança de Estado do Processo
 Um processo muda de estado
diversas vezes, durante seu
processamento, em funções 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:
Pronto ---- Execução
 Quando um processo é criado, o 
sistema o coloca em uma lista de 
processos no estado de pronto, onde 
aguarda uma oportunidade para ser 
executado. 
19
20
24/10/2020
11
Execução -- Espera
 Um processo em execução passa para
o estado de espera por eventos
gerados pelo próprio processo, como,
por exemplo, uma operação de
entrada/saída.
Execução - Pronto
 Um processo em execução passa
para o estado de pronto por eventos
gerados pelo sistema, como, por
exemplo, o fim da fatia de tempo
que o processo possui para sua
execução.
21
22
24/10/2020
12
Espera -- Pronto
 Um processo no estado de espera
passa para o estado de pronto
quando a operação solicitada é
atendida ou o recurso esperado é
concedido.
Processo e Subprocesso
 Um processo pode criar outros processos de maneira 
hierárquica;
 Quando um processo (processo pai) cria um outro, 
chamamos o processo criado de subprocesso ou 
processo filho;
 O subprocesso, por sua vez, pode criar outros 
subprocessos;
 Como conseqüência dessa estrutura, caso um processo 
deixe de existir, os subprocessos subordinados são 
eliminados.
23
24
24/10/2020
13
Processo
 Estrutura de Processos e Subprocessos
Processo A
Processo CProcesso B
Processo EProcesso D
Criação de Processo 
 Os processos pai criam processos filhos, que, por sua 
vez, criam outros processos, formando uma árvore de 
processos
 Compartilhamento de recursos
 Pai e filhos compartilham todos os recursos
 Filhos compartilham um subconjunto dos recursos 
do pai
 Execução
 Pai e filhos são executados concorrentemente
 Pai espera até que os filhos terminem
25
26
24/10/2020
14
Processos do Windows
 http://www.answersthatwork.com/
 Processos CPU-bound x I/O-bound 
5/13
(a) CPU-bound
tempo tempo
E/S E/ S
UCP UCP
(b) I/ O-bound
27
28
24/10/2020
15
Tipos de processos
 CPU-BOUND
 Um processo é dito CPU-bound quando passa a 
maior parte do tempo no estado de execução, ou 
seja, utilizando o processador.
 I/O-BOUND
 Um processo é chamado de IO-bound (ligado à 
E/S) quando passa a maior parte do tempo no 
estado de espera, pois realiza um elevado número 
de operações de entrada/saída. 
29