Académique Documents
Professionnel Documents
Culture Documents
Fernando R. Rannou
Departamento de Ingenieria Informatica
Universidad de Santiago de Chile
March 8, 2014
Los ticks (HZ)
es decir, el timer hace tick 1000 veces por segundo o 1 tick cada un
milisegundo
Es importante no confundir este timer con la frecuencia del procesador.
Por ejemplo, en un procesador de 1.0 Ghz, el número de ciclos por ticks es
109 ciclos
= 106
103 ticks
Los jiffies
El kernel mantiene una variable llamada jiffies que contiene en
número de ticks que han ocurrido desde que se booteo el sistema
(<linux/jiffies.h>)
SCHED RR
1. Los procesos se ejecutan durante un quantum de tiempo, no
apropiativamente
2. Cuando expira el quantum, el proceso retorna al final de su runqueue
3. Si un proceso SCHED RR es desapropiado por un proceso con mayor
SP (ya sea SCHED FIFO o SCHED RR), retorna al frente de su
runqueue, y cuando vuelve al procesador, el quantum asignado es la
porción que no alcanzó a utilizar anteriormente
4. Un proceso SCHED RR corre hasta que expira su quantum, o se
bloquea por I/O, o es desapropiado por un proceso con mayor
prioridad, o desaloja voluntariamente el procesador invocando
sched yield()
El quantum para estas tareas es:
En SCHED OTHER las tareas tienen una prioridad estática (SP) y una
prioridad dinámica (DP):
◮ SP por defecto es 120. Puede modificarse con nice
◮ −20 ≤ nice ≤ 19
◮ DP se calcula según SP y el tiempo promedio que la tarea ha estado
durmiendo
struct runqueue {
struct prioarray *active;
struct prioarray *expired;
struct prioarray arrays[2];
};
struct prioarray {
int nr_active;
unsigned long bitmap[5];
struct list_head queue[140];
};
¿Cuál proceso planificar?
(140 − SP) × 20 if SP < 120
q=
(140 − SP) × 5 if SP ≥ 120
SP nice q
Priorida alta 100 -20 800 ms
110 -10 600 ms
Prioridad inicial 120 0 100 ms
120 +10 50 ms
Prioridad baja 139 +19 5 ms
Procesos interactivos
bonus − 5 ≥ SP/4 − 28