Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pedro Cabalar
Depto. de Computacin
Universidade da Corua
TEMA III. PROCESOS
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 1 / 41
Planicacin
Como vimos, en un SO multiprograma varios procesos o threads
listos pueden competir por la CPU.
Los procesos se suelen comportar alternando rfagas de CPU y
de E/S.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 3 / 41
Planicacin
Denicin (Planicador)
El planicador (scheduler) es la parte del SO que decide a qu
proceso preparado se le da paso a CPU.
Existen distintos algoritmos de planicacin (scheduling algorithms).
Planicacin no apropiativa (non-preemptive): deja ejecutar al
proceso en CPU hasta que ste para por bloqueo (inicio E/S),
espera por otro proceso o terminacin voluntaria.
Planicacin apropiativa: el planicador puede desalojar al
proceso en CPU durante su ejecucin y cambiarlo por otro.
Necesita una interrupcin de reloj para poder ejecutarse en
perodos regulares de tiempo (quantum).
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 4 / 41
Objetivos del planicador
Los objetivos de un planicador varan dependiendo del entorno de
aplicacin:
Entornos de proceso por lotes (batch): ej. inventarios, clculo de
nminas, etc. Tpicamente planicacin no apropiativa, o si no,
apropiativa con quantum muy largo. Se denomina planicador a
largo plazo (o de trabajos) y mayormente decide el orden de los
trabajos y el grado de multiprogramacin.
Entornos interactivos: entornos grcos, servidores, etc.
Planicacin apropiativa para atender distintos procesos
concurrentemente (tiempo compartido). Se suele llamar
planicador a medio plazo. Decide tambin si debe realizar
intercambio (swapping).
Entornos de tiempo real: menos dependencia de apropiacin de
CPU. Los procesos no ejecutan por largos perodos de tiempo. El
sistema y sus procesos suelen ser ms limitados y controlados.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 5 / 41
Objetivos tpicos del planicador
En todos los entornos:
Justicia (fairness): que el proceso obtenga una porcin de CPU
justa o razonable.
Poltica: que se satisfaga un determinado criterio establecido (ej.
prioridades).
Equilibrio: que todas las partes del sistema estn ocupadas
haciendo algo.
En sistemas batch:
Productividad o rendimiento (throughput) = nmero de trabajos /
unidad de tiempo. Intentamos maximizarlo.
Tiempo de paso o de retorno (turnaround): tiempo transcurrido
entre que se lanza un proceso y termina. Intentamos minimizarlo.
Capacidad de ejecucin: mantener la CPU ocupada todo el rato.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 6 / 41
Objetivos tpicos del planicador
En entornos interactivos:
Tiempo de respuesta: tiempo que transcurre entre que el usuario
da una orden y se obtiene alguna respuesta.
Proporcionalidad: cumplir expectativas de usuario (tareas
sencillas=poco tiempo de respuesta).
Mantener un mximo de usuarios interactivos o de clientes.
En sistemas de tiempo real:
Fiabilidad: evitar perder datos; reaccionar en tiempo lmite, etc.
Predecibilidad: p. ej. evitar degradacin de calidad multimedia.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 7 / 41
Medidas de tiempo
Tiempo de paso o de retorno (turnaround) (t
R
) = el total
transcurrido desde que se inicia (Ti ) hasta que naliza (Tf ).
t
R
def
= Tf Ti
Incluye:
n+1
= t
n
+ (1 )
n
donde:
n+1
= valor de la estimacin
t
n
= ltima rfaga
n
= valor anterior de la estimacin
[0, 1] factor de ajuste
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 21 / 41
Prioridades
El algoritmo SJF es un caso particular de algoritmo por
prioridades.
Se puede usar de modo apropiativos o no apropiativo.
Denicin (Prioridad)
La prioridad de un proceso es un valor numrico que se usa como
factor para determinar si debe entrar en CPU antes que otro(s).
Tipos de prioridades:
Internas: asignadas por el S.O. a partir de informacin de los
procesos. Ej: tiempo en CPU, uso de memoria, cheros abiertos,
relacin entre rfagas CPU y E/S, etc.
Externas: asignadas por S.O. (privilegios del usuario) o incluso
por preferencias del propietario (ej: comando nice en UNIX).
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 22 / 41
Prioridades
Principal desventaja: inanicin (starvation). Un proceso queda
siempre esperando.
Se suele resolver mediante asignacin dinmica de prioridades.
Dos ejemplos:
i =1
C
i
P
i
1
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 32 / 41
Planicacin en Sistemas Tiempo Real
Ejemplo: 3 ujos con P
1
= 100, P
2
= 200 y P
3
= 500 y consumos
de CPU de C
1
= 50, C
2
= 30 y C
3
= 100 todo en ms.
La suma da 0, 5 +0, 15 +0, 2 < 1.
Si aadimos un cuarto ujo con P
4
= 1000 cunto podra valer
C
4
como mximo para seguir siendo planicable?
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 33 / 41
Planicacin con Hebras
La hebra (thread) se puede denir como la unidad bsica de
utilizacin de CPU.
Ariadna y Teseo (Nicol Bambini)
Un proceso tiene como mnimo una hebra. Si tiene varias, puede
realizar varias tareas concurrentemente.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 34 / 41
Planicacin con Hebras
Las hebras de un proceso comparten: segmento de cdigo,
segmento de datos, recursos (archivos abiertos, seales, etc).
Por cada hebra tenemos: identicador, contador de programa,
registros, pila.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 35 / 41
Planicacin con Hebras
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 36 / 41
Planicacin con Hebras
Ventajas
Mayor capacidad de respuesta: si una hebra se bloquea, las
dems pueden seguir ejecutndose.
Puede haber varias hebras compartiendo los mismos recursos
(memoria, cheros, etc).
Menos costoso que crear procesos, el cambio de contexto
tambin es ms ligero.
Pueden aprovechar arquitecturas multiprocesador.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 37 / 41
Planicacin con Hebras
La planicacin se separa a dos niveles: procesos; hebras.
Un planicador de procesos elige el proceso. Despus un
planicador de hebra escoge la hebra.
No existe apropiacin entre hebras. Si la hebra agota el quantum
del proceso, se salta a otro proceso. Cuando vuelva, seguir con
la misma hebra
Si la hebra no agota el quantum, el planicador de hebra puede
saltar a otra hebra del mismo proceso.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 38 / 41
Planicacin con Multirocesadores
Cuando tenemos varios procesadores la planicacin se
complica.
Asignar trabajos de distintas duraciones a varios procesadores de
forma ptima es un problema combinatorio (complejidad NP).
Tpicamente son adems sistemas multi-hebra.
Multiprocesamiento simtrico: un procesador toma la decisiones y
el resto se limita a ejecutar los procesos.
Multiprocesamiento asimtrico: cada procesador tiene su propia
planicacin. Si comparten la cola de preparados, hay que
controlar que cada proceso entre en un nico procesador.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 39 / 41
Planicacin con Multirocesadores
Aunque tengamos varios ncleos idnticos, para una hebra dada,
no todos son igual de interesantes.
Si una hebra A lleva ms tiempo en CPU 1, la cach 1 estar
llena de datos de A. A esto se le llama anidad.
Los algoritmos de anidad funcionan a dos niveles:
1
Primero asignan un grupo de hebras a cada procesador
2
Despus hacen planicacin interna en cada CPU
Ventaja: mxima anidad de la cach. Posible problema: dejar
CPUs ociosas (se reconsidera la asignacin de hebras).
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 40 / 41
Planicacin con Multirocesadores
Equilibrado de carga: busca mantener equilibrada la actividad de
las distintas CPUs.
Migracin imperativa: cada determinado tiempo se comprueba la
carga entre procesadores y se impone una migracin entre dos
de ellos, si es necesario.
Migracin solicitada: un procesador inactivo extrae proceso a otro.
P. Cabalar ( Depto. de Computacin Universidade da Corua ) Sistemas Operativos Tema III. Procesos 41 / 41