Trabalho
Escalonamento de Processos e Threads
Escalonador
Processes 0 1 n–2 n–1
Scheduler
Tanenbaum: Figura 2.3 A fun¸˜o do escalonador ´ escolher qual deve ser ca e o pr´ximo processo a ser executado. o
Quando escalonar
• Quando um processo ´ criado e • Quando um processo termina • Quando um processo faz uma opera¸˜o de I/O ca • Interrup¸˜o de rel´gio (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 est˜o faltando? a
Campos gerenciados por processo
• Gerˆncia de processos: registradores, contador de e programa, program status word, estado, prioridades, identificador de processos, sinais • Gerˆncia de mem´ria: apontadores para os segmentos de e o dados, texto e pilha. • Gerˆncia de arquivos: diret´rio raiz e corrente, e o descritores de arquivos, identificadores de usu´rio e a grupo ∗ Quais recursos s˜o compartilhados pelas threads? a
Mudan¸a 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 verificar em .../linux-2.6.24.2/kernel/sched.c? ;-)
Objetivos dos algoritmos de escalonamento
• Justi¸a 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