Вы находитесь на странице: 1из 29

MC514Sistemas Operacionais: Teoria e Prtica a 1s2008

Escalonamento de Processos e Threads

Escalonador
Processes 0 1 n2 n1

Scheduler

Tanenbaum: Figura 2.3 A funo do escalonador escolher qual deve ser ca e o prximo processo a ser executado. o

Quando escalonar
Quando um processo criado e Quando um processo termina Quando um processo faz uma operao de I/O ca Interrupo de relgio (sistemas preemptivos) ca o

Estado dos processos


Running 1 Blocked 3 4 2 Ready 1. Process blocks for input 2. Scheduler picks another process 3. Scheduler picks this process 4. Input becomes available

Tanenbaum: Figura 2.2 Por que algumas arestas esto faltando? a

Campos gerenciados por processo


Gerncia de processos: registradores, contador de e programa, program status word, estado, prioridades, identicador de processos, sinais Gerncia de memria: apontadores para os segmentos de e o dados, texto e pilha. Gerncia de arquivos: diretrio raiz e corrente, e o descritores de arquivos, identicadores de usurio e a grupo Quais recursos so compartilhados pelas threads? a

Mudana de contexto c
1. Hardware stacks program counter, etc. 2. Hardware loads new program counter from interrupt vector. 3. Assembly language procedure saves registers. 4. Assembly language procedure sets up new stack. 5. C interrupt service runs (typically reads and buffers input). 6. Scheduler decides which process is to run next. 7. C procedure returns to the assembly code. 8. Assembly language procedure starts up new current process.

Tanenbaum: Figura 2.5 Vamos vericar em .../linux-2.6.24.2/kernel/sched.c? ;-)

Objetivos dos algoritmos de escalonamento


Justia c Cada processo deve receber a sua parte da CPU Policy enforcement Respeito `s pol a ticas estabelecidas Equil brio Todas as partes do sistema devem estar operando

Escalonamento em sistemas batch


Card reader Tape drive Input tape System tape Output tape Printer

1401

7094

1401

(a)

(b)

(c)

(d)

(e)

(f)

Tanenbaum: Figura 1.2

Escalonamento em sistemas batch


Throughput o nmero de jobs por hora deve ser maximizado u Turnaround time o tempo entre a submisso e o trmino de um job a e deve ser minimizado Utilizao da CPU ca A CPU deve car ocupada o tempo todo

Escalonamento em sistemas batch


First-Come First-Served
e ca Processos obtm a CPU na ordem de requisio No preemptivo a Aproveitamento ruim da CPU

Aproveitamento da CPU
CPU-bound
(a) Long CPU burst Waiting for I/O Short CPU burst

(b) Time

IO-bound

Aproveitamento da CPU

Processos I/O-bound conseguem poucos ciclos

Aproveitamento da CPU

Processos I/O-bound conseguem mais ciclos

Escalonamento em sistemas batch


Shortest Job First
8 A 4 B (a) 4 C 4 D 4 B 4 C 4 D (b) 8 A

Vazo (throughput) excelente a Turnaround time (a) (8 + 12 + 16 + 20)/4 = 14 (b) (4 + 8 + 12 + 20)/4 = 11

Escalonamento em sistemas batch


Shortest Job First
Todos jobs precisam ser conhecidos previamente Processos no tempo 0: 8 10 Processos no tempo 3: 4 4 8 10 Se jobs curtos chegarem continuamente, os jobs longos nunca sero escalonados a Processos no tempo 100: 4 4 4 4 4 4 4 4 4 8 10

Shortest Remaining Time Next


Verso preemptiva do algoritmo anterior a Tenta car livre logo dos processos :-) Bom throughput Bom servio para jobs curtos novos c

Escalonamento em trs n e veis


CPU

CPU scheduler Arriving job

Input queue Main Memory

Admission scheduler

Memory scheduler

Disk

Tanenbaum: Figura 2.40

Escalonamento em sistemas interativos


Tempo de resposta O usurio quer respostas rpidas a a Proporcionalidade a E necessrio respeitar as expectativas de tempo (tarefas fceis versus tarefas dif a cies)

Round-Robin
Current process B Next process F D (a) G A Current process F D G (b) A B

Tanenbaum: Figura 2.41 Preemptivo Time quantum Como saber o valor ideal?

Prioridades para escalonamento


Queue headers Priority 4 Priority 3 Priority 2 Priority 1 (Lowest priority) Runable processes (Highest priority)

Tanenbaum: Figura 2.42 Prioridades estticas ou dinmicas a a Comando nice

CTSS
Compatible Time Sharing System
E mais eciente rodar programas CPU-bound raramente por per odos longos do que frequentemente por per odos curtos Como determinar a classe de um processo? Classe 0 (1 quantum) P1 P2 Classe 1 (2 quanta) Classe 2 (4 quanta) Classe 3 (8 quanta) P0 P3 P4 P6 P5 P7

Shortest Process Next


Baseado no algoritmo shortest job rst Comandos jobs Estimativas de tempo (aging ) T0 T0 /2 + T1 /2 T0 /4 + T1 /4 + T2 /2 T0 /8 + T1 /8 + T2 /4 + T3 /2

Justia em sistemas interativos c


Escalonamento garantido O SO faz promessas e deve mant-las (e.g. 1/n CPU) e Loteria Baseado na distribuio de tickets ca Fcil dar pesos distintos aos processos a Fair-share Cada usurio receber uma parte adequada do poder a a de processamento da CPU

Escalonamento em sistemas de tempo real


Respeitar deadlines Previsibilidade Hard real time e soft real time Tratamento dos eventos peridicos o
m Ci i=1 Pi

Pi : periodicidade Ci : tempo de CPU

Pol tica versus Mecanismo


a Considere o seguinte cenrio: um processo pai e vrios processos lhos a os processos lhos atendem requisies co o processo pai sabe quais so as mais prioritrias a a O escalonador prov o mecanismo de escalonamento e O processo pai sabe a pol tica a ser adotada

Escalonamento de threads
Escalonamento em dois n veis: processos e threads
Process 1 Process 1 Process 1 Process

User space

Thread Kernel space Kernel (a)

Thread Kernel (b)

Tanenbaum: Figura 2.6

Escalonamento de threads
Threads de usurio e de kernel a
Process Thread Process Thread

User space

Kernel space

Kernel

Kernel

Run-time system

Thread table

Process table

Process table

Thread table

Tanenbaum: Figura 2.13

Escalonamento de threads
Threads de usurio e de kernel a
Process A Order in which threads run Process B Process A Process B

2. Runtime system picks a thread

1. Kernel picks a process Possible: A1, A2, A3, A1, A2, A3 Not possible: A1, B1, A2, B2, A3, B3 (a)

1. Kernel picks a thread Possible: A1, A2, A3, A1, A2, A3 Also possible: A1, B1, A2, B2, A3, B3 (b)

Tanenbaum: Figura 2.43

Escalonamento de threads
Implementao h ca brida
Multiple user threads on a kernel thread

User space

Kernel

Kernel thread

Kernel space

Tanenbaum: Figura 2.14

Вам также может понравиться