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

Post on 09-Nov-2018

218 views 0 download

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

ESCALONAMENTO DE PROCESSOS

Sistemas Operacionais

Processos e Recursos

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?

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

Imagem do Processo

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)

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

BCPs e as Filas do Sistema

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

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

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

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

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

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

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

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

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

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

Conceito de Escalonamento

Uma visão dos escalonadores do sistema operacional

Longo-Prazo

Fila de Prontos

Fila

EsperaI/O

CPU

Curto-Prazo

FIM

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

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

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

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

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

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

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

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)

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

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 ?

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

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

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

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

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

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