Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema: Planificación
Referencia: Operating System Concepts – 10th Edition / Silberschatz, Galvin and Gagne
Planificación de la CPU
Conceptos básicos
Criterios de programación
Algoritmos de programación
Programación de Hilos
Evaluación de algoritmos
3.2
1
Objetivos
3.3
Conceptos básicos
3.4
2
Histograma de tiempos de uso de la CPU
3.5
Planificador de CPU
El planificador de la CPU selecciona entre los procesos de la cola de listos y asigna el
núcleo de la CPU a uno de ellos.
● La cola puede ser ordenada de varias maneras
Las decisiones de planificación de la CPU pueden tener lugar cuando se lleva a cabo un
proceso:
1. Cambio de ejecución a estado de espera
2. Cambio de ejecución a estado listo
3. Cambio de estado de esperar a listo
4. Termina
La planificación 1 y 4 no son apropiativas
El resto de las planificaciónes son apropiativas
● Considerar el acceso a los datos compartidos
● Considerar la anticipación mientras se está en modo kernel
● Considerar las interrupciones que ocurren durante las actividades cruciales del SO
Un planificador no apropiativo ( cooperativo ) no puede retirar a un proceso del CPU.
El proceso coopera abandonando voluntariamente al CPU
3.6
3
Despachador
El módulo de despachador da el control de la CPU
al proceso seleccionado por el planificador a corto
plazo; esto involucra:
● contexto de conmutación
● cambio al modo de usuario
● saltar a la ubicación correcta en el programa de
usuario para reiniciar ese programa
Latencia de envío - tiempo que tarda el
despachador en detener un proceso e iniciar otro
en ejecución.
3.7
Criterios de planificación
Tiempo de respuesta - cantidad de tiempo que se tarda desde que se presenta una
solicitud hasta que se produce la primera respuesta, no la salida (para un entorno de
tiempo compartido).
3.8
4
Criterios de optimización de algoritmos de planificación
Rendimiento máximo
3.9
P1 P2 P3
0 24 27 30
3.10
5
Planificación FCFS (Cont.)
Supongamos que los procesos llegan en el orden:
P2, P3, P1
El diagrama de Gantt para el programa es:
P2 P3 P1
0 3 6 30
3.11
● Utilice estas longitudes para programar el proceso con el menor tiempo posible
3.12
6
Ejemplo de SJF
P4 P1 P3 P2
0 3 9 16 24
3.13
Sólo puede estimar la longitud que se estima debe ser similar a la anterior
● A continuación, seleccione el proceso con la próxima ráfaga de CPU más corta
prevista.
Comúnmente, α se establece en ½
Versión preventiva llamada"el tiempo más corto restante" (shortest-remaining-time-
first)
3.14
7
Predicción de la duración de la próxima ráfaga de CPU
3.15
=0
● n+1 = n
● La historia reciente no cuenta
α =1
● n+1 = tn
● Sólo cuenta la última ráfaga de CPU real
Si expandimos la fórmula, obtenemos:
n+1 = tn+(1 - ) tn -1 + …
+(1 - )j tn -j + …
+(1 - )n +1 0
3.16
8
Ejemplo de tiempo restante más corto -primero
P1 P2 P4 P1 P3
0 1 5 10 17 26
3.17
Cada proceso obtiene una pequeña unidad de tiempo de CPU (time quantum q),
normalmente 10-100 milisegundos. Una vez transcurrido este tiempo, el proceso se anula
y se añade al final de la cola de espera.
● q grande FIFO
3.18
9
Ejemplo de RR con Quantum de tiempo = 4
● Típicamente, un promedio de respuesta más alto que el SJF, pero una mejor
respuesta
3.19
3.20
10
El tiempo de respuesta varía con el Quantum de tiempo
3.21
La CPU se asigna al proceso con la prioridad más alta (entero más pequeño, prioridad
más alta).
● Preventivo
● No preventiva
Problema Inanición - es posible que los procesos de baja prioridad nunca se ejecuten
3.22
11
Ejemplo de planificación por prioridades
Proceso Tiempo de CPU Prioridad
P1 0 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2
3.23
3.24
12
Cola de varios niveles
Con la planificación por prioridades, tenga colas separadas para cada prioridad.
Programe el proceso en la cola de mayor prioridad!
3.25
3.26
13
Cola de retroalimentación multinivel
Un proceso puede moverse entre las diferentes colas; el envejecimiento puede ser
parámetros:
● número de colas
● método utilizado para determinar en qué cola entrará un proceso cuando ese proceso
necesite servicio
3.27
Tres colas:
● Q2 - FCFS
Planificación
● Un nuevo trabajo entra en la cola Q0 que se sirve a FCFS
3.28
14
Planificación de Hilos
3.29
15
API de programación de hilos de rosca
/* ajustar el algoritmo de programación a PCS o SCS *//
pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
** crear los hilos *//
para (i = 0; i < NUM_THREADS; i++)
pthread_create(&tid[i],&attr,runner,NULL);
/* ahora se unen en cada hilo *//
para (i = 0; i < NUM_THREADS; i++)
pthread_join(tid[i], NULL);
}
/* Cada hilo comenzará el control en esta función *//
void *runner(void *param)
{
/* ...hacer algo de trabajo... */
pthread_exit(0);
}
3.31
● CPUs multinúcleo
● Núcleos multihilo
● Sistemas NUMA
● Multiprocesamiento heterogéneo
3.32
16
Planificación de múltiples procesadores
Todos los hilos pueden estar en una cola de espera común (a)
3.33
Procesadores multinúcleo
3.34
17
Sistema Multicore Multithreaded
3.35
3.36
18
Sistema Multicore Multithreaded
hardware se ejecutará en el
núcleo físico.
3.37
Si es SMP, necesita mantener todas las CPUs cargadas para mayor eficiencia
procesador ocupado.
3.38
19
Planificación de múltiples procesadores - Afinidad de procesadores
Nos referimos a esto como un hilo que tiene afinidad por un procesador (es decir, "afinidad del
procesador").
El balanceo de carga puede afectar la afinidad del procesador ya que un hilo puede ser
movido de un procesador a otro para balancear cargas, pero ese hilo pierde el contenido de lo
que tenía en la caché del procesador del que fue movido.
Afinidad dura - permite que un proceso especifique un conjunto de procesadores en los que
puede ejecutarse.
3.39
3.40
20
Planificación de CPU en tiempo real
Sistemas blandos en tiempo real - Las tareas críticas en tiempo real tienen la más alta
prioridad, pero no hay garantía de cuándo se programarán las tareas.
Sistemas en tiempo real - la tarea debe ser atendida antes de la fecha límite.
3.41
3.42
21
Evaluación de algoritmos
3.43
Evaluación determinista
● El RR es de 23 ms:
3.44
22
Modelos de cola
Describe la llegada de los procesos y las ráfagas de CPU y E/S de forma probabilística
Sistema informático descrito como una red de servidores, cada uno con una cola de
procesos en espera.
3.45
Fórmula Little's
La ley de Little's - en estado estable, los procesos que salen de la cola deben ser iguales
a los procesos que llegan, por lo tanto:
n=λxW
3.46
23
Simulaciones
3.47
3.48
24
Implementación
3.49
Muchas Gracias!
Contacto: rcastano@gmail.com
Referencia: Operating System Concepts – 10th Edition / Silberschatz, Galvin and Gagne
25