Gerncia de processos Requisitos fundamentais Implementar um modelo - - PowerPoint PPT Presentation
Gerncia de processos Requisitos fundamentais Implementar um modelo - - PowerPoint PPT Presentation
Gerncia de processos Requisitos fundamentais Implementar um modelo de processo. Implementar facilidades para criao e destruio de processos por usurios Alocar recursos a processos Intercalar a execuo de um nmero
Gerência de processos
Processo:programa em execução Formado por:
– Instruções – Recursos (ex: memória, arquivos abertos) – Informação de controle interna ao sistema
- peracional
O arquivo de programa contém informações
necessárias para sua execução
Gerência de processos
Processo não é o mesmo que programa ! Programa é como uma receita, com instruções
para se resolver um problema
Processo é como alguém seguindo a receita Processo precisa de recursos computacionais
para trabalhar: memória, arquivos, tempo de processador, ...
Programa não trabalha: fica passivamente
guardado em um arquivo
Gerência de processos
Exemplo de
execução a partir de um arquivo de programa
Gerência de processos
SO pode ser monoprogramado: apenas um processo executa por vez (começo ao fim):
Gerência de processos
... ou multiprogramado (mais de um processo
pode executar ao mesmo tempo):
Gerência de processos
Por que existe multiprogramação ?
Processos alternam entre uso do processador
- u espera por E/S:
Gerência de processos
Por que existe multiprogramação ?
Processos podem ser classificados quanto ao
uso do processador:
– Processos I/O bound
Passam mais tempo em estado de espera que usando de
fato o processador
– Processos CPU bound
Passam a maior parte do tempo usando de fato o
processador
Gerência de processos
Por que existe multiprogramação ? Um histograma dos tempos de execução
Gerência de processos
Por que existe multiprogramação ?
Um processo típico passa mais tempo em
espera que processando
Pode-se aproveitar os tempos de espera para
executar outros processos
Assim se aproveita melhor o tempo de
processador disponível !
Gerência de processos
Multiprogramação
– Capacidade do sistema
- peracional de manter
vários processos ativos ao mesmo tempo
– Timesharing: ilusão de
que os processos executam ao mesmo tempo
Gerência de processos
Multiprogramação no Linux
– Listagem dos processos que mais usam
processador
Gerência de processos
Processos usam recursos do computador
Gerência de processos
Como o SO controla os processos existentes ?
– SO precisa decidir que processo deve usar o
processador
– Somente processos aptos a executar podem usar o
processador
– Processo apto: que não está esperando por E/S
Gerência de processos
Modelo de cinco estados
Novo Apto Rodando Terminado Esperando Entra Evento Ocorre Dispatch Termina Time-out Espera por evento
Gerência de processos
Admissão Fila de aptos Despacha Tempo excedido (timeout) Espera um evento Libera Processor Fila de espera Evento
- corre
Diagrama de fila
Gerência de processos
Escalonamento
– Determinação da ordem em que processos alocam
- processador
– SO usa algum critério para escolher um processo
apto para rodar
– SO pode também tirar o processador de um
processo que estiver rodando
Gerência de processos
Escalonamento
Escalonamento não-preemptivo
– Processo só perde o processador se terminar ou
entrar em estado de espera
Escalonamento preemptivo
– Sistema operacional pode retomar o processador
mesmo contra a vontade do processo
Gerência de processos
Critérios para um bom escalonamento
– Eficiência: ocupação do processador – Justiça: todos os processos têm chance de
executar em um ciclo de escalonamento
– Tempo de resposta: tempo entre a ocorrência de
um evento e a reativação do processo que o aguarda (IMPORTANTE !)
– Throughput: número de processos concluídos por
unidade de tempo
Gerência de processos Escalonamentos não-preemptivos
FIFO (First In First Out) ou FCFS (First Come
First Served)
– Primeiro que entra é o primeiro que sai da fila – Ex: Processos P1, P2 e P3 têm tempo de CPU de
24, 3 e 3 unidades de tempo respectivamente, e chegam nesta ordem.
Gerência de processos Escalonamentos não-preemptivos
FIFO (cont.)
– Tempo de execução médio: – Minimização desse tempo: Ti < Ti+1 – FIFO é muito simples, mas não atende os requisitos
de bom escalonamento (por que ?)
T=1 N ∑
i=1 N
N −i1⋅T i
Gerência de processos Escalonamentos preemptivos
RR (Round Robin)
– Cada processo usa
a CPU por até 1 quantum de tempo por ciclo
– Fila de aptos segue
FIFO
Gerência de processos Escalonamentos preemptivos
RR (cont.)
– quantum deve ser maior
- u igual ao tempo de
interação médio (tempo de CPU médio)
Gerência de processos Escalonamentos preemptivos
RR (cont.)
– Se quantum for muito curto, aumenta-se o tempo de
execução total:
Gerência de processos Escalonamentos preemptivos
RR (cont.)
Casos limites:
– q -> 0 : Cada um dos N processos enxerga um
processador com 1/N de sua capacidade
Na verdade, overhead do chaveamento de contexto
domina o processamento
– q -> oo : Escalonamento degenera para FIFO
Gerência de processos Escalonamentos preemptivos
Com prioridades
– Cada processo possui uma prioridade (um número
inteiro)
– A fila de aptos é ordenada de acordo com as
prioridades
Gerência de processos Escalonamentos preemptivos
Com prioridades (cont.)
– Considerado o mais genérico – Qualquer outro algoritmo pode ser implementado
usando prioridades
RR e FIFO : todos processos com igual prioridade
– Prioridades podemvariar com o tempo
Podem se adaptar ao comportamento dos processos
Gerência de processos Escalonamentos preemptivos
Com prioridades (cont.)
– Prioridades dinâmicas: o que aconteceria se o
histórico de uso do processador fosse usado como prioridade ?
Ex: prioridade = tempo de uso / tempo total
– Que tipo de processo seria priorizado com
prioridades assim ?
– Que critérios de bom escalonamento seriam
respeitados com isto ? E quais não seriam ?
Gerência de processos Escalonamentos preemptivos
Com prioridades (cont.)
– Muitos SO usam prioridades dinâmicas, dando
maior prioridade para processos I/O bound
– Ex: Linux, Windows Xp/Vista, Sun Solaris, MacOS
X, ...
– Com isto, priorizam processos interativos – Porém, o que dizer de processos que processam
streams multimedia ?
Ex: MP3 player, Video player, ...
Gerência de processos Operações sobre processos (Linux)
Descrição de processos
– Processos possuem um ID único (PID) – Possuem um usuário dono (UID) e um usuário
efetivo (EUID), assim como grupo dono (GID) e grupo efetivo (EGID)
– Prioridade base (nice) pode ser alterada – Toda a memória e objetos de sua posse estão
protegidos de outros processos
Gerência de processos Operações sobre processos (Linux)
Proceso Linux na
memória
Gerência de processos Operações sobre processos (Linux)
Listagem de processos com comando ps
Gerência de processos Operações sobre processos (Linux)
Criação de processos:
– Um novo processo é idêntico ao processo que o criou – Processo filho compartilha código executável com o
processo pai
– Filho possui mesmos atributos que processo pai (ex:
UID, GID, prioridade,...)
– Toda a memória do pai é copiada para o filho – Processo filho começa a executar do ponto exato dentro