1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro...

56
1 Escalonamento Prof. Alexandre Monteiro Recife

Transcript of 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro...

Page 1: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

1

Escalonamento

Prof. Alexandre Monteiro

Recife

Page 2: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]

[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878

Page 3: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Computador Moderno

Fonte: Tanenbaum, Modern Operating Systems 3 ed, São Paulo p.1, 2010 Prentice-Hall, Inc. All rights reserved.

Page 4: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Mais uma vez: O que é um SO?

É uma Máquina Estendida

•Oculta os detalhes complicados que têm quer ser executados

•Apresenta ao usuário uma máquina virtual, mais fácil de usar

É um Gerenciador de Recurso

•Cada programa tem um tempo com o recurso

- Ex.: compartilhamento de CPU

•Cada programa tem um espaço no recurso

- Ex.: compartilhamento de memória

Page 5: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

História dos SO’s

Primeira geração: 1945 - 1955

•Válvulas, painéis de programação Segunda geração: 1955 - 1965

• transistores, sistemas em lote Terceira geração: 1965 – 1980

•CIs (circuitos integrados) e multiprogramação

Quarta geração: 1980 – presente

•Computadores pessoais Hoje: onipresença – computação ubíqua

Page 6: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

6

Revisão sobre hardware de computadores (1)

Componentes de um computador pessoal simples

Page 7: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

7

Revisão sobre hardware de computadores (2)

(a) Um pipeline de três estágios

(b) Uma CPU superescalar

Page 8: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

8

Revisão sobre hardware de computadores (3)

Típica hierarquia de memória• números mostrados são apenas aproximações

Page 9: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Registradores

Registradores de propósito geral: armazena variáveis importantes e resultados temporários

Contador de Programas: contém o endereço de memória da próxima instrução a ser buscada. Depois que busca é atualizado para apontar a próxima instrução.

Ponteiro de Pilha: aponta para o topo da pilha atual na memória. A pilha contém uma instrução

PSW (program status word – palavra de estado do programa): contém os bits de códigos de condições de instruções de comparação, pelo nível de prioridade da CPU.

Page 10: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

10

Conceitos Básicos Chamadas ao Sistema (System Call) Modo usuário:

• Aplicações não têm acesso direto aos recursos da máquina, ou seja, ao hardware;

• Quando o processador trabalha no modo usuário, a aplicação só pode executar instruções sem privilégios, com um acesso reduzido de instruções;

• Por que? Para garantir a segurança e a integridade do sistema;

Page 11: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

11

Conceitos Básicos Chamadas ao Sistema (System Call) Modo Kernel:

• Aplicações têm acesso direto aos recursos da máquina, ou seja, ao hardware;

• Operações com privilégios;• Quando o processador trabalha no modo kernel, a aplicação tem acesso ao conjunto total de instruções;

• Apenas o SO tem acesso às instruções privilegiadas;

Page 12: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

12

Conceitos Básicos Chamadas de Sistema (System Call) Se uma aplicação precisa realizar alguma instrução

privilegiada, ela realiza uma chamada ao sistema (system call), que altera do modo usuário para o modo kernel;

Chamadas de sistemas são a porta de entrada para o modo Kernel;

• São a interface entre os programas do usuário no modo usuário e o Sistema Operacional no modo kernel;

• As chamadas diferem de SO para SO, no entanto, os conceitos relacionados às chamadas são similares independentemente do SO;

Page 13: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

13

Conceitos Básicos Chamadas de Sistema TRAP: instrução que permite o acesso ao modo

kernel;

Exemplo:

• Instrução do UNIX: count = read(fd,buffer,nbytes);

Arquivo a ser lido

Ponteiro para o Buffer

Bytes a serem lidos

O programa sempre deve checar o retorno da chamada de sistema para saber se algum erro ocorreu!!!

Page 14: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

14

Chamadas ao Sistema

Endereço 0

Retorno

Colocar o código para read no registrador

TRAP

Empilha nbytes

Incrementa SPComando read

Empilha fdEmpilha &buffer

Manipulador de Chamadas

Dispatch

Endereço0xFFFFFFFFF

Biblioteca do ProcedimentoREAD

Chamada ao ProcedimentoREAD

Kernel SO

Espaço do

Usuário

1

32

4

5

6

7 8

9

10

Tabela de ponteiros para Chamadas

11

Page 15: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos Em um sistema multiprogramado vários programas

estão na RAM e são executados concorrentemente•A CPU permuta entre programas, executando cada um por dezenas/centenas de milisegundos.

- Uma CPU só pode executar um programa por vez.

•Mas no curso de 1’’ uma CPU pode executar diversos programas ilusão de paralelismo (pseudoparalelismo)

- Verdadeiro paralelismo = sistema multiprocessado

Page 16: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos O conceito de processo é a base para a

implementação de um sistema multiprogramável A gerência de um ambiente multiprogramável é

função do SO, o qual controla a execução dos programas e o uso concorrente da CPU

Neste contexto um programa esta associado a um processo

OBS: Apesar de denominações como tarefa ou job ainda serem usadas com o mesmo sentido, o termo processo é atualmente o mais utilizado.

job = tarefa = processo

Page 17: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos Vantagens da Multiprogramação:

•Aumento da taxa de utilização do processador

•Melhor utilização dos recursos em geral•Redução do tempo de execução de um conjunto de programas

•Dá a ideia ao usuário de que ele possui uma máquina só para si.

Page 18: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Introdução a Processos

Um processo é formado por três partes

• Contexto de Hardware• Contexto de Software• Espaço de endereçamento

Estas três partes mantêm todas as informações necessárias à execução de um programa

Quando um processador troca de processo caracteriza uma mudança de Contexto de Execução

Page 19: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Estado do Processo

Para haver o compartilhamento da CPU em um sistema multiprogramável, os processos passam por diferentes estados ao longo do seu processamento

• A troca de estado ocorre em função de eventos gerados pelo próprio processo (voluntário) ou pelo SO (involuntário)

Os estados em que um processo pode se encontrar variam de sistema para sistema mas, de uma maneira geral, pode-se citar:

• Executando (Running)• Pronto (ready)• Bloqueado (blocked) – Também conhecido com Espera

(Wait)• Terminado (exit)

Page 20: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Troca de Contexto

Page 21: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Conceito de Escalonamento Para cada estado existe uma Fila que contém os

PCBs.

Nas transações entre estados, o PCB do processo é movido entre as filas apropriadas.

Page 22: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Concorrência

São formas diferentes de implementar concorrência

Busca-se subdividir o código em partes que permitam o trabalho cooperativo entre estas partes

São elas:

• Processos Independentes• Subprocessos• Threads

Page 23: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Thread

Ambiente Monothread• Em um ambiente monothread um processo só suporta

um programa no seu espaço de endereçamento• Neste ambiente aplicações concorrentes são

implementadas só com o uso de processos independentes ou subprocessos

- Nestes casos a aplicação é dividida em partes que podem trabalhar concorrentemente.

De forma simplificada um thread pode ser definido como uma sub-rotina de um programa que pode ser executada de forma assíncrona. Ou seja, executada paralelamente ao programa chamador.

Page 24: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Thread

A grande diferença entre ambientes monothread e multithread está no uso do espaço de endereçamento

• Processos independentes ou subprocesso possuem espaços de endereçamento individuais e protegidos

• Multithreads compartilham o espaço de endereçamento dentro de um mesmo processo

- Como os threads compartilham o mesmo espaço de endereçamento, não se exige mecanismos para proteção no acesso a memória

- Isso permite que o compartilhamento de dados entre threads de um mesmo processo seja mais simples e rápido

Page 25: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Ambiente Multithread

Cada thread possui seu próprio contexto de HW, porém divide o mesmo contexto de SW e espaço de endereçamento com os demais threads do processo

Page 26: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Vantagens de Mutithreading

Tempo de criação/destruição de threads é inferior ao tempo de criação/destruição de processos

Chaveamento de contexto entre threads é mais rápido em tempo que chaveamento entre processos

Como threads compartilham o descritor do processo que as contem, elas dividem o mesmo espaço de endereçamento o que permite a comunicação por memória compartilhada, sem interação com o núcleo

Page 27: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Comunicação Interprocessos

Os processos podem precisar trocar informações entre eles ou podem solicitar a utilização de um mesmo recurso simultaneamente, como arquivos, registros, dispositivos de E/S e memória.

O compartilhamento de recursos entre vários processos pode causar situações indesejáveis e, dependendo do caso, gerar o comprometimento da aplicação.

O Sistema Operacional tem a função de gerenciar e sincronizar processos concorrentes, com o objetivo de manter o bom funcionamento do sistema.

Page 28: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Regiões Críticas

Para se evitar uma condição de corrida é preciso definir métodos que proíba que mais de um processo acesse uma determinada área de memória compartilhada ao mesmo tempo.

Esses métodos são conhecidos como exclusão mútua ou MUTEX (MUTual EXclusion).

A parte do programa no qual o processo acessa memória compartilhada é chamada seção crítica ou região crítica.

Dessa forma, a solução para se evitar uma condição de corrida seria organizar os problemas de tal forma que nenhum de dois ou mais processos estivessem em suas regiões críticas ao mesmo tempo.

Page 29: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

29

Regiões Críticas (2)Espera Ativa

Exclusão mútua usando regiões críticas

proposta de exclusão mútua na qual, um processo quando está acessando sua região crítica, outro processo que deseja entrar também em região crítica fica aguardando.

Page 30: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Algoritmos de Exclusão Mútua MUTEXES

Semáforo

Monitores

Produtor x Consumidor

Dormir x Acordar

Troca de Mensagens

Barreiras

Jantar dos Filósofos

Barbeiro Sonolento

Leitor xEscritor

Page 31: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Objetivos do Escalonamento

Maximizar a utilização do processador

Maximizar o nº de processos executados por unidade de tempo (throughput)

Minimizar o tempo total de execução de um processo (turnaround)

Minimizar o tempo de espera (na lista de processos aptos)

Minimizar o tempo de resposta decorrido entre a requisição e sua realização

Page 32: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Características de Escalonamento Justiça (fairness)

• Todos os processos têm chances iguais de uso dos processador

Eficiência• Taxa de ocupação do processador ao longo do tempo

Tempo de Resposta• Tempo entre a ocorrência de um evento e o termino da

ação correspondente

Turnaround• “Tempo de resposta” para usuários em batch• Minimizar o tempo que usuários batch devem esperar

pelo resultado

Throughput• No. de “jobs” (processos) executados por unidade de

tempo

Page 33: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Situações típicas para execução do escalonador

Depende se o escalonador é preemptivo ou não- preemptivo, se considera prioridades ou não:

Sempre que a CPU estiver livre e houver um processo apto para executar

Criação e término de processos

Um processo de mais alta prioridade ficar pronto para executar

Interrupção de tempo• Processo executou por um período de tempo máximo permitido

Interrupção de E/S

Interrupção de Falta de Página em Memória• Endereço acessado não está carrego na memória (memória virtual)

Interrupção por erro

Page 34: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Chaveamento de Contexto (Dispatcher)

Page 35: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Níveis de escalonamento

Longo Prazo

Médio Prazo

Curto Prazo

Page 36: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Diagrama de Escalonamento

Page 37: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Filas de Escalonamento

High-level (Longo Prazo)• Decide quantos programas são admitidos no sistema• Aloca memória e cria um processo• Controla a long-term queue

Short-term (Curto prazo)• Decide qual processo deve ser executado• Controla a short-term queue

I/O (Médio prazo)• Decide qual processo (com I/O) pendente deve ser tratado

pelo dispositivo de I/O• Controla a I/O queue

Page 38: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Filas de Escalonamento

Long-term

queue

Short-term

queue CPU

I/Oqueue

I/Oqueue

I/OqueueI/O

I/O

I/O

Processrequest FIM

High-levelscheduling

Short-termscheduling

I/O scheduling

InterruptHandler

Interruptof process

Interrupt from I/O

Page 39: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Algoritmos de Escalonamento Algoritmos Não-Preemptivos (cooperativos)

• First-In-First-Out (FIFO) ou First-Come-First-Served (FCFS)

• Shortest Job First (SJF) ou Shortest Processo Next (SPN)

Algortimos Preemptivos• Round Robin (Circular)• Baseado em Prioridades• Híbridos

- Partições de Lote (Batch)- MFQ - Multiple Feedback Queue

Existem outros algoritmos de escalonamento• High Response Ratio Next (HRRN)• Shortest Remaining Time (SRT)• Ect...

Page 40: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Escalonamento Preemptivo Permite a suspensão temporária de processos

Quantum ou time-slice: período de tempo durante o qual um processo usa o processador a cada vez

T11T12

T0 T22 T0

1 121905141 t70

mP1

Preempção

Page 41: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Quantum Quando uma tarefa recebe o processador, o núcleo ajusta

um contador de ticks que essa tarefa pode usar, ou seja, seu quantum é definido em número de ticks.

A cada tick, o contador é decrementado; quando ele chegar a zero, a tarefa perde o processador e volta à fila de prontas.

Page 42: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Nova visão dos Estados do Processo

Page 43: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Troca de Contexto

5 ms

Page 44: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Políticas de Escalonamento

Round-Robin Uso de uma lista de processos sem prioridade Escalonamento preemptivo Simples e justo Bom para sistemas interativos

Tar. BContextoTar. BContexto

Tar. CContextoTar. CContexto

CPU:RunningCPU:Running

Tar. AContextoTar. AContexto

Tar. AContexto

Tar. AContexto

Tar. AContexto

Round-Robin FIFO Híbrido SJF SRJN

Page 45: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Round Robin Cada processo recebe um tempo limitado (time slice = quantum)

para executar um ciclo de processador

Fila de processos aptos é circular

Necessita de relógio para delimitar as fatias de tempo (interrupção de tempo/relógio)

Se o (quantum = ∞) obtem-se o comportamento de um escalonador FIFO.

Tamanho do quantum igual prejudica processos I/O bound (prioridade)

Page 46: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Políticas de Escalonamento

First-In First-Out (FIFO) Uso de uma lista de processos sem prioridade (Fila) Escalonamento não-preemptivo Simples e justo Bom para sistemas em batch (lote)

B C D E F … N B C D E F … NCPUCPUA

FIM

Round-Robin FIFO Híbrido SJF SRJN

1. Processo aptos inseridos no final da fila

2. Processo no início da fila é o próximo.3. Processo executa até terminar, libere o

processador ou realize um chamada de sistema

Page 47: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Políticas de EscalonamentoFirst-In First-Out (FIFO)

Page 48: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Políticas de Escalonamento

Híbridos Como combinar processos batch com interativos?

Uso de Partições de Lote (batch)

• O sistema aceita tantos processos batch quantas forem as partições de lote

• O sistema aceita todos os processos interativos

• Escalonamento em dois níveis

Round-Robin FIFO Híbrido SJF SRJN

Partições de Lote (Batch)MFQ - Multiple Feedback Queue

Page 49: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Escalonamentos Híbridos

Partições de Lote

B C D E F … N B C D E F … NA

Memória

Partiçãode Lote

ProcessosInterativos

Processos interativos são ativados

imediatamente

Processos batch esperam a liberação do lote

Round-Robin FIFO Híbrido SJF SRJN

Page 50: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Escalonamentos Híbridos

Multiple Feedback Queue Como saber a priori se o processo é CPU-bound ou

I/O-bound?

MFQ usa abordagem de prioridades dinâmicas

Adaptação baseada no comportamento de cada processo

Usado no VAX / VMS (arquiteturas de computadores)

Round-Robin FIFO Híbrido SJF SRJN

Page 51: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Escalonamentos Híbridos

Multiple Feedback Queue

... Fila 1

... Fila 2

Fila n

Quantum

Prioridade

Novos processos entram na primeira fila (prioridade mais alta)

Se acabar o quantum desce um nível

Se requisitar E/S sobe um nível• Lembrando: I/O-bound são prioritários

...

Round-Robin FIFO Híbrido SJF SRJN

Page 52: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Escalonamentosbaseados no tempo de execução Shortest Job First (não-preemptivo) Shortest Remaining Job Next (preemptivo)

Melhora o tempo de resposta Não é justo: pode causar estagnação (starvation)

• Pode ser resolvida alterando a prioridade dinamicamente

Round-Robin FIFO Híbrido SJF SRJN

Exemplo de escalonamento job mais curto primeiro (Shortest Job First – SJF)

Page 53: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Shortest Job First

Page 54: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Shortest Job First

Algoritmo ótimo, fornece o menor tempo médio de espera para um conjunto de processos

Processos I/O bound são favorecidos

Dificuldade é determinar o tempo do próximo ciclo de CPU de cada processo, porém:

• Pode ser empregado em processos batch (long term scheduler)• Prever o futuro com base no passado

Page 55: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

55

Um algoritmo de escalonamento com quatro classes de prioridade

Escalonamento em Sistemas Interativos

Page 56: 1 Escalonamento Prof. Alexandre Monteiro Recife. Contatos n Prof. Guilherme Alexandre Monteiro Reinaldo n Apelido: Alexandre Cordel n E-mail/gtalk: alexandrecordel@gmail.comalexandrecordel@gmail.com.

Como definir a Prioridade?

Prioridade Estática:

Processo é criado com determinada prioridade e esta é mantida durante todo o processo.

Prioridade Dinâmica:

Prioridade é ajustada de acordo com o estado de execução do processo e/ou sistema.

Ex. ajustar a prioridade em função da fração de quantum que foi realmente utilizada pelo processo.

• q = 100ms • Processo A = 2ms -> nova prioridade = 1/0.02 = 50• Processo B = 50ms -> nova prioridade = 1/0.5 = 2