1. Processos e threads 1
Arquitetura de Sistemas
Operacionais
Gerenciamento de Processos
Introdução
2. Processos e threads 2
Sumário
• Introdução
• Tipos de Processos
• Classificação de processos
• Bloco de controle de processo
• Controle sobre os processos
• Estados do processo
• Troca de estado do processo
• Escalonamento
• Tipos de escalonamento
3. Processos e threads 3
O processador é projetado apenas para executar
instruções, não sendo capaz de distinguir qual
programa se encontra em execução.
UCP
Unidade
De
Controle
Analisador de
instruções
Registradores
Unidade Lógica
E Aritmética
Memória Principal
Entrada Saída
instrução
Executa a
instrução
Modelo de Arquitetura da Máquina de von Neumann
Introdução
4. Processos e threads 4
Usuário
• Neste tipo de sistema cada usuário é
associado a um processo e, ele tem
a impressão de possuir o
processador e todos os demais
recursos reservados exclusivamente
para seu uso quando está
executando um programa.
5. Processos e threads 5
O que é um Processo?
• Elemento ativo do sistema
• Um programa em execução o qual é
constituído por uma seqüência de
instruções, um conjunto de dados e
um registro descritor.
6. Processos e threads 6
Processo
Um processo é definido como o ambiente onde o
programa é executado.
Este ambiente, além das informações sobre a
execução, possui também o quanto de recursos do
sistema cada programa pode utilizar.
Recursos :
• Espaço de endereçamento
• Tempo do processador
• Área em disco
Na maioria das vezes processo é definido como “um
programa em execução”
7. Processos e threads 7
Programa
É uma seqüência de instruções.
É algo passivo dentro do sistema.
Ele não altera o seu próprio estado.
Processo
É um elemento ativo.
O processo altera seu estado, à medida que
executa um programa.
É o processo que faz chamadas de sistema,
ao executar os programas.
8. Processos e threads 8
nome
PIDOwner (UID)
Prioridade de
execução
Data/hora de
criação
Tempo de
processador
quotas
privilégios
Registradores
gerais
Registrador
PC
Registrador
SP
Registrador
de status
Endereços de memória principal alocados
Espaço de
Endereçamento
Programa
9. Processos e threads 9
Tipos de Processos
• Processos de usuário
– executam as tarefas programadas pelo
usuário
• Processos de sistema
– executam funções de gerenciamento de
recursos e gerenciamento de processos do
usuário.
10. Processos e threads 10
Classificação de Processos
• Processos Independentes
– sua execução não afete e não seja afetada
pela execução de um outro processo
• Processos Cooperantes
– interage (troca informações) com outros
processos presentes no sistema
11. Processos e threads 11
Bloco de Controle de Processo
• É uma estrutura de dados que representa
e contém informações associadas com o
processo
– 1. Nome do processo.
– 2.Estado do processador (contador de
programa, conteúdo dos registradores,
máscaras de interrupções etc.).
– 3. Estado do processo.
– 4. Prioridade relativa para a aquisição de
recursos.
– 5. Endereço da memória virtual.
– 6. Informação sobre recursos.
– 7. Contadores (tempo de cpu, quantidade de
memória, volume de I/O etc.).
12. Processos e threads 12
Nome do Processo
Estado do Processo
Ponteiros
Lista de Arquivos abertos
Limites da memória
Registradores
13. Processos e threads 13
Controle sobre os Processos
• Para que o sistema operacional mantenha o controle sobre
os diferentes processos e os diferentes estados em que
cada processo pode estar, o sistema utiliza estruturas de
listas encadeadas.
Lista de
Prontos
Lista de
Espera
: : : : : : : : :...........
.
BCP#
5
BCP#
1
BCP#
3
: : : : : : : : :...........
.
BCP#
2
BCP#
4
BCP#
6
14. Processos e threads 14
Estados do Processo
• Execução (Running): Um processo está no
estado de execução quando ele está sendo
executado pelo processador.
• Pronto (Ready): O processo encontra-se pronto
para a execução.
• Bloqueado(Wait): Um processo está no estado
bloqueado quando aguarda a ocorrência de
algum evento externo para poder prosseguir.
• Indefinido: Um processo estará neste estado
antes de ser criado ou depois de ser destruído.
15. Processos e threads 15
Troca de Estado do Processo
Bloqueado
Execução
Pronto
Indefinido
16. Processos e threads 16
Escalonamento
• Escalonamento, ou scheduling é o
procedimento pelo qual o SO
estabelece a ordem na escolha dos
processos para a execução, dentre os
vários que concorrem pela utilização do
processador
• Existem 3 tipos de escalonadores:
– Escalonador de longo prazo
– Escalonador de curto prazo
– Escalonador de médio prazo
17. Processos e threads 17
Tipos de Escalonador
• Escalonador de Longo Prazo
– Seleciona os processos do disco para o
processamento na memória
– Controla o grau de multiprogramação
– Possui uma execução menos freqüente
• Escalonador de Curto Prazo
– Seleciona os processos da memória (fila dos
prontos) para a CPU
– Possui uma execução mais freqüente
– Deverá ser bastante rápido para não correr o
risco de se tornar o processo que mais
consome tempo de CPU
18. Processos e threads 18
Tipos de Escalonador
Fila de Prontos
Fila de Espera
HD
FimCurto-prazoLongo-prazo
CPU
I/O
19. Processos e threads 19
Tipos de Escalonador
• Escalonador de médio-prazo
Fila de Prontos
Fila de Prontos
HD
Fim
Swap outSwap in
CPU
I/O
Processos parcialmente
executados
disco
20. Processos e threads 20
Escalonamento de processos
• Quando um ou mais processos estão
prontos para serem executados, o
sistema operacional de decidir qual
deles vai ser executado primeiro.
• A parte do sistema operacional
responsável por essa decisão é
chamado de escalonador, e o
algoritmo usado para tal é chamado
de algoritmo de escalonamento.
21. Processos e threads 21
Critérios de escalonamento
1. Justiça: fazer com que cada
processo ganhe seu tempo justo de
CPU;
2. Eficiência: manter a CPU ocupada
100% do tempo (se houver
demanda)
3. Tempo de resposta: minimizar o
tempo de resposta para os usuários
interativos;
4. Tempo de Turnaround: minimizar o
tempo que o usuário batch devem
esperar pelo resultado
5. Throughput: maximizar o número
de jobs processados por unidade de
tempo.
22. Processos e threads 22
Tipos de Escalonamento
• Escalonamento Não-Preemptivo
– O processador, uma vez alocado a um
processo, só será liberado quando o processo
concluir a sua execução ou tiver a sua
execução bloqueada devido à espera pela
execução de uma operação de entrada/saída.
• Escalonamento Preemptivo
– Os algoritmos de escalonamento ditos
preemptivos apresentam como principal
característica o fato da execução de um dado
processo poder ser interrompida mesmo que o
processo não tenha concluído ou tenha sido
bloqueado.
23. Processos e threads 23
Tipos de Escalonamento
• Escalonamento Não-Preemptivo
– O processador, uma vez alocado a um
processo, só será liberado quando o processo
concluir a sua execução ou tiver a sua
execução bloqueada devido à espera pela
execução de uma operação de entrada/saída.
• Escalonamento Preemptivo
– Os algoritmos de escalonamento ditos
preemptivos apresentam como principal
característica o fato da execução de um dado
processo poder ser interrompida mesmo que o
processo não tenha concluído ou tenha sido
bloqueado.
24. Processos e threads 24
Colaborações?
Críticas??
Dúvidas???
Sugestões????
Xingamentos?????