Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas...

57
MC504 - Sistemas Operacionais Escalonamento de processos Islene Calciolari Garcia Instituto de Computac ¸˜ ao - Unicamp Primeiro Semestre de 2017

Transcript of Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas...

Page 1: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

MC504 - Sistemas Operacionais

Escalonamento de processos

Islene Calciolari GarciaInstituto de Computacao - UnicampPrimeiro Semestre de 2017

Page 2: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Sumario

Introducao

Escalonamento

Escalonamento no Linux

Page 3: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Historia dos sistemas operacionaisMonoprogramacao

MemoriaJob

Sistema Operacional

Com apenas um job em memoriaa CPU fica ociosa durante operacoes de E/S

Page 4: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Historia dos sistemas operacionaisTipos de jobs

CPU-bound

IO-boundTanenbaum: Figura 2.37

Page 5: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Historia dos sistemas operacionaisMultiprogramacao

Memoria

Job DJob CJob BJob A

Sistema Operacional

Com varios jobs em memoriaa CPU pode ser melhor aproveitada

Page 6: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Historia dos sistemas operacionaisMultiprogramacao

Tanenbaum: Figura 2.1

Page 7: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Historia dos sistemas operacionaisCartoes perfurados e computadores auxiliares

Tanenbaum: Figura 1.2

Page 8: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Historia dos sistemas operacionaisSPOOLing

I Simultaneous Peripheral Operation OnLineI Leitura dos cartoes passou a ser feita em paralelo a

execucao de outros programasI Os computadores auxiliares puderam ser aposentados

Page 9: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Historia dos sistemas operacionaisTempo-compartilhado

I Varios terminais conectados a um mainframeI Os usuarios exigem resposta rapida

Page 10: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Escalonador

Tanenbaum: Figura 2.3

A funcao do escalonador e escolher qual deve sero proximo processo a ser executado.

Page 11: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Quando escalonar

I Quando um processo e criadoI Quando um processo terminaI Quando um processo faz uma operacao de I/OI Interrupcao de relogio (sistemas preemptivos)

Page 12: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Ciclo de escalonamento

ready queue CPU

I/O I/O queue I/O request

time sliceexpired

fork achild

wait for aninterrupt

interruptoccurs

childexecutes

Silberschatz: Figura 3.06

Page 13: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Estado dos processos

Tanenbaum: Figura 2.2Por que algumas arestas estao faltando?

Page 14: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Campos gerenciados por processo

I Gerencia de processos: registradores, contador deprograma, program status word, estado, prioridades,identificador de processos, sinais

I Gerencia de memoria: apontadores para os segmentos dedados, texto e pilha.

I Gerencia de arquivos: diretorio raiz e corrente, descritoresde arquivos, identificadores de usuario e grupo∗ Quais recursos sao compartilhados pelas threads?

Page 15: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Mudanca de contexto

Tanenbaum: Figura 2.5

Page 16: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Objetivos dos algoritmos de escalonamento

I JusticaI Cada processo deve receber a sua parte da CPU

I Policy enforcementI Respeito as polıticas estabelecidas

I EquilıbrioI Todas as partes do sistema devem estar operando

Page 17: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Escalonamento em sistemas batch

I ThroughputI o numero de jobs por hora deve ser maximizado

I Turnaround timeI o tempo entre a submissao e o termino de um job deve ser

minimizadoI Utilizacao da CPU

I A CPU deve ficar ocupada o tempo todo

Page 18: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Escalonamento em sistemas batchFirst-Come First-Served

I Processos obtem a CPU na ordem de requisicaoI Nao preemptivoI Aproveitamento ruim da CPU

Page 19: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Escalonamento em sistemas batchShortest Job First

I Vazao (throughput) excelenteI Turnaround time

(a) (8 + 12 + 16 + 20)/4 = 14(b) (4 + 8 + 12 + 20)/4 = 11

Page 20: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Escalonamento em sistemas batchShortest Job First

I Todos jobs precisam ser conhecidos previamenteI Processos no tempo 0: 8 10I Processos no tempo 3: 4 4 8 10

I Se jobs curtos chegarem continuamente, os jobs longosnunca serao escalonados

I Processos no tempo 100: 4 4 4 4 4 4 4 4 4 8 10

Page 21: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Escalonamento em tres nıveis

Tanenbaum: Figura 2.40

Page 22: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Escalonamento em sistemas interativos

I Tempo de respostaI O usuario quer respostas rapidas

I ProporcionalidadeI E necessario respeitar as expectativas de tempo (tarefas

faceis versus tarefas difıcies)

Page 23: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Round-Robin

I PreemptivoI Time quantum

Como saber o valor ideal?

Page 24: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Prioridades para escalonamento

I Prioridades estaticas ou dinamicasI Comando nice

Page 25: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Aproveitamento da CPU

Processos I/O-bound conseguem poucos ciclos

Page 26: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Aproveitamento da CPU

Processos I/O-bound conseguem mais ciclos

Page 27: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

CTSSCompatible Time Sharing System

I E mais eficiente rodar programas CPU-bound raramentepor perıodos longos do que frequentemente por perıodoscurtos

I Como determinar a classe de um processo?Classe 0 (1 quantum) → P1 P2 P5 P7Classe 1 (2 quanta) → P0 P3Classe 2 (4 quanta) → P4Classe 3 (8 quanta) → P6

Page 28: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Shortest Process Next

I Baseado no algoritmo shortest job firstI Comandos ≡ jobsI Estimativas de tempo (aging)

I T0I T0/2 + T1/2I T0/4 + T1/4 + T2/2I T0/8 + T1/8 + T2/4 + T3/2

Page 29: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Justica em sistemas interativos

I Escalonamento garantidoI O SO faz promessas e deve mante-las (e.g. 1/n CPU)

I LoteriaI Baseado na distribuicao de ticketsI Facil dar pesos distintos aos processos

I Fair-shareI Cada usuario recebera uma parte adequada do poder de

processamento da CPU

Page 30: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Escalonamento em sistemas de tempo real

I Respeitar deadlinesI PrevisibilidadeI Hard real time e soft real timeI Tratamento dos eventos periodicos

∑mi=1

CiPi≤ 1

Page 31: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

No inıcio...

I Criado em 1991 por Linus TorvaldsI Versao 1.0 em 1994

I Licenciado em GPLv2

Linux has very much been a hobby (but a serious one:the best type) for me: I get no money for it, and it’s noteven part of any of my studies in the university. I’vedone it all on my own time, and on my own machine.Linus Torvalds in Linus vs. Tanenbaum debate.

Page 32: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Sistema Monolıtico

kern

el(the users)

shells and commandscompilers and interpreters

system libraries

system-call interface to the kernel

signals terminalhandling

character I/O systemterminal drivers

file systemswapping block I/O

systemdisk and tape drivers

CPU schedulingpage replacementdemand pagingvirtual memory

kernel interface to the hardware

terminal controllersterminals

device controllersdisks and tapes

memory controllersphysical memory

Silberschatz: Figura 2.12

Page 33: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Microkernel

ApplicationProgram

FileSystem

DeviceDriver

InterprocessCommunication

memorymanagment

CPUscheduling

messagesmessages

microkernel

hardware

usermode

kernelmode

Silberschatz: Figura 2.14

Page 34: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Linus vs. Tanenbaum

MINIX is a microkernel-based system. The file systemand memory management are separate processes,running outside the kernel. The I/O drivers are alsoseparate processes (in the kernel, but only becausethe brain-dead nature of the Intel CPUs makes thatdifficult to do otherwise). LINUX is a monolithic stylesystem. This is a giant step back into the 1970s. Thatis like taking an existing, working C program andrewriting it in BASIC. To me, writing a monolithicsystem in 1991 is a truly poor idea.Tanenbaum in Linus vs. Tanenbaum debate

Page 35: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Estatısticas atuais

I Disponıvel atualmente para cerca de 30 arquiteturasI Sistema de versoes: gitI 200 commits/diaI mais de 1500 desenvolvedores por releaseI cerca de 200 organizacoes (Intel, Red Hat, ...)

Page 36: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Escalonamento com varios processadores

I Fila unica: problemas de escala e aproveitamento docache

I Agrupar tarefas em uma CPU para executa-lasI Migrar tarefas de CPU para balancear filas de execucaoI Manter eficiencia

Page 37: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Linux implementa dois tipos de prioridade

I Estatica (nice)I -20..19I > valor, < prioridadeI < valor, > prioridade, + CPUI ps -el

I DinamicaI 0..99I > valor, > prioridadeI favorece threads interativas

Page 38: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Fatias de tempo no linux

Baixa prioridade Alta prioridade

<-------------------- --------------------->

+----------------------|----------------------------+

5ms 100ms 800ms

mınimo padr~ao maximo

I Nice: 19→ 20⇒ timeslice: 10ms→ 5msI Nice: 0→ 1⇒ timeslice: 100ms→ 95ms

Page 39: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Ate o kernel 2.4

I O(n), nao escalava bemI apenas uma run-queue que era percorrida

considerando-se prioridadesI suporte ruim para varios processadoresI enquanto uma CPU escolhia o processo as outras

precisavam esperarI cold cache quando um processo era escalonado para

outro processador

Page 40: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Kernel 2.5 ate 2.6.22

I O(1)I 140 listas de prioridadesI uma run-queue por processadorI processos migram apenas para

balanceamento das run-queuesI bom desempenho para

servidores, mas nao tao bompara desktops

I prioridade interativa difıcil de sercompreendida

I by Ingo Molnar, mantenedor

Page 41: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Como o O(1) e garantido?

I Numero de prioridades e estatico = 140I Bit map: 5 palavras de 32 bits = 160 bitsI busca pelo primeiro bit 1, que indicara a posicao na tabela

em que temos o processo com maior prioridadeI temos duas tabelas: uma de processos ativos e outra de

processos que ja consumiram sua fatia de tempo

Page 42: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Tabelas de prioridade

Inside the Linux Scheduler

Page 43: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Tabelas de prioridade

www.makelinux.net

Page 44: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

2004: Rotating Staircase Scheduler

I by Con Kolivas, medicoanestesista

I Codigo enxuto (200 versus498 linhas de codigo)

I Ideias mais claras, mais facilde se entender

I Out-of-treeI Contribuicao nao foi aceita

Page 45: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Interactivity, what is it?Con Kolivas, Mon Jul 11 17:29:21 2005

There has been a lot of talk about what makes up a nicefeeling desktop under linux. It comes down to two differentbut intimately related parameters which are not welldefined. We often use the terms responsiveness andinteractivity in the same sentence, but I’d like to separatethe two. As there is no formal definition I prefer to definethem as such:Responsiveness: The rate at which your workloads canproceed under different load conditions.Interactivity: The scheduling latency and jitter present intasks where the user would notice a palpable deteriorationunder different load conditions.Responsiveness would allow you to continue using yourmachine without too much interruption to your work,whereas interactivity would allow you to play audio or videowithout any dropouts, or drag a gui window across thescreen and have it render smoothly across the screenwithout jerks.

Page 46: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

2007: Rotating Staircase Deadline Scheduler (RSDL)Con Kolivas

A starvation free, strict fairness O(1) scalable design withinteractivity as good as the above restrictions can provide.There is no interactivity estimator, no sleep/runmeasurements and only simple fixed accounting. Thedesign has strict enough a design and accounting that taskbehaviour can be modelled and maximum schedulinglatencies can be predicted by the virtual deadlinemechanism that manages runqueues. The prime concernin this design is to maintain fairness at all costs determinedby nice level, yet to maintain as good interactivity as can beallowed within the constraints of strict fairness.

Page 47: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

2007: Rotating Staircase Deadline Scheduler (RSDL)

I Lista de prioridades ativasI Processos tem uma cota para rodar em uma determinada

prioridadeI Quando esta cota termina, devem passar para um nıvel

com prioridade mais baixaI A fila de prioridade tambem tem cotaI Quando a cota termina, todos os processos sao

rebaixadosI Limite de tempo para um processo de baixa prioridade

rodar

Page 48: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Tabelas de prioridade

www.cse421.net

Page 49: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Out-of-tree and maintainership

Do NOT fall into the trap of adding more and morestuff to an out-of-tree project. It just makes it harderand harder to get it merged. There are manyexamples of this.– Andrew Morton

The fact is, maintainership does not meanownership. It means that you should be responsiblefor the code, and you get credit for it, but if problemshappen you do NOT “own” it. Not at all. –LinusTorvalds

Page 50: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Historicohttp://www.linux-kongress.org/2010/slides/KN.lk2010_jon_corbet_fail.pdf

I 2007-03-04: First postI 2007-03-05: Linus amenable to mergingI 2007-03-19: Linus gets irritatedI 2007-04-13: Molnar posts CFSI 2007-07-10: CFS merged for 2.6.23I 2007-07-25 Con leaves the kernel community

So, I’ve had enough. I’m out of here forever. I want toleave before I get so disgruntled that I end up usingwindows. – Con Kolivas

Page 51: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Completely Fair Scheduler

I Em uma CPU multitask perfeitaI n processos poderiam rodar ao mesmo tempoI cada um receberia 1/n do poder de processamento

I Em uma CPU realI um processo roda e os outros esperam

I Primeira versao foi escrita em 62 horas

Page 52: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

CFS: Implementacao

I p->wait runtime: tempo que a thread deve rodar paraalcancar a justica na distribuicao

I em um ambiente ideal, p->wait runtime seria semprezero

I thread escolhida tem sempre o maior valor dep->wait runtime

I enquanto uma thread esta rodando p->wait runtime edecrementada

p->wait runtime = p->wait runtime - time runningI a thread sofre preempcao quando atinge o menor

p->wait runtime

Page 53: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

CFS: Arvore Rubro-Negra

Inside the Linux 2.6 Completely Fair Scheduler

Page 54: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

CFS

I Virtual time: tempo corre mais devagar do que no mundoreal

I Velocidade e inversamente proporcional ao numero deprocessos

Page 55: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Um cartoon inspirou Con Kolivas

Con Kolivas Introduces New BFS Scheduler, Linux Magazine

Page 56: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

2009: BFS

BFS is the Brain F*ck Scheduler. It was designed tobe forward looking only, make the most of lower specmachines, and not scale to massive hardware. ie it isa desktop orientated scheduler, with extremely lowlatencies for excellent interactivity by design ratherthan ”calculated”, with rigid fairness, nice prioritydistribution and extreme scalability within normal loadlevels. —Con Kolivas

Page 57: Escalonamento de processos - Home | …islene/1s2017-mc504/sched.pdfHistoria dos sistemas operacionais´ Monoprogramac¸ao˜ Memoria´ Job Sistema Operacional Com apenas um job em

Referencias

I Modern Operating Systems, Andrew Tanenbaum, SecondEdition

I Inside the Linux 2.6 Completely Fair Scheduler, Tim JonesI Inside the Linux Scheduler, Tim JonesI Linux Kernel Development Second Edition, Robert LoveI 25 Feb 2013: Linux and Linux Scheduling, Geoffrey

ChallenI Kernel Development: How things can go wrong (and why

you should participate anyway, Jonathan CorbetI Process Scheduling, Cristianno, Robson e Rodrigo,

MO806 2008I CFS Scheduler, Fabio e Andre, MO806 2009