View
220
Download
0
Category
Preview:
Citation preview
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
Recommended