Вы находитесь на странице: 1из 61

Gerenciamento de processos

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Plo Universitrio de Rio das Ostras - PURO

Conceitos B Bsicos
Mxima utilizao da CPU obtida com a multiprogramao; Ciclo do burst de CPU e E/S A execuo de um processo consiste em um ciclo de execuo da CPU e espera por E/S; Distribuio dos bursts de CPU de um ou mais processos ao longo do tempo;

Processos
Multiprogramao:
Pseudoparalelismo: coleo de processos sendo executados alternadamente na CPU;

Um processo caracterizado por um programa em execuo, mas existe uma diferena sutil entre processo e programa:
Um processo pode ser composto por vrios programas, dados de entrada, dados de sada e um estado (executando, bloqueado, pronto)

Alternando a Sequncia de Bursts de CPU e E/S

Histograma dos tempos de burst da CPU

Criando Processos
Processos precisam ser criados e finalizados a todo o momento:
Na inicializao do sistema; Na execuo de uma chamada ao sistema de criao de processo realizada por algum processo em execuo; Na requisio de usurio para criar um novo processo; Na inicializao de um processo em batch (em mainframes com sistemas de batch).

Criando Processos
Processos podem ser:
Especficos para usurios especficos:
Leitura de um arquivo; Iniciar um programa (linha de comando ou um duplo clique no mouse);

Com funes especficas, que independem de usurios, que so criados pelo sistema operacional e que so processados em segundo plano (daemons):
Recepo e envio de emails; Servios de Impresso;

Criando Processos
UNIX:
Fork; Cria um processo idntico (filho) ao processo que a chamou (pai), possuindo a mesma imagem de memria, as mesmas cadeias de caracteres no ambiente e os mesmos arquivos abertos; Depois, o processo filho executa uma chamada para mudar sua imagem de memria e executar um novo programa.

Windows:
CreateProcess; Uma nica funo trata tanto do processo de criao quanto da carga do programa correto no novo processo.

Criando Processos
Exemplo UNIX:
Processo init: gera vrios processos filhos para atender os vrios terminais que existem no sistema;

Outros processos so gerados nos terminais


9

Finalizando Processos
Condies:
Trmino normal (voluntrio):
A tarefa a ser executada finalizada; Chamadas: exit (UNIX) e ExitProcess (Windows).

Trmino com erro (voluntrio):


O processo sendo executado no pode ser finalizado, por exemplo, o comando gcc filename.c resultar em erro, caso o arquivo filename.c no exista;

10

Finalizando Processos
Condies (continuao):
Trmino com erro fatal (involuntrio);
Erro causado por algum erro no programa (bug): Diviso por 0 (zero); Referncia memria inexistente ou no pertencente ao processo; Execuo de uma instruo ilegal;

Trmino causado por algum outro processo (involuntrio):


Kill (UNIX) e TerminateProcess (Windows);

11

Estados de Processos
Um processo sendo executado no pode continuar sua execuo, pois precisa de algum evento (E/S ou semforo) para continuar;

Trs estado bsicos

Executando 1 3 4 2

Bloqueado

Pronto

12

Estados de Processos
Um processo bloqueado de duas maneiras: chamada ao sistema: block ou pause; se no h entradas disponveis para que o processo continue sua execuo;

Executando 1 3 4 2

Bloqueado

Pronto

13

Estados de Processos

Executando 1 3 4

As transies 2 e 3 ocorrem durante o escalonamento de processos: o tempo destinado quele processo acabou e outro processo colocado no processador;

Bloqueado

Pronto

14

Estados de Processos
Executando 1 3 4 2

Bloqueado

Pronto

A transio 4 ocorre quando o evento esperado pelo processo bloqueado ocorre: se o processador est parado, o processo executado imediatamente (2); se o processador est ocupado, o processo deve esperar sua vez;
15

Processos
Processos CPU-bound (orientados CPU): processos que utilizam muito o processador;
Tempo de execuo definido pelos ciclos de processador;

Processos I/O-bound (orientados E/S): processos que realizam muito E/S;


Tempo de execuo definido pela durao das operaes de E/S;

IDEAL: existir um balanceamento entre processos CPU-bound e I/O-bound;

16

Escalonador de Processos
Processos 0 1

...

n-1 n

Escalonador de Processos

Nvel mais baixo do SO; Manipulao de interrupes e processos;

17

Implementao de Processos
Tabela de Processos:
Cada processo possui uma entrada; Cada entrada possui um ponteiro para o bloco de controle de processo (BCP) ou descritor de processo; BCP possui todas as informaes do processo contextos de hardware, software, endereo de memria, etc.;

18

Implementao de Processos
Tabela de processos BCP P1

BCP P2 ... ... BCP Pn

19

Implementao de Processos

Algumas informaes do BCP


20

Escalonamento de Processos
O escalonador de processos responsvel por escolher o processo que ser executado pela CPU; O escalonamento realizado com o auxlio do hardware; O escalonador deve se preocupar com a eficincia da CPU, pois o chaveamento de processos complexo e custoso (afeta desempenho do sistema e satisfao do usurio); O escalonador de processo um processo que deve ser executado quando da mudana de contexto (troca de processo);
21

Escalonamento de Processos
Situaes nas quais escalonamento necessrio: Um novo processo criado; Um processo terminou sua execuo e um processo pronto deve ser executado; Quando um processo bloqueado (semforo, dependncia de E/S), outro deve ser executado; Quando uma interrupo de E/S ocorre o escalonador deve decidir por: executar o processo que estava esperando esse evento; continuar executando o processo que j estava sendo executado ou executar um terceiro processo que esteja pronto para ser executado;

22

Escalonamento de Processos
Hardware de relgio fornece interrupes de relgio e a deciso do escalonamento pode ser tomada a cada interrupo ou a cada k interrupes; Algoritmos de escalonamento podem ser divididos em duas categorias dependendo de como essas interrupes so tratadas:
Preemptivo: escolhe um processo e o deixa executando por um tempo mximo; No-preemptivo: estratgia de permitir que o processo que est sendo executado continue sendo executado at ser bloqueado por alguma razo (semforos, operaes de E/S-interrupo) ou que libere a CPU voluntariamente;

23

Escalonamento de Processos
Mudana de Contexto:
Overhead de tempo; Tarefa cara:
Salvar as informaes do processo que est deixando a CPU em seu BCP na CPU contedo dos registradores; Carregar as informaes do processo que ser colocado copiar do BCP o contedo dos registradores;

24

Troca de Contexto entre processos

25

Latncia de Despacho

26

Escalonamento de Processos
Antes da Mudana de Contexto
BCP-P2 PC = 0BF4h PID = 2 Estado = pronto Prximo processo PC = 076Fh
Processo j executou algumas instrues
27

BCP-P4 PC = 074Fh PID = 4 Estado = executando

CPU

Escalonamento de Processos
Depois da Mudana de Contexto
BCP-P2 PC = 0BF4h PID = 2 Estado = executando
Salva o contexto no BCP

BCP-P4 PC = 076Fh PID = 4 Estado = pronto

PC = 0BF4h

CPU

28

Escalonamento de Processos
Categorias de Ambientes:
Sistemas em Batch: usurios no esperam por respostas rpidas; algoritmos no-preemptivos ou preemptivos com longo intervalo de tempo; Sistemas Interativos: interao constante do usurio; algoritmos preemptivos; Processo interativo comando e executa comando; Sistemas em Tempo Real: processos so executados mais rapidamente, pois o tempo crucial sistemas crticos; espera

29

Escalonamento de Processos
Caractersticas escalonamento:
Qualquer sistema:
Justia (Fairness): cada processo deve receber uma parcela justa de tempo da CPU; Balanceamento: diminuir a ociosidade do sistema; Polticas do sistema prioridade de processos;

de

algoritmos

de

30

Escalonamento de Processos
Caractersticas de algoritmos de escalonamento:
Sistemas em Batch:
Vazo (throughput): maximizar o nmero de jobs executados por hora; Tempo de retorno (turnaround time): tempo no qual o processo espera para ser finalizado; Eficincia: CPU deve estar 100% do tempo ocupada;

Sistemas Interativos:
Tempo de resposta: tempo esperando para iniciar execuo; Proporcionalidade: satisfao do usurios;

31

Escalonamento de Processos
Caractersticas escalonamento: de algoritmos de

Sistemas em Tempo Real:


Cumprimento dos prazos: prevenir perda de dados; Previsibilidade: prevenir perda da qualidade dos servios oferecidos;

32

Escalonador de CPU
Seleciona um processo, entre os presentes na memria que esto prontos para execuo, e o aloca CPU; As decises de escalonamento de CPU podem ocorrer quando um processo:
1.Passa do estado executando para o estado esperando ; 2.Passa do estado executando para o estado pronto; 3.Passa do estado esperando para o estado pronto ; 4.Termina.

O escalonamento nos casos 1 e 4 no-preemptivo; Todos os outros preemptivos; escalonamentos podem ser
33

Despachador (dispatcher)
O despachador passa o controle da CPU ao processo selecionado pelo escalonador de curto prazo; isso envolve:
Troca do contexto; Troca do modo do usurio; Desvio para o local apropriado no programa do usurio a fim de reiniciar esse programa.

Latncia de despacho tempo gasto para o despachante interromper um processo e iniciar a execuo de outro
34

Crit Crit rios de Escalonamento


Utilizao de CPU mantm a CPU ocupada pelo mximo de tempo possvel; Vazo nmero de processos que so completados por unidade de tempo; Turnaround o tempo necessrio para executar um determinado processo; Tempo de espera tempo que um processo gasta esperando na fila de prontos; Tempo de resposta tempo percorrido desde que uma requisio submetida at a primeira resposta produzida, no at a sada (para ambiente de tempo compartilhado);
35

Crit Crit rios de otimiza otimiza o

Utilizao de CPU mxima; Throughput mxima; Turnaround mnimo; Tempo de espera mnimo; Tempo de resposta mnimo.

36

Escalonamento First First-Come Come, , FirstFirst-Served Served (FCFS)


Processo P1 P2 P3 Burst 24 3 3

Suponha que o processo chegue na ordem: P1 , P2 , P3.. O diagrama de Gantt para o escalonamento ser:
P1 0 24 P2 27 P3 30

Tempo de espera para P1 = 0; P2 = 24; P3 = 27 Tempo de espera mdio: (0 + 24 + 27)/3 = 17


37

Escalonamento First First-Come Come, , FirstFirst-Served Served (FCFS)


Suponha que o processo chegue na ordem
P2 , P3 , P1

diagrama

de

Gantt

para

escalonamento

ser:

P2 0 3

P3 6

P1 30

Tempo de espera para P1 = 6; P2 = 0; P3 = 3 Tempo de espera mdio: (6 + 0 + 3)/3 = 3

Muito melhor do que no caso anterior Efeito comboio processo curto atrs de processo longo
38

Escalonamento Shortest Job First First (SJF)


Associa a cada processo a durao do seu prximo burst de CPU. Usa esses tempos para escalonar o processo com o tempo mais curto Dois esquemas:
No-preemptivo uma vez dada ao processo, a CPU no pode ser preemptada at que complete seu burst de CPU Preemptivo se um novo processo chegar com tamanho de burst de CPU menor do que o tempo restante do processo atualmente em execuo, ele retirado. Esse esquema conhecido como Shortest Remaining Time First (SRTF)

O SJF o timo prov o menor tempo de espera mdio para um determinado conjunto de processos
39

Exemplo de SJF nono-preemptivo


Processo P1 P2 P3 P4 chegada 0.0 2.0 4.0 5.0 Burst 7 4 1 4

SJF (no-preemptivo)
P1 0 3 7 P3 8 P2 12 P4 16

Tempo de espera mdio = (0 + 6 + 3 + 7)/4 = 4


40

Exemplo de SJF preemptivo


Processo P1 P2 P3 P4 chegada 0.0 2.0 4.0 5.0 Burst 7 4 1 4

SJF (preemptivo)
P1 0 2 P2 4 P3 5 P2 7 P4 11 P1 16

Tempo de espera mdio = (9 + 1 + 0 +2)/4 = 3


41

Determinando o prximo burst de CPU


possvel apenas estimar a tempo; Pode ser feito usando a durao dos burst de CPU anteriores, atravs da mdia exponencial; n+1= tn+ (1- ) n
tn: durao real do ensimo burst de CPU; n+1: durao prevista do prximo burst de CPU; n: ltima previso de durao de burst de CPU; , 0 1
42

Previso da dura durao do pr pr ximo burst de CPU

43

Escalonamento por Prioridade


Um valor de prioridade (inteiro) associado a cada processo A CPU alocada para o processo com a prioridade mais alta (menor inteiro = prioridade mais alta) Preemptivo; No-preemptivo.

44

Escalonamento por Prioridade


SJF um escalonamento por prioridade em que a prioridade o prximo tempo de surto de CPU previsto Problema Estagnao processos de baixa prioridade podem nunca ser executados Soluo Envelhecimento conforme o tempo passa, aumente a prioridade do processo

45

Algoritmo de escalonamento RoundRound -Robin (RR)


Cada processo obtm uma pequena unidade do tempo de CPU (quantum de tempo), normalmente 10-100 milissegundos. Aps decorrido esse tempo, o processo preemptado e colocado no final da fila de prontos. Se houver n processos na fila de prontos e o quantum de tempo for q, ento cada processo recebe 1/n do tempo de CPU em, no mximo, q unidades de tempo de cada vez. Nenhum processo espera mais do que (n-1)q unidades de tempo.

46

Algoritmo de escalonamento RoundRound -Robin (RR)


Desempenho
quantum grande FIFO quantum pequeno q precisa ser grande com relao ao tempo de troca de contexto ou o custo adicional ser muito alto

47

Exemplo de RR com Quantum de Tempo = 20


Processo P1 P2 P3 P4 Burst 53 17 68 24

O diagrama de Gantt :
P1 0 P2 20 37 P3 P4 57 P1 77 P3 P4 P1 P3 P3

97 117

121 134 154 162

Normalmente, turnaround mdio mais alto do que SJF, mas melhora a resposta
48

Quantum de Tempo e Tempo de Troca de Contexto

49

O Turnaround varia Conforme o Quantum de Tempo

50

Exerccio
Suponha que existam os seguintes processos para serem executados em um processador:
Processo A B C D E F Tempo de execuo 12 6 2 5 9 8 Tempo de chegada 0 3 5 8 11 13

Fornea o diagrama de Gantt e o tempo de turnaround para os mtodos de escalonamento: FCFS, SJF(preemptivo e no-preemptivo) e Round Robin com quantum igual a 3.
51

Multilevel Queue (fila multinveis) multinveis)


Fila de prontos dividida em filas distintas:
primeiro plano (interativa) segundo plano (batch)

Cada fila possui seu prprio algoritmo de escalonamento


primeiro plano RR segundo plano FCFS

52

Multilevel Queue
necessrio haver escalonamento entre as filas
Escalonamento de prioridade fixa; (ou seja, serve a todos a partir do primeiro plano e depois do segundo plano). Possibilidade de estagnao. Fatia de tempo cada fila recebe uma certa parte do tempo de CPU, que pode ser escalonado entre seus processos; por exemplo, 80% para o primeiro plano no RR e 20% para o segundo plano no FCFS

53

Escalonamento Multilevel Queue

54

Multilevel Feedback Queue


Um processo pode se mover entre as vrias filas o envelhecimento pode ser implementado desta forma; Escalonador da multilevel feedback queue definido pelos seguintes parmetros:
nmero de filas; algoritmos de escalonamento para cada fila; mtodo usado para determinar quando elevar um processo; mtodo usado para determinar quando rebaixar um processo; mtodo usado para determinar em que fila um processo entrar quando esse processo precisar de atendimento;
55

Exemplo de Multilevel Feedback Queue


Trs filas:
Q0 quantum de tempo 8 milissegundos; Q1 quantum de tempo 16 milissegundos; Q2 FCFS;

Escalonamento
Uma nova tarefa entra na fila Q0 , que atendida com base no FCFS. Quando ganha a CPU, a tarefa recebe 8 milissegundos. Se no terminar nesse tempo, a tarefa movida para a fila Q1. Em Q1, a tarefa atendida novamente com base no FCFS e recebe 16 milissegundos adicionais. Se ainda no estiver completa, a tarefa apropriada e movida para a fila Q2.
56

Multilevel Feedback Queue

57

Escalonamento em mltiplos processadores


Escalonamento da CPU mais complexo quando vrias CPUs esto disponveis; Processadores homogneos multiprocessador; Compartilhamento de carga; Multiprocessamento assimtrico apenas um processador acessa as estruturas de dados do sistema, reduzindo a necessidade de compartilhamento de dados;
58

dentro

de

um

Escalonamento em Tempo Real


Sistemas de tempo real rgido necessrios para completar uma tarefa vital dentro de um perodo de tempo garantido; Computao em tempo real flexvel exige que processos vitais tenham prioridade sobre os menos importantes;

59

Avalia Avalia o de Algoritmo


Modelagem determinstica define o desempenho de cada algoritmo para uma carga de trabalho predeterminada; Modelos de enfileiramento; Implementao;

60

Avaliao dos Escalonadores de CPU Avalia via Simula Simulao

61