Академический Документы
Профессиональный Документы
Культура Документы
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
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.
1401
7094
1401
(a)
(b)
(c)
(d)
(e)
(f)
Aproveitamento da CPU
CPU-bound
(a) Long CPU burst Waiting for I/O Short CPU burst
(b) Time
IO-bound
Aproveitamento da CPU
Aproveitamento da CPU
Admission scheduler
Memory scheduler
Disk
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?
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
Escalonamento de threads
Escalonamento em dois n veis: processos e threads
Process 1 Process 1 Process 1 Process
User space
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
Escalonamento de threads
Threads de usurio e de kernel a
Process A Order in which threads run Process B Process A Process B
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)
Escalonamento de threads
Implementao h ca brida
Multiple user threads on a kernel thread
User space
Kernel
Kernel thread
Kernel space