Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento...

35
ESCALONAMENTO DE PROCESSOS Sistemas Operacionais

Transcript of Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento...

Page 1: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

ESCALONAMENTO DE PROCESSOS

Sistemas Operacionais

Page 2: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Processos e Recursos

Page 3: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Conceito de Escalonamento

O S.O. gerencia recursos computacionais em benefício dos

diversos processos que executam no sistema.

A questão fundamental é:

• Que informações o sistema operacional precisa manter

para poder controlar os processos e gerenciar os

recursos em benefícios deles?

Page 4: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Nome dado à coleção formada por:

Código do programa a ser executado.

Pilha (de usuário e do sistema) para controle

de chamadas de procedimentos e de SVCs.

Área de dados para armazenamento de

variáveis locais e globais.

Coleção de atributos do processo (mantidos

no Bloco de Controle de Processos).

Imagem do Processo

Page 5: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Imagem do Processo

Page 6: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Estrutura de dados (registro) usada para representar

um processo dentro do sistema operacional.

Mantém todas as informações que o S.O precisa para

poder controlar a execução do processo (coleção de

atributos do processo).

Número fixo ou variável de blocos descritores de

processos (alocação estática x alocação dinâmica de

memória).

Process Control Block.

Bloco de Controle de Processo

(BCP)

Page 7: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Prioridade do processo.

Localização na memória principal.

Identificação dos arquivos abertos.

Estado do processo.

Contexto de execução (conteúdo dos

registradores).

Ponteiros para encadeamento nas filas.

Informações de accounting (ex:tempo de

CPU).

Informações Típicas do BCP

Page 8: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

BCPs e as Filas do Sistema

Page 9: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

As informações mantidas no BCP podem ser

divididas em três categorias:

Identificação do processo;

Informações de estado do processador;

Informações de controle do processo.

Tipos de Informações do BCP

Page 10: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Os seguintes identificadores podem estar

armazenados no BCP :

Identificador do processo;

Identificador do processo que o criou (processo

pai);

Identificador do usuário.

Identificação do Processo

Page 11: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Registradores visíveis ao usuário

Aqueles que podem ser referenciados por meio

da linguagem de máquina que o processador

executa.

Registradores de controle e estado

Program Counter (PC);

Flags: sign, zero, carry, equal, overflow;

Status: modo supervisor x usuário, interrupção

habilitada x disabilitada.

Stack Pointers.

Informações de Controle do Processo

Page 12: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Informações de Escalonamento e Estado:

Estado do processo (ready, running,

suspended, etc.)

Prioridade (default, corrente, máxima)

Tempo de espera na fila

Tempo de execução na última fatia de tempo

Evento que o processo está aguardando

Estruturação de dados:

Um processo pode estar encadeado a outros

em uma fila, lista ou outra estrutura de dados.

Informações de Controle do Processo

Page 13: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Comunicação entre processos:

Flags, sinais e mensagens podem estar

associados com a comunicação entre dois

processos independentes.

Algumas ou todas essas informações podem

estar mantidas no BCP.

Privilégios em termos de memória que pode

ser acessada, instruções que podem ser

executadas, ou mesmo serviços e utilitários do

sistema.

Informações de Controle do Processo

Page 14: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Gerência de Memória:

Ponteiros para tabelas de páginas ou de

segmentos que descrevem a memória virtual

assinalada ao processo.

Ownership e utilização de recursos:

Arquivos abertos;

Histórico de uso da UCP ou de outro

recurso (para usos do escalonador);

Informações de Controle do Processo

Page 15: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Razões para Suspender Processos

Do SO

Swapping: para liberar espaço na memória principal

para trazer outro processo da memória secundária

SO pode suspender um processo

em background

utilitário

suspeito de estar causando problemas

Solicitação de usuário interativo

Temporização: determinados processos são executados

periodicamente

Solicitação do processo pai

Page 16: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Conceito de Escalonamento

Escalonamento consiste em determinar, dentre

os processos prontos, qual o próximo processo a

ser executado

Realizado por um componente do sistema

operacional denominado escalonador

Dois tipos de escalonadores

longo prazo

curto prazo

Page 17: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Conceito de Escalonamento

Escalonador longo prazo

memória secundária memória principal

Escalonador curto prazo

memória principal processador

Principais objetivos

maximizar a utilização do processador

maximizar o número de processos completados por

unidade de tempo

garantir que todos os processos recebam o processador

minimizar o tempo de resposta para o usuário

Page 18: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Conceito de Escalonamento

Para cada estado, existe uma fila que contém os PCB's

Nas transições entre estados, o PCB do processo é

movido entre as filas apropriadas

executando

bloqueados

pcb3

prontos pcb1 pcb5 pcb2

pcb4 pcb6

pcb8 pcb7 pcb10

e/s disco

e/s terminal

e/s impressão

pcb9

Page 19: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Conceito de Escalonamento

Uma visão dos escalonadores do sistema operacional

Longo-Prazo

Fila de Prontos

Fila

EsperaI/O

CPU

Curto-Prazo

FIM

Page 20: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Conceito de Escalonamento

Dispatcher: responsável por passar o controle da CPU para

o processo selecionado pelo escalonador de curto prazo,

envolve:

mudança de contexto

mudança para o modo usuário

salto para a posição adequada dentro do processo

selecionado para reiniciar sua execução

Latência de despacho Tempo gasto pelo

dispatcher para interromper um processo e começar a

execução de um outro

Page 21: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Representação do Escalonamento

término de fatia

de tempo

requisição de

I/O

em espera por

uma interrupção

criação de um

processo filho

interrupção

ocorre

filho em

execução

fila de dispositivo I/O

fila de processos prontos CPU

Page 22: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Adição de Escalonador Intermediário

fila de espera por

I/O I/O

fila de processos

prontos CPU

terminar

processos em execução

parcialmente removidos

da memória

carregar remover

Page 23: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Conceito de Escalonamento

Mudança de contexto

CPU é chaveada para outro processo SO deve

salvar o estado do processo antigo e carregar o

estado do novo processo

Implica overhead SO não realiza nenhum

trabalho útil durante os chaveamentos

Tempo consumido é dependente do suporte de

hardware fornecido

Page 24: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Chaveamento da CPU

interrupção ou chamada ao sistema

Pro

cesso

P0

exec.

exec.

ocio

so

Pro

cesso

P1

ocio

so

e

xe

cu

tan

do

ocio

so

recarregar estado no PCB0

armazenar estado no PCB1

armazenar estado no PCB0

recarregar estado no PCB1

.

.

.

.

.

.

interrupção ou chamada ao sistema

SO

Page 25: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Contexto de execução: estado do processador

Ações na troca de contexto

Salvar o contexto do processador, incluindo o PC e

outros registradores.

Alterar o BCP do processo que está no estado “em-

execução” (running).

Mover o BCP para a fila apropriada.

Selecionar outro processo para execução.

Alterar o BCP do processo selecionado.

Alterar as tabelas de gerência de memória.

Restaurar o contexto do processo selecionado.

Troca de Contexto

Page 26: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Características dos Escalonadores

Escalonador da CPU é invocado muito

freqüentemente (milissegundos)

precisa ser rápido

Escalonador de processos é invocado com muito

pouca freqüência (segundos, minutos)

pode ser lento

O escalonador de processos controla o grau de

multiprogramação do sistema

Page 27: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Conceito de Escalonamento

Os escalonadores são implementados por

algoritmos dentro do sistema operacional

Critérios para comparar a eficiência dos algoritmos

utilização da CPU (1)

taxa de saída (throughput) (2)

turnaround time (3)

tempo de espera (4)

tempo de resposta (5)

Objetivos maximizar (1) e (2)

minimizar (3), (4) e (5)

Page 28: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Conceito de Escalonamento

Tipo de processamento

batch

interativo

CPU bound

I/O bound

Tipo de sistema

monoprogramado (?)

multiprogramado

time-sharing

tempo-real

multiprocessado

política de escalonamento

(scheduling policies)

Considerações

Page 29: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Critérios de Escalonamento

Orientados ao Usuário e Desempenho

Uso do processador mede a porcentagem de tempo em que a CPU está ocupada

importante em tempo compartilhado

não muito importante em sistemas monousuário e tempo-real

Tempo de resposta

processos interativos

tempo entre uma requisição e o início da resposta do ponto de vista do usuário

qual seria o tempo de resposta ideal ?

Page 30: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Critérios de Escalonamento

Orientados ao Usuário e Desempenho

Deadlines (prazos) quando o prazo de término

pode ser especificado

o sistema deveria fazer o melhor esforço para

atender todos os prazos

Previsibilidade um dado processo deveria

executar sempre em um tempo médio previsível

a carga do sistema não deveria impor

variações

Page 31: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Critérios de Escalonamento

Orientados ao Sistema e Desempenho Throughput (vazão) número de processos completados

por unidade de tempo, depende:

do tamanho dos processos

das políticas de escalonamento

Turnaround intervalo de tempo entre a submissão de um processo e o seu término

inclui o tempo de execução, espera por recursos

medida para sistemas batch

Waiting time quantidade total de tempo que um processo esteve esperando na fila de prontos

Page 32: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Critérios de Escalonamento

Orientados ao Sistema

Justiça processos devem ser tratados igualmente, a menos que especificado o contrário

processos não deveriam sofrer starvation

Prioridades processos mais prioritários devem efetivamente ser favorecidos

problema da inversão de prioridade

Balanceamento de recursos recursos devem ficar ocupados o máximo possível

processos que não vão utilizar recursos sobrecarregados devem ser favorecidos

Page 33: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Escalonamento de Processos

Longa duração decisão de se adicionar um

processo ao pool de processos para serem

executados

admissão ao sistema

Duração média decisão de se adicionar ao

número de processos que está completamente ou

parcialmente na memória

swapping, memória virtual

Page 34: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Escalonamento de Processos

Curta duração decisão de qual processo

disponível será executado

interrupção de clock e I/O, chamadas ao

sistema, signals

I/O decisão de qual processo que está na fila

de espera por uma requisição de I/O será tratado

Page 35: Sistemas Operacionais I · Sistemas Operacionais . Processos e Recursos . Conceito de Escalonamento O S.O. gerencia recursos computacionais em benefício dos diversos processos que

Escalonamento de Processos

Tipos

não-preemptivo: processo executando não pode ser

interrompido

preemptivo: processo pode ser retirado do processador

Políticas mais comuns:

First-Come-First-Served (FCFS)

Shortest Job First (SJF)

Prioridade

Múltiplas Filas

Round-Robin