Documente Academic
Documente Profesional
Documente Cultură
Multiprogramacin
Ejecucin de procesos
Ciclo de
CPU burst I/O burst Seleccin algoritmo calendarizacin Calendarizador a corto plazo Seleccionar siguiente proceso ready No necesariamente FIFO
Ayuda en
CPU scheduler
1) Proceso pasa de running a waiting (I/O) 2) Proceso pasa de running a ready (INT) 3) Proceso pasa de waiting a ready (I/O completada) 4) Proceso termina
No permiten interrupciones
Dispatcher
Context switch Cambiar a user mode Saltar a ubicacin de user program y reanudar ejecucin
Utilizacin de CPU
< 40%: sistema poco cargado > 90%: sistema cargado Nmero de procesos completados / unidad de tiempo
Tiempo total de ejecucin de proceso Tiempo total en estado waiting
Throughput
Turnaround time
Waiting time
Response time
ALGORITMOS DE CALENDARIZACIN
Tiempo de llegada: P1 , P2 , P3
P1 0 24 P2 27 P3 30
Tiempo de llegada P2 , P3 , P1
P2 0 3 P3 6 P1 30
Waiting time P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 Convoy effect: procesos cortos esperan por procesos largos
Asignar CPU a proceso con menor CPU burst Minimizar waiting time Difcil saber CPU burst
Estimar
Non-preemptive: Al asignar CPU, no se puede asignar a otro proceso hasta que se termine el CPU burst Preemptive: Shortest-Remaining-Time-First (SRTF)
Burst Time 7 4 1 4
P2 P4
SJF
P1 P3
12
16
Burst Time 7 4 1 4
P4 P1
SJF
P1 0 2 P2 4 P3 5 P2 7
11
16
Priority Scheduling
Externa: importancia del proceso Interna: memoria, archivos abiertos, burst time average
Al apagar la IBM 7094 en 1973, un proceso creado en 1967 todava no haba sido ejecutado Aging: al pasar el tiempo, aumentar prioridad
Preemptive: Es posible asignar CPU a nuevo proceso de alta prioridad Non preemptive: nuevo proceso de alta prioridad ser el siguiente en ser ejecutado
Round Robin
Multitasking (tiempo compartido) Cola circular Time quantum (10 100 ms): ningn proceso tendr el CPU ms que un time quantum. (Excepto si no hay otros procesos) q pequeo:
Parece que cada proceso tiene un CPU Mayor a tiempo de context switch
Process P1 P2 P3 P4
Burst Time 53 17 68 24
q = 20
P1 0 20 P2 37 P3 57 P4 P1 77 P3 97 117 P4 P1 P3 P3
N procesos, q quantum
Cada proceso tendr 1/n el CPU En intervalos de tiempo no mayores a q Cada proceso tendr que esperar como mximo (n-1)*q
Cada cola tiene su propio algoritmo de calendarizacin Fixed priority scheduling: Ejecutar todos los de foreground y luego background
starvation.
Procesos se pueden mover dentro de las colas Algoritmo ms genrico, definido por:
Nmero de colas Algoritmo de calendarizacin de cada cola Mtodo para determinar cmo procesos suben y bajan de una cola a otra Mtodo para determinar en qu cola ingresa nuevo proceso
Algoritmo ms complejo
Colas
Calendarizacin
Alta prioridad a procesos con CPU burst corto Procesos largos bajan a cola con menos prioridad
Dos acercamientos
Multiprocesamiento asimtrico
Un procesador calendariza procesos y realiza I/O Los dems, ejecutan user code Ms simple. No es necesaria sincronizacin de estructuras del sistema Cada procesador se calendariza Cola comn o cola por procesador Programacin cuidadosa
Multiprocesamiento simtrico
Afinidad de procesador
Balanceo de carga
Pull
Symmetric Multithreading
CALENDARIZACIN DE THREADS
Muchos a uno, muchos a mucho (kernel threads) Competicin de CPU entre user threads del mismo proceso que pelean por algunos kernel threads
Una user thread por una kernel thread Windows, Solaris, Linux
Pthread
PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_SYSTEM
EJEMPLOS
Solaris
Calendarizacin basada en prioridades. Multilevel feedback queue. Cada cola tiene su algoritmo
Real time. (Prioridad: 100-159) System (kernel) (Prioridad: 60-99) Time sharing & Interactive (Prioridad: 0-59)
EVALUACIN DE ALGORITMOS
Maximizar utilizacin de CPU. Tiempo de respuesta menor a 1 segundo. Maximiar throughput de forma que turnaround time es proporcional a execution time
Mtodo de evaluacin
Modelo determinstico
Define el performance de cada algoritmo con la carga actual. Simple y rpido Aplica nicamente a la carga actual. Requiere el input exacto til si se corre la misma carga una y otra vez.
Anlisis de Colas
Medir y aproximar distribucin de CPU e I/O bursts. Aproximar tiempos de creacin de procesos Para cada algoritmo
Simulaciones
Todos los modelos son poco precisos El ambiente de ejecucin puede cambiar En algunos casos es posible monitorear desempeo
Realizar modificaciones