gerência de processos - ifscmsobral/sop/slides/aula3.pdf · diagrama de fila. gerência de...

34
Gerência de processos Requisitos fundamentais Implementar um modelo de processo. Implementar facilidades para criação e destruição de processos por usuários Alocar recursos a processos Intercalar a execução de um número de processos para maximizar a utilização do processador, mantendo um tempo de resposta razoável

Upload: duongcong

Post on 13-Oct-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Gerência de processos

Requisitos fundamentais– Implementar um modelo de processo.– Implementar facilidades para criação e destruição

de processos por usuários– Alocar recursos a processos– Intercalar a execução de um número de processos

para maximizar a utilização do processador, mantendo um tempo de resposta razoável

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

operacional

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

ou 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 boundPassam 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

operacional 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

EventoOcorre

Dispatch Termina

Time-out

Espera por evento

Gerência de processos

Admissão

Fila de aptos

Despacha

Tempo excedido (timeout)

Espera um evento

LiberaProcessor

Fila de espera

Eventoocorre

Diagrama de fila

Gerência de processos

Escalonamento– Determinação da ordem em que processos alocam

o 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 processosEscalonamentos 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 processosEscalonamentos 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=1N ∑

i=1

N

N−i1 ⋅T i

Gerência de processosEscalonamentos 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 processosEscalonamentos preemptivos

RR (cont.)– quantum deve ser maior

ou igual ao tempo de interação médio (tempo de CPU médio)

Gerência de processosEscalonamentos preemptivos

RR (cont.)– Se quantum for muito curto, aumenta-se o tempo de

execução total:

Gerência de processosEscalonamentos preemptivos

RR (cont.) Casos limites:

– q -> 0 : Cada um dos N processos enxerga um processador com 1/N de sua capacidadeNa verdade, overhead do chaveamento de contexto

domina o processamento

– q -> oo : Escalonamento degenera para FIFO

Gerência de processosEscalonamentos 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 processosEscalonamentos preemptivos

Com prioridades (cont.)– Considerado o mais genérico– Qualquer outro algoritmo pode ser implementado

usando prioridadesRR e FIFO : todos processos com igual prioridade

– Prioridades podemvariar com o tempo

Podem se adaptar ao comportamento dos processos

Gerência de processosEscalonamentos 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 processosEscalonamentos 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 processosOperaçõ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 processosOperações sobre processos (Linux)

Proceso Linux na memória

Gerência de processosOperações sobre processos (Linux)

Listagem de processos com comando ps

Gerência de processosOperaçõ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 da chamada fork em que houve a duplicação

Gerência de processosOperações sobre processos (Linux)

Processos no Linux foram uma hierarquia: