Está en la página 1de 152

Captulo 3

Procesos

Fundamentos de los Computadores II 0


(Sistemas Operativos)
Contenido

1. Concepto de proceso
2. Multitarea
3. Informacin de los procesos
4. Estado de los procesos
5. Procesos ligeros
6. Planificacin
7. Seales y excepciones
8. Temporizadores
9. Servidores y demonios
10. Servicios POSIX

Fundamentos de los Computadores II 1


(Sistemas Operativos)
1. Concepto de proceso

Fundamentos de los Computadores II 2


(Sistemas Operativos)
Concepto de proceso (I)

Proceso:
Programa en ejecucin. Unidad de procesamiento gestionada por
el SO
El SO mantiene para cada proceso una serie de estructuras de
informacin que permiten identificar sus caractersticas y los
recursos asignados. Una parte bsica de esta informacin se
encuentra en el BCP (bloque de control de proceso). El SO
mantiene una tabla con los BCPs de todos los procesos

Informacin asociada a cada proceso:


Contenido de los segmentos de memoria donde residen el cdigo y
los datos (core image o imagen de memoria)
Contenido de los registros del modelo de programacin (PC,
estado, etc.)
Contenido del BCP

Fundamentos de los Computadores II 3


(Sistemas Operativos)
Concepto de proceso (II)

Ya que los procesos encargados de arrancar el SO son los primeros en


ejecutar, se va creando una jerarqua de procesos como la indicada
a continuacin
Proc. Inic.

Inicio Inicio Inicio Inicio Dem. Impr. Dem. Com..

Shell Shell

Proceso A
Editor

Proceso B Proceso D Proceso C

Proceso E Proceso F

Fundamentos de los Computadores II 4


(Sistemas Operativos)
Concepto de proceso (III)

Para referirse a las relaciones entre procesos se emplean los trminos


padre, hijo, hermano, etc. Cuando un proceso A solicita al SO la
creacin de un nuevo proceso (B), se dice que A es padre de B y
que B es hijo de A. UNIX mantiene explcitamente una estructura
jerrquica de procesos.

El entorno del proceso consiste en un conjunto de variables que se


le pasan al nuevo proceso en el momento de su creacin. Est
formado por una tabla de pares NOMBRE-VALOR (nombre de
variable, valor de variable). Algunos ejemplos de variables de
entorno son:

PATH=/usr/local/bin:/usr/bin
TERM=xterm
HOME=/home/fc2
PWD=/home/fc2/documentos

Fundamentos de los Computadores II 5


(Sistemas Operativos)
Concepto de proceso (IV)

Los procesos forman grupos, con diferentes propiedades. El


conjunto de procesos creados a partir de un shell puede forman un
grupo. Tambin puede ser un grupo el conjunto de procesos
asociados a un usuario o a un terminal. Algunos servicios del SO
pueden operar selectivamente sobre todos los procesos de un
grupo.

Fundamentos de los Computadores II 6


(Sistemas Operativos)
2. Multitarea

2.1. Introduccin
2.2. Base de la multitarea
2.3. Ventajas
2.4. Grado de multiprogramacin y
necesidades de MP

Fundamentos de los Computadores II 7


(Sistemas Operativos)
Multitarea (I)

2.1. Introduccin
Dependiendo del nmero de procesos y usuarios que pueden ejecutar
simultneamente, un SO puede ser:

- Monotarea (monoproceso): slo un proceso en cada instante


- Multitarea (multiproceso)
- Monousuario N procesos
- Multiusuario (tiempo compartido)

1 ms de 1

Monoproceso Multiproceso
1
Monousuario Monousuario
N usuarios
Multiproceso
ms de 1
Multiusuario

Fundamentos de los Computadores II 8


(Sistemas Operativos)
Multitarea (II)

2.2. Base de la multitarea


La multitarea se basa en las siguientes caractersticas:

a) Paralelismo real entre operaciones de E/S y uso del


procesador: cuando un proceso realiza una operacin de E/S se
pasa a ejecutar otro
b) Alternancia en los procesos en fases de E/S y
procesamiento: aprovechar las fases de realizacin de
operaciones de E/S de unos procesos para ejecutar otros
c) Memoria principal capaz de almacenar varios procesos

Procesamiento

Entrada/salida
Tiempo

Fundamentos de los Computadores II 9


(Sistemas Operativos)
Multitarea (III)

Proceso A

Proceso B Procesamiento
Entrada/salida
Listo
Proceso C SO

Procesador

Tiempo

Proceso Nulo

Fundamentos de los Computadores II 10


(Sistemas Operativos)
Multitarea (IV)

Estado de los procesos. Un proceso puede encontrarse en diferentes


situaciones, que cambian a medida que se modifican sus
necesidades. Los estados bsicos en que pueden encontrarse un
proceso son: listo, ejecucin y bloqueado

Termina
Ejecucin

Nuevo Final E/S


Listo Bloqueado

Fundamentos de los Computadores II 11


(Sistemas Operativos)
Multitarea (V)

Planificador (scheduler). Forma parte del ncleo del SO. Entra en


ejecucin cada vez que se activa el SO y tiene por misin
seleccionar el proceso que se ejecutar a continuacin.

Activador (dispatcher). Tambin forma parte del SO y se encarga


de poner en ejecucin el proceso seleccionado por el planificador.

Fundamentos de los Computadores II 12


(Sistemas Operativos)
Multitarea (VI)

2.3. Ventajas de la multitarea


Las ms importantes son:

a) Facilita la programacin. Las aplicaciones pueden organizarse


en varios procesos, beneficiando as la modularidad.
b) Prestar buen servicio, al poder atender a varios usuarios de
forma eficiente, interactiva y simultnea.
c) Aprovechar los tiempos muertos que los procesos pasan
esperando la conclusin de operaciones de E/S.
d) Aumentar el uso de la CPU, al aprovechar los tiempos de
bloqueo de unos procesos en la ejecucin de otros.

Fundamentos de los Computadores II 13


(Sistemas Operativos)
Multitarea (VII)

2.4. Grado de multiprogramacin y


necesidades de MP

Grado de multiprogramacin: nmero de procesos activos


mantenidos por el SO. A ms procesos activos, mayor probabilidad
de encontrar en cada instante uno en situacin de ser ejecutado. A
ms procesos activos mayores necesidades de memoria.

En un sistema sin memoria virtual los procesos activos han de


residir plenamente en MP. En este caso, el grado de
multiprogramacin est severamente limitado por el tamao de los
procesos y por la memoria disponible. En este caso, a ms
procesos mayor grado de uso de la CPU (procesos siempre en MP).

Fundamentos de los Computadores II 14


(Sistemas Operativos)
Multitarea (VIII)

100%

Utilizacin del procesador


Proceso A
Proceso B

Proceso N
SO
Memoria
principal
Cada proceso reside 0%
totalmente en M.p Grado de multiprogramacin

Fundamentos de los Computadores II 15


(Sistemas Operativos)
Multitarea (IX)

En sistemas con memoria virtual la situacin es ms compleja. Los


procesos slo tienen en MP su conjunto residente (pginas que
estn en MP), por lo que podramos tener ms procesos cargados
en MP. Si se aumenta demasiado el nmero de procesos, el
conjunto residente de cada uno se hace muy pequeo.

Al disminuir el conjunto residente ya no representa adecuadamente al


futuro conjunto de trabajo (pginas en uso), por lo que se
producirn muchos fallos de pgina.

Los fallos de pgina consumen mucho tiempo del procesador, ya que


el SO ha de tratar el fallo, y tiempo de E/S, ya que es necesaria
una migracin de pginas.

Al crecer el nmero de fallos de pgina sistema dedica ms tiempo a


resolver los fallos de pgina que a realizar las tareas de los
programas (hiperpaginacin).
Fundamentos de los Computadores II 16
(Sistemas Operativos)
Multitarea (X)

Marcos de pgina por proceso


Al aumentar el nivel de multiprogramacin a
cada proceso le tocan menos marcos de pgina

1 2 3 4
Nivel de Multiprogramacin

100 % 100 %
% Utilizacin de UCP

Limitado por el dispositivo

% Utilizacin de UCP
de paginacin
Limitado por el dispositivo
de paginacin

Nivel de Multiprogramacin Nivel de Multiprogramacin


MEMORIA PEQUEA MEMORIA GRANDE

Fundamentos de los Computadores II 17


(Sistemas Operativos)
3. Informacin de los procesos

3.1. Estado del procesador


3.2. Imagen de memoria de un proceso
3.3. Informacin del BCP
3.4. Tablas del SO

Fundamentos de los Computadores II 18


(Sistemas Operativos)
Informacin de los procesos (I)

3.1. Estado del procesador


El estado del procesador queda definido por el contenido de sus
registros: registros generales, contador del programa, puntero de
pila, registros de estado, registros especiales (RIED)

Cuando un proceso se ejecuta el estado del procesador responde a su


ejecucin, y se almacena directamente en los registros del
procesador. Cuando el proceso deja de ejecutarse esta informacin
pasa a almacenarse en el bloque de control de proceso (BCP).

La rutina del SO que trata las interrupciones, en primer lugar, salva el


estado del procesador en el BCP del proceso interrumpido.

Fundamentos de los Computadores II 19


(Sistemas Operativos)
Informacin de los procesos (II)

3.2. Imagen de memoria de un proceso


La imagen de memoria de un proceso est constituida por los
espacios de memoria que est autorizado a usar (los que el
SO le ha asignado). Algunas cuestiones a tener en cuenta son:

a) El proceso slo puede tener informacin en su imagen de


memoria. Si intenta un acceso a una posicin de memoria fuera de
ella, el hardware de proteccin lo detectar y generar la
excepcin correspondiente. Esta excepcin activa la ejecucin del
SO, quien tomar la opcin oportuna (generalmente abortar el
proceso)

b) Dependiendo del computador, la imagen de memoria se refiere a


memoria virtual o memoria fsica. Esto es transparente al
proceso

Fundamentos de los Computadores II 20


(Sistemas Operativos)
Informacin de los procesos (III)

c) Los procesos suelen necesitar asignacin dinmica de espacio.


Por tanto, la imagen debe adaptarse a sus necesidades, creciendo
o decreciendo

El SO es el responsable de asignar memoria a los procesos. Para ello


emplea diferentes mtodos:

a) Un nico segmento de tamao fijo. Modelo muy sencillo de


implementar. Suele restringirse su uso a sistemas sin memoria
virtual. Este espacio no puede variar de tamao. Como
consecuencia, un proceso podra ejecutar su memoria durante la
etapa de ejecucin
b) Un nico segmento de tamao variable. Solucin no empleada
c) Nmero variable de segmentos con tamao variable. Puede
haber tantos segmentos como necesite el proceso. Es la solucin
ms flexible y la adoptada normalmente por los SSOO modernos.

Fundamentos de los Computadores II 21


(Sistemas Operativos)
Informacin de los procesos (IV)

d) Nmero fijo de segmentos, pero de tamao variable. Basado


en que los procesos emplean varios tipos de informacin:
Cdigo o texto. Programa mquina que ha de ejecutar el proceso.
Informacin fija, sobre la que slo se realizan operaciones de
lectura
Datos. Al permitir asignacin dinmica de memoria podra variar
su tamao
Pila. A travs del puntero de pila los programas usan una
estructura de pila residente en MP. En ella se almacenan, por
ejemplo, los bloques de activacin de los procedimientos llamados.
Se trata de una estructura dinmica: crece y decrece segn
avanza la ejecucin del proceso.

Fundamentos de los Computadores II 22


(Sistemas Operativos)
Informacin de los procesos (V)
N fijo de segmentos N variable de
de tamao variable segmentos de
tamao variable
PILA

PROCESO PROCESO
DATOS
TEXTO

N variable de segmentos de
RIED Memoria
tamao variable
Memoria principal
virtual

Cdigo

Datos Disco
Tamao

Tabla de
pginas
Pila
Una tabla de
pginas
por proceso

Fundamentos de los Computadores II 23


(Sistemas Operativos)
Informacin de los procesos (VI)

3.3. Informacin del BCP

El BCP contiene la informacin bsica de los procesos, entre la que


destaca:

a) Informacin de identificacin (usuario, grupo, proceso, proceso


padre)
b) Estado del procesador: valores iniciales del procesador o valores
correspondientes al momento en que el proceso dej de ejecutar
c) Informacin de control del proceso:
Informacin de planificacin y estado: estado del proceso,
evento que espera (si est bloqueado), prioridad, etc
Descripcin de los segmentos de memoria asignados al
proceso
Recursos asignados: archivos abiertos, puertos de
comunicacin, etc
Fundamentos de los Computadores II 24
(Sistemas Operativos)
Informacin de los procesos (VII)

Punteros para organizar y almacenar los procesos en colas o


anillos (para facilitar la tarea del planificador)
Comunicacin entre procesos: almacn de seales y mensajes
enviados al proceso

Fundamentos de los Computadores II 25


(Sistemas Operativos)
Informacin de los procesos (VIII)

3.4. Tablas del SO

El SO mantiene una serie de tablas que describen a los procesos y a


los recursos del sistema.
Registros
especiales Mapa de memoria
del Proceso A

Mapa de memoria
del Proceso B
Registros Tablas del sistema operativo
Mapa de memoria
generales -Tabla de procesos
del Proceso C
BCP Proceso A BCP Proceso B BCP Proceso C
- Estado (registros) - Estado (registros) - Estado (registros)
Tablas SO - Identificacin - Identificacin - Identificacin
PC - Control - Control - Control
- Tabla de memoria
SP Mapa de
- Tabla de E/S
Memoria - Tabla de archivos
Estado

Fundamentos de los Computadores II 26


(Sistemas Operativos)
Informacin de los procesos (IX)

Toda la informacin referente a los diferentes procesos se almacenan


en tablas (procesos, memoria, E/S y archivos)
La informacin asociada a cada proceso se encuentra parcialmente
dentro y fuera del BCP dependiendo de:
Eficiencia: acelerar los accesos. La tabla de procesos
generalmente se construye como una estructura esttica, para
acoger un nmero determinado de BCP de idntico tamao. En
este sentido, las informaciones del proceso que tuvieran un
tamao variable no deberan incluirse en el BCP (la tabla de
pginas)
Comparticin de informacin: si una informacin ha de ser
compartida por varios procesos no debe incluirse en el BCP, ya que
es de acceso restringido al proceso dueo.

Fundamentos de los Computadores II 27


(Sistemas Operativos)
Informacin de los procesos (X)

a) Tabla de procesos: La tabla de procesos est formada por una


lista de estructuras de BCP.
b) La tabla de E/S incluye informacin relativa a los perifricos y
operaciones de E/S. Los SSOO suelen mantener una cola para cada
dispositivo, donde se almacenan las operaciones pendientes de
ejecucin, as como la operacin actualmente en curso.
c) Tabla de memoria: Estructura de rbol donde se almacenan las
tablas de memoria de cada uno de los procesos, cuya direccin
principal se almacena en RIED.
d) Tabla de archivos: Matriz donde se almacenan los punteros a los
archivos abiertos por cada uno de los procesos.

Fundamentos de los Computadores II 28


(Sistemas Operativos)
Informacin de los procesos (XI)

La formacin de un proceso es el proceso por el que se completan


todas las informaciones que lo describen. El SO realiza:
a) Asignacin de espacio de memoria ( normalmente espacio virtual
en varios segmentos).
b) Seleccionar BCP libre en la tabla de procesos
c) Rellenar BCP con informacin de identificacin del proceso,
descripcin de memoria asignada, valores de los registros, etc
d) Carga del segmento de texto, con el cdigo.
e) Carga del segmento de datos iniciales del archivo objeto.
e) Inicializacin de la pila en el segmento de pila. Inicialmente
incluye el entorno del proceso y los parmetros pasados en la
invocacin del programa correspondiente.
Una vez hecho esto, el proceso puede marcarse como listo, de forma
que el planificador, cuando lo considere oportuno, pase a
ejecutarlo.

Fundamentos de los Computadores II 29


(Sistemas Operativos)
4. Estado de los procesos

4.1. Introduccin
4.2. Cambio de contexto

Fundamentos de los Computadores II 30


(Sistemas Operativos)
Estado de los procesos (I)

4.1. Introduccin

No todos los procesos activos de un sistema multitarea estn en la


misma situacin. Se distinguen tres estados bsicos:

a) Ejecucin. En este estado slo est el proceso que est siendo


ejecutado. El estado del proceso reside en los registros del
procesador
b) Bloqueado. A la espera de que ocurra un evento. Situacin tpica:
un proceso solicita una operacin de E/S. Hasta que no finalice la
operacin el proceso queda bloqueado. El estado del proceso
reside en su BCP

c) Listo. Puede entrar en ejecucin en cuanto lo considere oportuno


el planificador (mdulo del SO que decide qu proceso pasar a
ejecutarse). El estado del proceso reside en su BCP

Fundamentos de los Computadores II 31


(Sistemas Operativos)
Estado de los procesos (II)

Adems de los estados bsicos tambin pueden estar:

a) Suspendido. Para disminuir el grado de multiprogramacin


efectivo el SO puede retirar a un proceso sus marcos de pgina,
alojndolo en la zona de intercambio (usualmente disco). El
objetivo de esta operacin es dejar suficiente memoria para los
procesos no suspendidos, de forma que el conjunto residente no
provoque hiperpaginacin
b) En espera. Los procesos entran en el sistema porque lo solicita
otro proceso o al estar prevista su ejecucin batch. Es usual
disponer de una lista de procesos batch en espera, para ser
ejecutados en cuanto se pueda. El SO analiza dicha lista y lanza la
ejecucin de los procesos a medida que dispone de los recursos
necesarios.

Fundamentos de los Computadores II 32


(Sistemas Operativos)
Estado de los procesos (III)

Exit
Ejecucin
do Es
a pe
ific ra

Memoria
n do p
Pla mi
or
E/
s u S
con
o
mp
Tie
Listo Fin E/S Bloqueado

Recuperado del disco

Expulsado al disco

Expulsado al disco
Entra al
sistema

intercambio
Zona de
Listo y Fin E/S Bloqueado y
Procesos por lotes suspendido suspendido

en espera

Fundamentos de los Computadores II 33


(Sistemas Operativos)
Estado de los procesos (IV)

4.2. Cambio de contexto


El cambio de contexto implica:

a) Salvar el estado del procesador en el BCP

Registros
especiales
Tabla de procesos

BCP Proceso A BCP Proceso B BCP Proceso N


Registros Estado Estado Estado
generales (registros) (registros) (registros)
Informacin de Informacin de Informacin de
identificacin identificacin identificacin
PC
Informacin de Informacin de Informacin de
SP Control Control Control
Estado

Fundamentos de los Computadores II 34


(Sistemas Operativos)
Estado de los procesos (V)

b) Ejecucin de la rutina de tratamiento de interrupcin del SO


(slo cuando se produce una interrupcin)

Como consecuencia del cambio de contexto puede producirse un


cambio en el estado de algunos procesos, aunque no
necesariamente.

Ejemplo: Proceso A bloqueado esperando el final de una operacin de


disco y llegue una interrupcin (seal de final). Si la interrupcin
indica el final de la operacin esperada, el SO cambia el estado del
proceso a listo o ejecucin. Es decir, hay cambio de estado.

Ejemplo: Proceso A en ejecucin y se produce una interrupcin de


teclado, asociada al proceso B. Se produce el cambio de contexto,
pero B sigue bloqueado y A sigue en estado de ejecucin.

Fundamentos de los Computadores II 35


(Sistemas Operativos)
5. Procesos ligeros

5.1. Introduccin
5.2. Estados de los procesos ligeros
5.3. Paralelismo
5.4. Diseo con procesos ligeros

Fundamentos de los Computadores II 36


(Sistemas Operativos)
Procesos ligeros (I)

5.1. Introduccin
Un proceso ligero (thread o hebra) es un programa en ejecucin que
comparte la imagen de la memoria y otras informaciones con
otros procesos ligeros.

Proceso

Procesos ligeros

Fundamentos de los Computadores II 37


(Sistemas Operativos)
Procesos ligeros (II)

El concepto de proceso posee dos caractersticas:


Propiedad de los recursos. Un proceso incluye un espacio de
direcciones virtuales para el manejo de la imagen del proceso,
es decir, programa, datos, pila y atributos definidos en el BCP.
Tambin se le puede asignar propiedad sobre recursos tales
como la memoria principal, canales de E/S, dispositivos de E/S
y archivos.
Planificacin/ejecucin. La ejecucin de un proceso sigue
una traza a travs de uno o ms programas. De esta manera,
un proceso tiene un estado de ejecucin (/Ejecutando, Listo,
etc.) y una prioridad de activacin y esta es la entidad que se
planifica y activa por el sistema operativo.
En la mayora de los sistemas operativos tradicionales, estas dos
caractersticas son la esencia de un proceso. Estas dos caractersticas
son independientes y pueden ser tratadas como tales por el sistema
operativo. La unidad que se activa se denomina Hilo y la unidad
propietaria de los recursos Proceso.
Fundamentos de los Computadores II 38
(Sistemas Operativos)
Procesos ligeros (III)

En definitiva, los procesos ligeros permiten realizar funciones cuya


ejecucin puede lanzarse en paralelo.

Cada proceso ligero contiene informacin propia que no comparte


con otros procesos ligeros.
Las informaciones propias se refieren esencialmente al contexto de
ejecucin: contador del programa, pila, registros y estado del
proceso ligero (ejecutando, listo, bloqueado).

Todos los procesos ligeros de un mismo padre comparten el


espacio de direcciones de memoria: cdigo, datos, pilas, etc.
Por tanto, no existe un mecanismo de proteccin de memoria
entre procesos ligeros.

Fundamentos de los Computadores II 39


(Sistemas Operativos)
Procesos ligeros (IV)

5.2. Estado de los procesos ligeros


Un proceso ligero puede estar ejecutando, listo o bloqueado.

Bloqueado por comunicacin


Proceso Bloqueado por acceso a disco
Activo

Procesos ligeros

Fundamentos de los Computadores II 40


(Sistemas Operativos)
Procesos ligeros (V)

Puede haber tantos procesos ligeros hijos de un mismo padre en


ejecucin como procesadores tenga la mquina.

El estado del proceso padre al que pertenecen los procesos ligeros


ser la combinacin de los estados de sus procesos ligeros:

a) Si hay algn proceso ligero en ejecucin, el proceso padre estar


en ejecucin
b) Si no hay ningn proceso ligero en ejecucin, pero hay alguno
listo, el proceso padre estar en estado listo
c) Si todos los procesos ligeros estn bloqueados, el proceso padre
estar bloqueado

Fundamentos de los Computadores II 41


(Sistemas Operativos)
Procesos ligeros (VI)

5.3. Paralelismo
Los procesos ligeros permiten paralelizar una aplicacin.

Procedimiento 1 Procedimiento 2
P F P F Ejecucin
Espera Espera serie
en E/S en E/S

Procedimiento 1
P F
Espera
en E/S
Ejecucin
paralela
Procedimiento 2
P F
Espera Procesamiento
en E/S

Fundamentos de los Computadores II 42


(Sistemas Operativos)
Procesos ligeros (VII)

Cuando un programa puede dividirse en procedimientos que se


pueden ejecutar de forma independiente, el mecanismo de los
procesos ligeros permite el lanzamiento simultneo de todos ellos.
De esta forma, se aprovecha al mximo el uso del procesador.

Base: mientras un proceso ligero est bloqueado otro podr ejecutarse

Fundamentos de los Computadores II 43


(Sistemas Operativos)
Procesos ligeros (VIII)

5.4. Diseo con procesos ligeros


El uso de procesos ligeros permite:

a) Separacin de tareas. Cada tarea se puede encapsular en un


proceso ligero independiente
b) Facilitar la modularidad, al dividir tareas complejas en
subtareas
c) Aumentar la velocidad de ejecucin del trabajo, al aprovechar
los tiempos de bloqueo de unos procesos en la ejecucin de otros

El paralelismo, unido a la comparticin de memoria, permite la


programacin concurrente. Dificultad: garantizar que el acceso
a los datos compartidos se haga de forma correcta.

Fundamentos de los Computadores II 44


(Sistemas Operativos)
Procesos ligeros (IX)

Los principios bsicos a aplicar son:

a) Hay variables globales compartidas entre varios procesos


ligeros. Su ejecucin independiente puede producir accesos
incorrectos sobre estas variables
b) Para ordenar el acceso a los datos se emplean tcnicas de
sincronizacin, para impedir que un proceso ligero pueda
acceder a los datos mientras otro los est usando

Aplicacin tpica de los procesos ligeros: diseo de procesos servidores


paralelos. Varias posibilidades:
a) Proceso ligero distribuidor y trabajadores
b) Procesos ligeros iguales
c) Procesos ligeros por fases

Fundamentos de los Computadores II 45


(Sistemas Operativos)
Procesos ligeros (X)

a) Proceso ligero distribuidor cuya funcin es recibir rdenes y


pasarlas a otros procesos ligeros (trabajadores). El esquema
puede contemplar un proceso trabajador por cada solicitud de
servicio (morir al finalizar su trabajo), o bien procesos ligeros que
reciben peticiones, las realizan y quedan a la espera. Ms
eficiente.
Distribuidor

Trabajador

S o lic it u d e s
Ncleo
Puerto

Fundamentos de los Computadores II 46


(Sistemas Operativos)
Procesos ligeros (XI)

b) Disponer de un conjunto de procesos ligeros iguales: todos ellos


pueden recibir rdenes. Al llegar una peticin se encamina a un
proceso ligero, que la trata y completada la tarea, se dispone a
esperar nuevas peticiones

Trabajador

S o lic it u d e s
Ncleo
Puerto

Fundamentos de los Computadores II 47


(Sistemas Operativos)
Procesos ligeros (XII)

c) Cada trabajo se divide en una serie de fases, encargndose de cada


una de ellas un proceso ligero especializado. El esquema permite
tratar tantas solicitudes como fases tenga la cadena.
Segmentacin (pipe-line)

Trabajador

S o lic it u d e s
Ncleo
Puerto

Fundamentos de los Computadores II 48


(Sistemas Operativos)
Procesos ligeros (XIII)

Existen dos categoras de implementacin de hilos: hilos a nivel de


usuario (ULT) e hilos a nivel de ncleo (KLT)
ULT. En un entorno ULT puro, la aplicacin gestiona todo el trabajo de los
hilos y el ncleo no es consciente de la existencia de los mismos

Fundamentos de los Computadores II 49


(Sistemas Operativos)
Procesos ligeros (XIV)

Ventajas de ULT sobre KLT:


El cambio de hilo no requiere privilegios de ncleo porque todas
las estructuras de datos de gestin de hilos estn en el espacio
de direcciones de usuario de un solo proceso.
La planificacin puede especificarse por parte de la aplicacin, sin
tocar el planificador del sistema operativo.
Los ULT pueden ejecutar en cualquier sistema operativo

Desventajas de los ULT respecto a los KLT:


Cuando un ULT realiza una llamada al sistema, no slo se
bloquea ese hilo, sino que se bloquean todos los hilos del
proceso.
En una estrategia ULT pura, una aplicacin multihilo no puede
sacar ventaja del multiproceso. El ncleo asigna el proceso a un
solo procesador al mismo tiempo, luego slo puede ejecutar, en
instante determinado, un hilo del proceso

Fundamentos de los Computadores II 50


(Sistemas Operativos)
6. Concurrencia

6.1. Introduccin
6.2. Exclusin mutua
6.3. Sincronizacin
6.4. Semforos, monitores, paso de mensajes
6.5. Interbloqueo e inanicin

Fundamentos de los Computadores II 51


(Sistemas Operativos)
Concurrencia(I)

6.1. Principios de la concurrencia


Trminos clave:
Seccin crtica. Seccin de cdigo dentro de un proceso que
requiere acceso a recursos compartidos y que no puede ser
ejecutada mientras otro proceso est en una seccin de cdigo
correspondiente.
Interbloqueo. Situacin en la cual dos o ms procesos son
incapaces de actuar porque cada uno est esperando que alguno
de los otros haga algo
Crculo vicioso. Situacin en la cual dos o ms procesos cambian
continuamente su estado en respuesta a cambios en los otros
procesos, sin realizar ningn trabajo til.
Exclusin mutua. Requisito de que cuando un proceso est en
una seccin crtica que accede a recursos compartidos, ningn
otro proceso pueda estar en una seccin crtica que acceda a
ninguno de esos recursos compartidos.

Fundamentos de los Computadores II 52


(Sistemas Operativos)
Concurrencia(II)

6.1. Principios de la concurrencia (continuacin)

Condicin de carrera. Situacin en la cual mltiples hilos o


procesos leen y escriben un dato compartido y el resultado final
depende de la coordinacin relativa de sus ejecuciones.
Inanicin. Situacin en la cual un proceso preparado para
avanzar es soslayado indefinidamente por el planificador; aunque
es capaz de avanzar, nunca se le escoge.

Fundamentos de los Computadores II 53


(Sistemas Operativos)
Concurrencia(III)

Analicemos un ejemplo.
Sea el siguiente procedimiento:

Void eco()
{
cent = getchar();
csal = cent;
putchar(csal);
}

Este procedimiento muestra los elementos esenciales de un programa


que proporcionar un procedimiento de eco de un carcter; la entrada se
obtiene del teclado, una tecla cada vez. Cada carcter introducido se
almacena en la variable cent, luego se transfiere a la variable csal y se
enva a la pantalla. Cualquier programa puede llamar repetidamente a
este procedimiento.

Fundamentos de los Computadores II 54


(Sistemas Operativos)
Concurrencia(IV)

Consideremos la siguiente secuencia:


1. El proceso P1 invoca el procedimiento eco y es interrumpido
inmediatamente despus de que getchar devuelva su valor y sea
almacenado en cent.
2. El proceso P2 se actica e invoca al procedimiento eco, que ejecuta
hasta concluir, habiendo ledo y mostrado en pantalla un nico
carcter, y.
3. Se retoma el proceso P1. en este instante, el valor x ha sido
sobrescrito en cent y por tanto se ha perdido. En su lugar, cent
contiene y, que es transferido a csal y mostrado.

Fundamentos de los Computadores II 55


(Sistemas Operativos)
Concurrencia(V)

En el caso que el sistema sea multiprocesador, consideremos lo


siguiente:

Proceso P1 Proceso P2
. .
cent = getchar(); .
. cent = getchar();
csal = cent; csal = cent;
putchar(csal); .
. putchar(csal);
. .

Fundamentos de los Computadores II 56


(Sistemas Operativos)
Concurrencia(VI)

Condicin de carrera
Sucede cuando mltiples procesos o hilos leen y escriben datos de
manera que el resultado final depende del orden de ejecucin de las
instrucciones en los mltiples procesos.
Caso (a):
Dos procesos P1 y P2, comparten la variable global a. en algn punto de
su ejecucin, P1 actualiza a al valor 1 y, en el mismo punto en su
ejecucin, P2 actualiza a al valor 2. As, las dos tareas compiten en una
carrera por escribir la variable a. El perdedor de la carrera determina el
valor de a.
Caso (b):
Dos procesos P3 y P4, que comparten las variables globales b y c, con
valores iniciales b = 1 y c = 2. En algn punto de su ejecucin, P3
ejecuta la asignacin b = b + c y, en algn punto de su ejecucin, P4
ejecuta la asignacin c = b + c. Los dos procesos actualizan variables
distintas, sin embargo, los valores finales dependen del orden en que se
ejecuten las dos asignaciones.

Fundamentos de los Computadores II 57


(Sistemas Operativos)
Concurrencia(VII)

Consideremos ahora un spooler de impresin.


Cuando un proceso desea imprimir un archivo, escribe el nombre del
archivo en un directorio spooler particular. Otro proceso, demonio
para paginacin, verifica en forma peridica si existen archivos por
imprimir y, en caso afirmativo, los imprime para despus eliminar sus
nombres de dicho directorio.
El directorio spooler tiene un enorme nmero de entradas, numeradas
0,1,2,3,, cada una de las cuales puede almacenar el nombre de un
archivo. Existen dos variables compartidas: out, que apunta hacia el
siguiente archivo por imprimir, e in, que apunta hacia la siguiente
entrada libre dentro del directorio. Estas dos variables pueden
conservarse en un archivo de dos palabras, disponible para todos los
procesos. En cierto instante, las entradas del 0 al 3 estn vacas y las del
4 al 6 estn ocupadas. En forma ms o menos simultnea, los procesos
A y B deciden colocar un archivo en la fila de impresin.

Fundamentos de los Computadores II 58


(Sistemas Operativos)
Condiciones de competencia

Dos procesos desean tener acceso a la memoria compartida al mismo tiempo

Fundamentos de los Computadores II 59


(Sistemas Operativos)
Concurrencia(VIII)

Las situaciones presentadas reciben el nombre de condiciones de


competencia. Cmo evitarlas?
La clave para evitar los problemas en stas y otras situaciones
relacionadas con recursos compartidos (memoria, archivos, etc.) es
determinar una forma de prohibir que ms de algn proceso lea o
escriba en los datos compartidos a la vez. En otras palabras, lo que se
necesita es excusin mutua, una forma de garantizar que si un proceso
utiliza una variable o archivo compartidos, los dems procesos no
puedan utilizarlos.
La parte del programa, en la cual se tiene acceso a la memoria
compartida se llama seccin crtica. Si podemos evitar que dos
procesos estn al mismo tiempo en su seccin crtica, podremos evitar
las condiciones de competencia.

Fundamentos de los Computadores II 60


(Sistemas Operativos)
Concurrencia(IX)

Podemos mencionar cuatro condiciones para poder obtener una buena


solucin al problema:

1. Dos procesos no deben encontrarse al mismo tiempo dentro de


sus secciones crticas.
2. No se deben hacer hiptesis sobre la velocidad o el nmero de
CPU.
3. Ninguno de los procesos que estn en ejecucin fuera de su
seccin crtica puede bloquear a otros procesos.
4. Ningn proceso debe esperar eternamente para entrar a su
seccin crtica.

Fundamentos de los Computadores II 61


(Sistemas Operativos)
Concurrencia(X)

Desactivacin de interrupciones.
La solucin ms simple es hacer que cada proceso desactivara todas sus
interrupciones justo antes de entrar a la seccin crtica y los activara de
nuevo una vez que saliera de ellos.
Esta solucin no es atractiva porque no es correcto que los procesos de
usuario puedan desactivar las interrupciones. Es una tcnica til dentro
del ncleo, pero no es adecuada como mecanismo general de exclusin
mutua para los procesos de usuario.
Variables de cerradura.
Consideremos el caso de una sola variable compartida de cerradura. Si
se desea que un proceso entre a su regin crtica, primero se hace una
prueba de la cerradura. Si sta es 0, el proceso cambia su valor a 1 y
entra a la regin crtica. Si sta ya vale 1, el proceso espera hasta que
obtiene el valor 0 de nuevo. As, un 0 indica que ningn proceso se
encuentra en la regin crtica y un 1 indica que cierto proceso est en su
regin crtica.

Fundamentos de los Computadores II 62


(Sistemas Operativos)
Concurrencia(XI)

Alternancia estricta.

while (TRUE) while (TRUE)


{ {
while (turn != 0); /* wait */ while (turn != 1); /* wait */
critical_section(); critical_section();
turn = 1; turn = 0;
noncritical_section(); noncritical_section();
} }

(a) (b)

Los turnos no son una buena idea cuando uno de los procesos es mucho
ms lento que el otro, pues viola la condicin 3.

Fundamentos de los Computadores II 63


(Sistemas Operativos)
Concurrencia(XII)

Otras soluciones
Soluciones de espera ocupada
Solucin de Dekker
Solucin de Peterson
La instruccin TSL (test and set lock)

Soluciones que bloquean a la CPU


SLEEP y WAKEUP
Semforos
Monitores
Transferencia de mensajes

Fundamentos de los Computadores II 64


(Sistemas Operativos)
Fundamentos de los Computadores II 65
(Sistemas Operativos)
Interbloqueo(I)

Es el bloqueo permanente de un conjunto de procesos que o bien


compiten por recursos del sistema o se comunican entre s. Un
conjunto de procesos est interbloqueado cuando cada proceso del
conjunto est bloqueado esperando un evento (normalmente la
liberacin de un recurso requerido) que slo puede generar otro
proceso bloqueado del conjunto. El interbloqueo es permanente
porque no puede producirse ninguno de los eventos.

Fundamentos de los Computadores II 66


(Sistemas Operativos)
Interbloqueo(II)

Fundamentos de los Computadores II 67


(Sistemas Operativos)
Interbloqueo(III)

Suponga que hay dos procesos P y Q que tienen la siguiente estructura


general

Fundamentos de los Computadores II 68


(Sistemas Operativos)
Interbloqueo(IV)

Fundamentos de los Computadores II 69


(Sistemas Operativos)
Interbloqueo(V)

Fundamentos de los Computadores II 70


(Sistemas Operativos)
Interbloqueo(VI)

Fundamentos de los Computadores II 71


(Sistemas Operativos)
Interbloqueo(VII)

Pueden distinguirse dos categoras de recursos: reutilizables y


consumibles.

Recursos reutilizables: es aquel que slo lo puede utilizar de forma


segura un proceso en cada momento y que no se destruye despus de
su uso. Ejemplo: procesadores, canales de E/S, memoria principal y
secundaria, dispositivos, y estructuras de datos como archivos, bases
de datos y semforos.

Recursos consumibles: es aquel que puede crearse (producirse) y


destruirse (consumirse). Normalmente, no hay lmite en el nmero de
recursos consumibles de un determinado tipo. Ejemplo: interrupciones,
seales, mensajes e informacin en buffers de E/S.

Fundamentos de los Computadores II 72


(Sistemas Operativos)
Interbloqueo(VIII)
Grafos de asignacin de recursos

Fundamentos de los Computadores II 73


(Sistemas Operativos)
Interbloqueo(IX)

Fundamentos de los Computadores II 74


(Sistemas Operativos)
Interbloqueo(X)

Condiciones para el interbloqueo:


1. Exclusin mutua. Slo un proceso puede utilizar un recurso en cada
momento. Ningn proceso puede acceder a una unidad de un recurso
que se ha asignado a otro proceso
2. Retencin y espera. Un proceso puede mantener los recursos
asignados mientras espera la asignacin de otros recursos.
3. Sin expropiacin. No se puede forzar la expropiacin de un recurso a
un proceso que lo posee.
Si se cumplen estas tres condiciones puede haber un interbloqueo, pero
aunque se cumplan puede que no lo haya. Para eso se requiere una
cuarta condicin
4. Espera circular. Existe una lista cerrada de procesos, de tal manera que
cada proceso posee al menos un recurso necesitado por el siguiente
proceso de la lista.

Fundamentos de los Computadores II 75


(Sistemas Operativos)
Interbloqueo(XI)

Posibilidad de interbloqueo Existencia de interbloqueo

1. Exclusin mutua 1. Exclusin mutua


2. Sin expropiacin 2. Sin expropiacin
3. Retencin y espera 3. Retencin y espera
4. Espera circular

Existen tres estrategias para el tratamiento del interbloqueo:


1. Prevenir. Adoptar una poltica que elimine una de las condiciones
2. Predecir. Tomar las apropiadas decisiones dinmicas basadas en el
estado actual de asignacin de recursos.
3. Detectar. Se cumplen las 4 condiciones; realizar las acciones
pertinentes para recuperarse

Fundamentos de los Computadores II 76


(Sistemas Operativos)
Interbloqueo(XII)

Prevencin del interbloqueo


La estrategia de prevencin del interbloqueo consiste en disear un
sistema de manera que se excluya l posibilidad del interbloqueo. Se
pueden clasificar los mtodos en dos categoras:
Un mtodo indirecto; es impedir la aparicin de una de las tres
condiciones necesarias.
Un mtodo directo; impedir que se produzca una espera circular
Exclusin mutua. En general no puede eliminarse
Retencin y espera. Puede eliminarse estableciendo que un proceso
debe solicitar al mismo tiempo todos sus recursos requeridos,
bloquendolo hasta que se le puedan conceder todas las peticiones
simultneamente.
Sin expropiacin. Se puede impedir de varias maneras. Si a un
proceso que mantiene varios recursos se le deniega una peticin
posterior, deber liberar sus recursos originales. Alternativamente, si un
proceso solicita un recurso que otro proceso mantiene actualmente, el
SO puede expropiar al segundo proceso y obligarle a liberar sus
recursos
Fundamentos de los Computadores II 77
(Sistemas Operativos)
Interbloqueo(XIII)

Espera circular. La condicin de espera circular se puede impedir


definiendo un orden lineal entre los distintos tipos de recursos. Si a un
proceso le han asignado recursos de tipo R, posteriormente puede
pedir slo aquellos recursos cuyo tipo tengan un orden posterior al de
R.
Para comprobar que esta estrategia funciona, se puede asociar un
ndice a cada tipo de recurso, de manera que el recurso Ri precede al
recurso Rj en la ordenacin si i < j. Supngase que dos procesos, A y
B, estn involucrados en un interbloqueo debido a que A ha adquirido
Ri y solicitado Rj, y B ha adquirido Rj y solicitado Ri. Esta condicin es
imposible puesto que implica que i<j y que j<i.

Fundamentos de los Computadores II 78


(Sistemas Operativos)
Interbloqueo(XIV)

Prediccin del interbloqueo


Permite las tres condiciones necesarias pero toma decisiones razonables
para asegurarse que nunca se alcanzar el punto del interbloqueo. Con la
prediccin del interbloqueo, se decide dinmicamente si la peticin actual
de reserva de un recurso, si se concede, podr potencialmente causar un
interbloqueo. La prediccin del interbloqueo, por tanto, requiere el
conocimiento de las futuras solicitudes de recursos de un proceso.
Dos tcnicas para predecir el interbloqueo:
No iniciar un proceso si sus demandas podran llevar al
interbloqueo
No conceder una peticin adicional de un recurso por parte de un
proceso si esta asignacin podra provocar un interbloqueo.

Fundamentos de los Computadores II 79


(Sistemas Operativos)
Interbloqueo(XV)

Fundamentos de los Computadores II 80


(Sistemas Operativos)
Interbloqueo(XVI)

Fundamentos de los Computadores II 81


(Sistemas Operativos)
Interbloqueo(XVII)

Denegacin de asignacin de recursos


Denominada algoritmo del banquero, la propuso por primera vez
Dijkstra.
Consideremos un sistema con un nmero fijo de procesos y de
recursos. En un determinado momento un proceso puede tener 0 o
ms recursos asignados. El estado del sistema refleja la asignacin
actual de recursos a procesos. Luego, el estado consiste en los dos
vectores, Recursos y Disponibles, y las dos matrices, Necesidad y
Asignacin, definidas anteriormente.
Un estado seguro es aquel en el que hay al menos una secuencia de
asignacin de recursos a los procesos que no implica un interbloqueo,
es decir, todos los procesos pueden ejecutarse por completo.
Un estado inseguro es, evidentemente, un estado que no es seguro.

Fundamentos de los Computadores II 82


(Sistemas Operativos)
Interbloqueo(XVIII)

El siguiente ejemplo muestra estos conceptos. Un sistema consta de 4 procesos y


tres recursos. La cantidad total de recursos R1, R2 y R3 son de 9, 3 y 6 unidades,
respectivamente. En el estado actual se han realizado asignaciones a los cuatro
procesos, dejando disponibles 1 unidad de R2 y 1 unidad de R3.
La pregunta es: es un estado seguro?
Para responder a esto, se plantea una pregunta intermedia: alguno de los cuatro
procesos puede ejecutarse por completo con los recursos disponibles?
En trminos de las matrices y vectores presentados anteriormente, la condicin
que debe cumplirse para el proceso i es la siguiente:
Nij Aij <= Dj, para todo j

Fundamentos de los Computadores II 83


(Sistemas Operativos)
Interbloqueo(XIX)

Proc R1 R2 R3 Proc R1 R2 R3 Proc R1 R2 R3


P1 3 2 2 P1 1 0 0 P1 2 2 2
P2 6 1 3 P2 6 1 2 P2 0 0 1
P3 3 1 4 P3 2 1 1 P3 1 0 3
P4 4 2 2 P4 0 0 2 P4 4 2 0
Matriz N Matriz A Matriz N - A

R1 R2 R3 R1 R2 R3
9 3 6 0 1 1
Recursos R Disponibles D

Proc R1 R2 R3 Proc R1 R2 R3 Proc R1 R2 R3


P1 3 2 2 P1 1 0 0 P1 2 2 2
P2 6 1 3 P2 6 1 3 P2 0 0 0
P3 3 1 4 P3 2 1 1 P3 1 0 3
P4 4 2 2 P4 0 0 2 P4 4 2 0
Matriz N Matriz A Matriz N - A

R1 R2 R3 R1 R2 R3
9 3 6 6 2 3
Recursos R Disponibles D

Fundamentos de los Computadores II 84


(Sistemas Operativos)
Interbloqueo(XX)

Proc R1 R2 R3 Proc R1 R2 R3 Proc R1 R2 R3


P1 3 2 2 P1 3 2 2 P1 0 0 0
P2 6 1 3 P2 6 1 3 P2 0 0 0
P3 3 1 4 P3 2 1 1 P3 1 0 3
P4 4 2 2 P4 0 0 2 P4 4 2 0
Matriz N Matriz A Matriz N - A

R1 R2 R3 R1 R2 R3
9 3 6 7 2 3
Recursos R Disponibles D

Proc R1 R2 R3 Proc R1 R2 R3 Proc R1 R2 R3


P1 3 2 2 P1 3 2 2 P1 0 0 0
P2 6 1 3 P2 6 1 3 P2 0 0 0
P3 3 1 4 P3 3 1 4 P3 0 0 0
P4 4 2 2 P4 0 0 2 P4 4 2 0
Matriz N Matriz A Matriz N - A

R1 R2 R3 R1 R2 R3
9 3 6 9 3 4
Recursos R Disponibles D

Fundamentos de los Computadores II 85


(Sistemas Operativos)
Interbloqueo(XXI)

Proc R1 R2 R3 Proc R1 R2 R3 Proc R1 R2 R3

P1 3 2 2 P1 3 2 2 P1 0 0 0

P2 6 1 3 P2 6 1 3 P2 0 0 0

P3 3 1 4 P3 3 1 4 P3 0 0 0

P4 4 2 2 P4 4 2 2 P4 0 0 0

Matriz N Matriz A Matriz N - A

R1 R2 R3 R1 R2 R3

9 3 6 9 3 6

Recursos R Disponibles D

Fundamentos de los Computadores II 86


(Sistemas Operativos)
7. Planificacin

7.1. Introduccin
7.2. Algoritmos de planificacin

Fundamentos de los Computadores II 87


(Sistemas Operativos)
Planificacin (I)

7.1. Introduccin
Objetivo: reparto eficiente de tiempo de procesador entre los
procesos disponibles para ejecutar

Planificador: mdulo del SO encargado de esta tarea. Selecciona el


proceso en estado listo que pasar a ejecutar

Activador: mdulo del SO que pone en ejecucin el proceso


seleccionado por el planificador

Fundamentos de los Computadores II 88


(Sistemas Operativos)
Planificacin (II)

Tipos de planificacin
En la planificacin de procesos se suelen incluir varios niveles, en
funcin del periodo temporal que cubren.

a) Planificacin a largo plazo. Se toman procesos de la lista de


espera. Se trata de procesos de tipo batch, en los que no
importa el momento final en que se ejecuten (dentro de
ciertos lmites)
b) Planificacin a medio plazo. Trata la suspensin de procesos,
aadiendo procesos o eliminando procesos de MP (quitando o
pasando al estado suspendido)
c) Planificacin a corto plazo. Qu proceso ser el que se
ejecutar en el procesador en el instante siguiente

Planificacin de operaciones de E/S. Si hay varias


operaciones a realizar, cul se realizar la siguiente?

Fundamentos de los Computadores II 89


(Sistemas Operativos)
Planificacin (III)

Planificacin a

Memoria
largo plazo Exit
Ejecucin

Listo Fin E/S Bloqueado

Planificacin a corto plazo


Entra al
sistema
Swap

Listo y
Bloqueado y
Procesos Batch suspendido
suspendido
Planificacin a medio plazo
en espera

Fundamentos de los Computadores II 90


(Sistemas Operativos)
Planificacin (IV)

Expulsin denota si un proceso acapara el procesador cuando


est ejecutndose. Existen sistemas con y sin expulsin:
a) Sin expulsin: un proceso conserva el uso del procesador
mientras lo desee; es decir, mientras no solicite del SO un
servicio que lo bloquee. Ventajas: minimiza tiempo de
planificacin. Inconvenientes: un proceso podra monopolizar
el uso del procesador.
b) Con expulsin: el SO puede desalojar a un proceso del uso
del procesador (sin que el proceso lo haya solicitado).
Ventaja: control sobre el tiempo de ejecucin de cada
proceso. Inconveniente: gasto de tiempo.

Para realizar las tareas de planificacin el SO organiza los


procesos en estructuras de informacin que faciliten la
bsqueda de la informacin de los procesos. Generalmente se
organizan mediante colas de prioridad y de tipo.

Fundamentos de los Computadores II 91


(Sistemas Operativos)
Planificacin (V)

En la siguiente figura se aprecia un ejemplo con 30 colas para


procesos interactivos y 2 colas para procesos batch, con
diferentes prioridades.
Palabra
Resumen
Cabecera de la Subcola
Bit 0 1 de Prioridad 0
BCP-A
Cabecera de la Subcola
Bit 1 0
de Prioridad 1

Cabecera de la Subcola
Bit 29 1 de Prioridad 29
BCP-B BCP-D
Cabecera de la Subcola
Bit 30 1 BCP-C BCP-E BCP-F
batch 1
Cabecera de la Subcola
Bit 31 0
batch 0

Fundamentos de los Computadores II 92


(Sistemas Operativos)
Planificacin (VI)

Se puede apreciar la existencia de una palabra de resumen, que


contiene un 1 si la cola tiene procesos y un 0 en caso contrario.
Esta informacin facilita el trabajo del planificador.

Tabla de procesos
BCP1 BCP2 BCP3 BCP4 BCP5 BCP6 BCP7 BCP8 BCP9 BCP10 BCP11 BCP12

0 7 6 1 11 5 0 8 9

2 4
Punteros de las colas

Las colas de procesos se construyen con unas cabeceras y con


punteros a los BCPs correspondientes.

Fundamentos de los Computadores II 93


(Sistemas Operativos)
Planificacin (VII)

Los objetivos del planificador se resumen en:

a) Reparto equitativo del tiempo de procesador


b) Eficiencia
c) Menor tiempo de respuesta en uso interactivo
d) Menor tiempo de espera en lotes
e) Mayor nmero de trabajos por unidad de tiempo
f) Cumplir plazos de ejecucin de los sistemas de tiempo real

Se aprecia que algunos de estos objetivos son incompatibles: la


solucin radica en buscar equilibrio entre ellos.

Fundamentos de los Computadores II 94


(Sistemas Operativos)
Planificacin (VIII)

6.2. Algoritmos de planificacin


Los ms usuales son:

A) Planificacin cclica (Round-Robin).


- Objetivo bsico: reparto equitativo de tiempo del procesador
- Espacialmente indicado para sistemas de tiempo compartido
- Basado en el concepto de rodaja (slot) de tiempo
- Los procesos se organizan en forma de cola circular: para la
ejecucin se elige el proceso que ocupa la cabeza de la cola

Un proceso permanece en ejecucin hasta que pasa a bloqueado (al


solicitar un servicio al SO) o consume su rodaja de tiempo (es
decir, lleva ejecutando el tiempo indicado por la rodaja). Un
proceso que ha consumido su rodaja pasa al final de la cola
circular. REPARTO EQUITATIVO.

Fundamentos de los Computadores II 95


(Sistemas Operativos)
Planificacin (IX)

B) FIFO (first in, first out).


Procesos ordenados en funcin al instante en que pasan al estado
listo. Los que llevan ms tiempo estarn ms cerca de la cabeza
(y ms prximos a ser elegidos). No hay expulsin: el proceso
ejecuta hasta realizar una llamada bloqueante al SO. Aplicable a
sistemas batch.

C) Prioridades.
Pasa a ejecucin el proceso de mayor prioridad. Si las prioridades
son fijas, peligro de inanicin. Un proceso esperando
indefinidamente, ya que siempre llegan procesos con ms
prioridad que l. Se suele aadir algn mecanismo de
envejecimiento: aumenta la prioridad de los procesos que llevan
ms tiempo esperando. Ya que puede haber varios procesos de
igual prioridad esperando a ser elegidos, se necesita algn
mecanismo para resolver los empates: cclico (sistemas
interactivos, FIFO (batch). Suelen utilizar la expulsin.

Fundamentos de los Computadores II 96


(Sistemas Operativos)
Planificacin (X)

D) Prioridad al trabajo ms corto.


Exige conocer a priori el tiempo de ejecucin de los procesos.
aplicable a procesos batch repetitivos con comportamiento
analizado. No hay expulsin. El trabajo seleccionado contina
ejecutndose mientras pueda; as se mejora el tiempo de
respuesta. Problema: aumenta el tiempo necesario para los
procesos de mayor tiempo de ejecucin. Tambin puede
producirse inanicin (siempre llegan trabajos ms cortos.)

E) Aleatorio o lotera.
Seleccin al azar.

F) Planificacin de sistemas de tiempo real.


Los procesos tienen que ejecutar en instantes predeterminados.
Dos tipos de procesos de tiempo real: a plazo fijo (ejecutan una
vez, en cierto instante) y peridicos (ejecucin repetitiva cada
cierto tiempo)
Fundamentos de los Computadores II 97
(Sistemas Operativos)
Planificacin (XI)
13h 25m 10s 13h 25m 22s 13h 30m 0s
Nivel 0 13h 22m 12,2s
13h 55m 40s 14h 5m 50s 14h 45m 0s
Nivel 1
Nivel 2 13h 22m 10s 13h 22m 12,1s 15h 25m 0s 15h 50m 40s 17h 30m 0s
Cola de Procesos en Espera
Nivel N 13h 22m 11s
Fecha: 24/6/95 Hora: 13h 22m 12,2s
Cola de Procesos Ejecutables
Reloj de Tiempo

Se asocia a cada proceso el instante en que ha de ejecutarse. Los


procesos que no han alcanzado el tiempo de ejecucin estn en la
cola de procesos en espera. Los que s alcanzaron este tiempo
pasan a la cola de procesos ejecutables (listos para ejecutar). En
este tipo de sistemas la planificacin consisten en seleccionar los
procesos de esta ltima cola (procesos ejecutables). El elemento
esencial en estos sistemas es el reloj. Objetivo bsico: evitar que
se retrase la ejecucin de los procesos.

Fundamentos de los Computadores II 98


(Sistemas Operativos)
Planificacin (XII)

Sistemas crticos: se asocia a cada proceso una franja de tiempo,


dentro de la que habr de ser ejecutado, sin permitir que se
rebase el tiempo mximo.

Para este tipo de funcionamiento debe tratarse de sistemas con poca


carga, con pocos procesos en estado listo (de forma que se pueda
asegurar que no se retrasar la ejecucin). Han de evitarse los
mecanismos que puedan retrasar la ejecucin, como por ejemplo
el uso de memoria virtual (posibles problemas debidos a la
paginacin).

VALORACIN DE LOS ALGORITMOS DE PLANIFICACIN: complicada,


ya que hay muchos factores a tener en cuenta y entre los que
conseguir un equilibrio. De cualquier forma, no pueden ser
algoritmos muy complejos, ya que su simple uso retrasara el
funcionamiento del sistema.

Fundamentos de los Computadores II 99


(Sistemas Operativos)
Planificacin (XIII)

Criterios
Tiempo de respuesta
Velocidad de respuesta a una peticin (disp. E/S)
Tiempo de servicio
Tiempo en que tarda en ejecutarse un proceso,
incluye:
Tiempo de carga del programa en memoria
Tiempo de espera en la lista de listos
Tiempo de ejecucin en el procesador
Tiempo consumido en operaciones de E / S
Tiempo de ejecucin
Tiempo de servicio Tiempo espera en lista de listos
Tiempo que necesita el CPU en ejecutarlo

Fundamentos de los Computadores II 100


(Sistemas Operativos)
Planificacin (XIV)

Criterios
Tiempo de procesador
Tiempo que un proceso utiliza el CPU
Tiempo de bloqueado por operaciones de E/S
Tiempo de espera
Tiempo en que procesos estn activos pero
no han sido ejecutados (tiempos en distintas
colas)
Eficiencia
Utilizacin del recurso ms caro (CPU)
Ocupado mayor tiempo posible = Mejor
rendimiento

Fundamentos de los Computadores II 101


(Sistemas Operativos)
Planificacin (XV)

Criterios
Rendimiento
Nmero de trabajos o procesos realizados
por unidad de tiempo (debe ser lo mayor
posible)

Qu algoritmo se debe elegir para un


sistema determinado?

R: Depende del diseador del S.O.

Fundamentos de los Computadores II 102


(Sistemas Operativos)
Planificacin (XV)

Medidas
Para estudiar el comportamiento de P.d.P. , se
definen dos medidas relacionadas entre s, que
indican cmo se est tratando un proceso.

Fundamentos de los Computadores II 103


(Sistemas Operativos)
Planificacin (XVI)

Medidas

t = Tiempo que un proceso P necesita


ejecutarse para llevar a cabo su trabajo

ti = Instante en que el usuario da la orden de


ejecucin del proceso

tf = Instante en que el proceso termina su


ejecucin

Fundamentos de los Computadores II 104


(Sistemas Operativos)
Planificacin (XVII)

Medidas
o En funcin de los datos anteriores se puede deducir:

Tiempo de Servicio (T):T= tf - ti

Tiempo de Espera (E):E= T - t

ndice de servicio :I= t / T

Fundamentos de los Computadores II 105


(Sistemas Operativos)
Planificacin (XVIII)

Medidas
ndice de servicio (I)
Evala la actuacin de la poltica establecida
Representa el porcentaje en que el proceso est en
ejecucin respecto al tiempo de vida del mismo en el
sistema
Si slo existe un proceso:
I prximo a 1, el proceso est limitado por proceso
I prximo a 0, el proceso est limitado por
Entrada/Salida
Valor ms representativo del comportamiento del
planificador

Fundamentos de los Computadores II 106


(Sistemas Operativos)
Planificacin (XIX)

Algoritmos de planificacin
La lista de listos se alimenta desde dos puntos distintos:
Un usuario inicia la ejecucin de un programa
Planificador Largo plazo crea el proceso
Planificador Corto plazo lo toma y lo deja en la lista
Un proceso deja de estar en ejecucin y no existen
causas para que pase a bloqueado, pasa nuevamente a
la lista de listos
Si se termina un proceso deja de existir el planificador

Fundamentos de los Computadores II 107


(Sistemas Operativos)
Planificacin (XX)

Las polticas de planificacin se agrupan en:


Polticas apropiativas:
Producen un cambio de proceso con cada cambio de
contexto
El proceso que esta siendo ejecutado puede ser
temporalmente suspendido y permitir que otro se
apropie del CPU
Se utiliza en sistemas de Tiempo compartido y tiempo
real
Polticas no apropiativas
Un proceso no abandona nunca el CPU
Se utiliza en procesamiento por lotes

Fundamentos de los Computadores II 108


(Sistemas Operativos)
Planificacin (XXI)

Situacin de un grupo de procesos existentes en un sistema

Nombre Instante Tiempo


Prioridad
Proceso llegada ejecucin

A 0 3 0

B 1 5 1

C 4 2 0

D 5 6 2

E 8 4 1

Fundamentos de los Computadores II 109


(Sistemas Operativos)
Planificacin (XXII)

Figura el instante de llegada al sistema, tiempo de servicio, y suponemos que


No necesitan operaciones de E/S

Fundamentos de los Computadores II 110


(Sistemas Operativos)
Planificacin (XXIII)

Algoritmos de planificacin

Sin expropiacin Con expropiacin

FCFS (FIFO) ROUND ROBIN

SJF (SPN) SRTF (PSPN) (SRT)

Fundamentos de los Computadores II 111


(Sistemas Operativos)
Planificacin (XXIV)

First Come, First Served (FCFS)


Primero en llegar, primero en ser servido
El CPU ejecuta cada proceso hasta que termina
Los procesos que entren a la lista de listos,
permanecern en el orden que lleguen hasta que les
toque su ejecucin
Conocido tambin como FiFo (First Input, First
Output)
No es apropiativa

Fundamentos de los Computadores II 112


(Sistemas Operativos)
Planificacin (XXV)

First Come, First Served (FCFS)


Puede producir grandes tiempos de espera
Ocasiona que procesos largos hagan esperar a
procesos cortos y que procesos no importantes hagan
esperar a procesos importantes

Lista de listos
E D C B A CPU Fin

Fundamentos de los Computadores II 113


(Sistemas Operativos)
Planificacin (XXVI)

First Come, First Served (FCFS)


Poltica muy simple y sencilla de implementar
Pobre en comportamiento
Ms predecible que otros esquemas (pocas variaciones en tiempos
de respuesta)
No puede garantizar buenos tiempos de respuesta
Suele utilizarse integrado a otros esquemas, por ejemplo:
Procesos se despachan con algn esquema de prioridad
Procesos con igual prioridad se despachan FIFO

Fundamentos de los Computadores II 114


(Sistemas Operativos)
Planificacin (XXVII)

Ejemplo Bsico FcFs

Proceso Ciclo de CPU


P1 24
P2 3
P3 3 P1 P2 P3
0 24 27 30
Ttr=(24+27+30)/3=27 [u.t.]
Pr= 3 / 30 = 0,1 [proceso/u.t.]
Si el orden de atencin hubiera sido P2, P3, P1 :
Ttr=(3+6+30)/3=13 [u.t.]

Fundamentos de los Computadores II 115


(Sistemas Operativos)
Planificacin (XXVIII)

First Come, First Served (FCFS)


Datos para una planificacin

Nombre Instante de Tiempo de Instante de


T E I
Proceso Llegada Ejecucin Finalizacin

A 0 3 3 3 0 1.00

B 1 5 8 7 2 0.71

C 4 2 10 6 4 0.33

D 5 6 16 11 5 0.54

E 8 4 20 12 8 0.33

Media 7.8 3.8 0.58

Fundamentos de los Computadores II 116


(Sistemas Operativos)
Planificacin (XXX)

Procesador
A B C D E

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Unidades de tiempo

PROCESADOR
LISTOS

Fundamentos de los Computadores II 117


(Sistemas Operativos)
Planificacin (XXXI)

FCFS, Conclusiones
El ndice de servicio mejora cuanto ms largo son los
procesos
Los procesos cortos que entren en el sistema despus de
uno o varios largos, tienen que esperar un periodo
relativamente largo hasta su ejecucin
Tiempo de espera del proceso depende del nmero de
procesos que se encuentren en cola y del tiempo en que
cada uno usa el CPU.
Es independiente de las prioridades

Fundamentos de los Computadores II 118


(Sistemas Operativos)
Planificacin (XXXII)

Round-Robin (Asignacin en rueda)


Corresponde a FCFS con expropiacin
Los procesos se despachan en FIFO y disponen de
una cantidad limitada de tiempo de CPU, llamada
divisin de tiempo o quantum, q
Se usa en sistemas de tiempo compartido
Evita o reduce el efecto convoy (Fifo)

Fundamentos de los Computadores II 119


(Sistemas Operativos)
Planificacin (XXXIII)

Round-Robin (Asignacin en rueda)


Trata de ser ms justo con los procesos largos y cortos
Si un proceso no termina antes de expirar su tiempo de cpu
ocurre:
La CPU es apropiada
La CPU es otorgada al siguiente proceso en espera
El proceso apropiado es situado al final de la cola de
listos.

Fundamentos de los Computadores II 120


(Sistemas Operativos)
Planificacin (XXXIV)

Round-Robin (Asignacin en rueda)

Listos
Fin
A C B A Procesador

Apropiacin Ejecucin

Fundamentos de los Computadores II 121


(Sistemas Operativos)
Planificacin (XXXV)

La interrupcin peridica contina hasta que el proceso termina


su ejecucin
Se forma una rueda de procesos que sern ejecutados
cclicamente hasta que terminen
La gestin de la cola (listos) puede ser
FIFO
Prioridades

Fundamentos de los Computadores II 122


(Sistemas Operativos)
Planificacin (XXXVI)

Variando el parmetro q:
Si q es mayor que el tiempo que necesita el proceso ms
largo
Se convierte en una poltica FCFS
Si q se aproxima a 0
La sobrecarga del sistema es muy grande
Mayor parte del tiempo se consume en cambios de contexto

Fundamentos de los Computadores II 123


(Sistemas Operativos)
Planificacin (XXXVII)

Reglas generales:
Si un proceso finaliza durante su quantum
Se le concede el CPU al otro proceso, al que se le asigna el
quantum completo
Al crearse un proceso y pasa a listos
Se coloca al final de la cola de listos
Proceso comienza su ejecucin en el momento en que un q
finaliza
Se supondr que dicho proceso ha llegado a la cola de procesos
preparados antes de la finalizacin del mencionado quantum

Fundamentos de los Computadores II 124


(Sistemas Operativos)
Planificacin (XXXVIII)

Ejemplo Bsico

Proceso Ciclo de CPU

P1 24
q=4

P1 P2 P3 P1 P1 P1 P1 P1
P2 3

P3 3
0 4 7 10 14 18 22 26 30
Ttr=(30+7+10)/3=15,7 [u.t.]
Pr= 3 / 30 = 0,1 [proceso/u.t.]

Fundamentos de los Computadores II 125


(Sistemas Operativos)
Planificacin (XXXIX)

Round-Robin (Asignacin en rueda)


Datos para una planificacin con q=1

Nombre Instante de Tiempo de Instante de


T E I
Proceso Llegada Ejecucin Finalizacin

A 0 3

B 1 5

C 4 2

D 5 6

E 8 4

Media

Fundamentos de los Computadores II 126


(Sistemas Operativos)
Planificacin (XL)

Tabla de procesos
Ejecucin / Espera / Queda

P 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
A 1/0/2 0/1/2 1/0/1 0/1/1 1/0/0F ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
B 1/0/4 0/1/4 1/0/3 0/1/3 0/1/3 1/0/2 0/1/2 0/1/2 1/0/1 0/1/1 0/1/1 1/0/0F ------ ------ ------ ------ ------ ------ ------
C 0/1/2 1/0/1 0/1/1 0/1/1 1/0/0F ------ ------ ------ ------ ------ ------ ------ ------ ------ ------ ------
D 0/1/6 0/1/6 1/0/5 0/1/5 0/1/5 0/1/5 1/0/4 0/1/4 0/1/4 1/0/3 0/1/3 1/0/2 0/1/2 1/0/1 1/0/0F
E 0/1/4 0/1/4 1/0/3 0/1/3 0/1/3 1/0/2 0/1/2 1/0/1 0/1/1 1/0/0F ------ ------

Ej Fin Es
3 5 2
5 13 7
2 9 3
6 20 9
4 18 6
5.4

Fundamentos de los Computadores II 127


(Sistemas Operativos)
Planificacin (XLI)

Round-Robin (Asignacin en rueda)


Datos para una planificacin con q=1

Nombre Instante de Tiempo de Instante de


T E I
Proceso Llegada Ejecucin Finalizacin

A 0 3 5 3 2 0.60

B 1 5 13 7 7 0.42

C 4 2 9 6 3 0.40

D 5 6 20 11 9 0.40

E 8 4 18 12 6 0.40

Media 9.4 5.4 0.44

Fundamentos de los Computadores II 128


(Sistemas Operativos)
Planificacin (XLII)

Procesador
A B A B A C B D C B E D B E D E D E D D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Unidades de tiempo
Procesador
q=1
Listos

Fundamentos de los Computadores II 129


(Sistemas Operativos)
Planificacin (XLIII)

Round-Robin (Asignacin en rueda)


Datos para una planificacin con q=3

Nombre Instante de Tiempo de Instante de


T E I
Proceso Llegada Ejecucin Finalizacin

A 0 3

B 1 5

C 4 2

D 5 6

E 8 4

Media

Fundamentos de los Computadores II 130


(Sistemas Operativos)
Planificacin (XLIV)

P 0-2 3-5 6-7 8-10 11-12 13-15 16-18 19


A 3/0/0F -------- -------- -------- -------- -------- -------- --------
B 0/2/5 3/0/2 0/2/2 0/3/2 2/0/0F -------- -------- --------
C 0/2/2 2/0/0F -------- -------- -------- -------- --------
D 0/1/6 0/2/6 3/0/3 0/2/3 0/3/3 3/0/0F --------
E 0/3/4 0/2/4 3/0/1 0/3/1 1/0/1

Ej Fin Es
3 3 0
5 13 7
2 8 2
6 19 8
4 20 8
5.0

Fundamentos de los Computadores II 131


(Sistemas Operativos)
Planificacin (XLV)

Round-Robin (Asignacin en rueda)


Datos para una planificacin con q=3

Nombre Instante de Tiempo de Instante de


T E I
Proceso Llegada Ejecucin Finalizacin

A 0 3 3 3 0 1.00

B 1 5 13 12 7 0.42

C 4 2 8 4 2 0.50

D 5 6 19 14 8 0.43

E 8 4 20 12 8 0.33

Media 9.0 5.0 0.54

Fundamentos de los Computadores II 132


(Sistemas Operativos)
Planificacin (XLVI)

Procesador
A B C D B E D E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Unidades de tiempo
Procesador
q=3
Listos

Fundamentos de los Computadores II 133


(Sistemas Operativos)
Planificacin (XLVII)

Round-Robin (Asignacin en rueda)


Datos para una planificacin con q=2

Nombre Instante de Tiempo de Instante de


T E I
Proceso Llegada Ejecucin Finalizacin

A 0 10

B 0 6

C 4 7

D 9 9

E 10 3

Media

Fundamentos de los Computadores II 134


(Sistemas Operativos)
Planificacin (L)

Round-Robin (Asignacin en rueda) conclusiones:


Poltica apropiativa
Ms utilizada para tiempo compartido
Ofrece un ndice uniforme para todos los procesos
T se mantiene casi constante y E crece de acuerdo al tiempo de
ejecucin asignado
Baja sobrecarga si el cambio de contexto es eficiente y los
procesos siempre estn en la memoria principal
El tamao optimo del quantum depende de:
El tipo de sistema
Las cargas que vaya a soportar el sistema
El numero de procesos en el sistema y su tipo

Fundamentos de los Computadores II 135


(Sistemas Operativos)
Planificacin (LI)

SJF (Server Job First) SPN (Shortest process Next)


Algoritmo sin expropiacin
Usado en sistemas por lotes
El proceso en espera con el menor tiempo estimado de
ejecucin hasta su termino es el siguiente en ejecutarse
Estimar a priori el tiempo de servicio de cada trabajo
(normalmente se desconoce)

Fundamentos de los Computadores II 136


(Sistemas Operativos)
Planificacin (LII)

SJF (Server Job First) SPN (Shortest process Next)


SJN (Shortes Job Next)
Tiempo promedio de espera < que FIFO
Tiempo de espera menos predecible que en FIFO
Favorece procesos corto afecta a los largos
Reduce el nmero de procesos en espera y el nmero de
procesos que esperan detrs de procesos largos.

Fundamentos de los Computadores II 137


(Sistemas Operativos)
Planificacin (LIII)

SJF (Server Job First)

Trabajo Ciclo de
CPU

P1 6

P2 8
P4 P1 P3 P2
P3 7 0 3 9 16 24
P4 3

Tespera(SJF)=(0+3+9+16)/4=7.00
Tespera(FCFS)=(0+6+14+21)/4=10.25

Fundamentos de los Computadores II 138


(Sistemas Operativos)
Planificacin (LIV)

SJF (Server Job First)


Datos para una planificacin

Nombre Instante de Tiempo de Instante de


T E I
Proceso Llegada Ejecucin Finalizacin

A 0 3 3 3 0 1.00

B 1 5 8 7 2 0.71

C 4 2 10 6 4 0.33

D 5 6 20 15 9 0.40

E 8 4 14 6 2 0.67

Media 7.4 3.4 0.62

Fundamentos de los Computadores II 139


(Sistemas Operativos)
Planificacin (LV)

Procesador
A B C E D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Unidades de tiempo
Procesador

Listos

Fundamentos de los Computadores II 140


(Sistemas Operativos)
Planificacin (LVI)

SJF, Conclusiones
No es apropiativo
Tiempo de espera aumenta de acuerdo con la
longitud de los procesos, pero el tiempo de espera
con respecto a otros algoritmos es ptimo
Poco predecible
No es justo con los procesos largos
Buen tiempo de servicio
Difcil de poner en prctica por los datos que se
necesitan para realizar la planificacin

Fundamentos de los Computadores II 141


(Sistemas Operativos)
Planificacin (LVII)

SRTF (Shortest Remaining Time First).


Prioridad al que le resta menos tiempo (para finalizar).
La CPU es asignada al proceso que le queda menos tiempo para acabar
La rfaga de CPU en curso.
Variante con expulsin de SJF: Si llega un proceso con un intervalo de CPU
inferior al tiempo que le falta al proceso en ejecucin para abandonar la CPU,
entonces el nuevo proceso se hace con la CPU

Procesos Tiempo llegada Duracin


P1 P2 P3 P2 P4 P1
P1 0 7
0 2 4 5 7 11 16
P2 2 4
P3 4 1
Media Te = (9+1+0+2)/4 = 3
P4 5 4

Fundamentos de los Computadores II 142


(Sistemas Operativos)
Planificacin (LVIII)

Ventajas
SRTF optimiza la media de tiempo de espera.
Inconvenientes
El tiempo del siguiente intervalo de CPU es difcil de predecir. Esto lo
hace difcil de implementar para un planificador a corto plazo.(En los
sistemas por lotes el usuario puede aportar informacin).
Posibilidad de inanicin: los trabajos largos no se ejecutarn mientras
haya trabajos cortos.

Fundamentos de los Computadores II 143


(Sistemas Operativos)
Planificacin (LIX)

Planificacin SJF/SRTF
Aunque no se conoce la longitud de la siguiente rfaga se puede predecir
su valor esperando que sea de longitud similar a las anteriores.
Estimacin del siguiente intervalo de CPU
Se utiliza la media exponencial: T n+1 = tn + (1 - ) Tn
tn: tamao real del n-simo intervalo de CPU
Tn: Tamao estimado del n-simo intervalo de CPU.
1 - : coeficiente exponencial , con 0 < < 1
Caso = 1, los datos histricos son irrelevantes y slo tiene importancia la
rfaga ms reciente de CPU. T n+1 = tn
Caso = 0, la historia reciente no tienen efecto, se supone que las condiciones
actuales son transitorias. T n+1 = Tn
Es habitual que = 1/2, por lo que la historia reciente y antigua se ponderan
de igual manera
El valor inicial T0 puede definirse como una constante o como un
promedio global para todo el sistema

Fundamentos de los Computadores II 144


(Sistemas Operativos)
Planificacin (LX)

Para comprender el comportamiento del promedio exponencial, podemos


desarrollar la frmula para Tn+1 sustituyendo el valor de Tn y de los trminos
sucesivos, obteniendo:

Tn+1 = tn + (1 - ) tn-1 + + (1 )j tn-j + + (1 )n+1T0

Dado que tanto como 1 son menores o iguales a 1, cada trmino sucesivo
tiene menor peso que su predecesor.
Ejercicio SRTF
Proceso Tiempo llegada Tiempo rfaga
P1 0 8
P2 1 4
P3 2 9
P4 3 5
Fundamentos de los Computadores II 145
(Sistemas Operativos)
Planificacin (LXI)

Ejercicio 1: Comprese el rendimiento ofrecido al planificar el conjunto de tareas multi -


hilo descrito en la tabla bajo las siguientes configuraciones:
Sistema operativo multitarea con hilos en espacio de usuario. En este sistema se
dispone de una biblioteca para la programacin con hilos en el espacio de usuario. El
algoritmo de planificacin de CPU utilizado por el sistema operativo es RR con un
quantum de 100 u.t. y un costo por cambio de contexto entre tareas de 20 u.t. El
planificador de la biblioteca de hilos reparte el quantum de la tarea entre los hilos
utilizando RR con un quantum para cada hilo de 10 u.t. y sin costo en el cambio de
contexto entre sus hilos.
Sistema operativo multitarea con hilos soportados dentro del ncleo. El sistema
operativo planifica las tareas mediante RR con un quantum de 100 u.t.; este tiempo se
distribuye de manera circular entre los hilos de esta tarea en rodajas de 10 u.t. Como
en el caso anterior, la nica sobrecarga que se considera es el cambio de contexto
entre tareas con un costo de 20 u.t.. Considere adems que las operaciones de E/S de
una tarea nicamente bloquean al hilo que las solicita
Suponga en ambos casos que las dos tareas estn disponibles y que el planificador entrega
la CPU a T1.

Fundamentos de los Computadores II 146


(Sistemas Operativos)
Planificacin (LXII)

Duracin rfaga Tiempo espera Duracin rfaga


Tarea 1 Hilo 1 30 110 40
Hilo 2 50 - -
Hilo 3 30 - -
Hilo 4 20 60 40
Tarea 2 Hilo 1 20 50 60
Hilo 2 40 110 20

Fundamentos de los Computadores II 147


(Sistemas Operativos)
Planificacin (LXIII)

Ejercicio 2: El siguiente conjunto de trabajos va a ser planificado siguiendo el algoritmo


FCFS:
Trabajo Duracin rfaga Tiempo bloqueado
T0 7 4
T1 1 2 Rfagas de los procesos
Rendimiento
T2 1 2 Tiempo total
Estudie los siguientes escenarios:
1. Cada trabajo necesita para su finalizacin tres rfagas de CPU y todos los trabajos se bloquean
cuando solicitan operaciones de E/S sobre un mismo dispositivo compartido. Estas solicitudes
son atendidas por el sistema operativo secuencialmente y en el mismo orden en que fueron
efectuadas por los procesos.
2. Cada trabajo necesita para su finalizacin tres rfagas de CPU, pero ahora los trabajos se
bloquean cuando solicitan operaciones de E/S sobre dispositivos diferentes, por lo que el SO
puede atenderlas de manera concurrente.
3. Cmo influir en los casos problemticos la adicin de una nueva CPU al sistema?. Represente
el diagrama Gant para esta nueva situacin (2 CPU) y compara el rendimiento obtenido en este
nuevo escenario con el obtenido en los casos anteriores.

Fundamentos de los Computadores II 148


(Sistemas Operativos)
Planificacin (LXIV)

Ejercicio 3: Se dispone del siguiente conjunto de trabajos para su planificacin:


Trabajo Instante de llegada Duracin rfagas

T0 0 3, 2, 2, 2, 1

T1 1 2, 3, 1, 2

T2 3 8, 1, 1

Calcula los tiempos de espera y permanencia, y represente grficamente la planificacin para cada
uno de los siguientes casos:
1. Planificacin con prioridad, tomando como proceso ms prioritario el que en el momento de ser
planificado tenga el menor consumo acumulado de CPU. Se aplicar, adems, envejecimiento
sobre el resto de los procesos, disminuyendo en una unidad su tiempo acumulado si no resultan
elegidos por el planificador. La forma de calcular la prioridad obedece a la expresin:
prioridad = prioridad anterior + duracin ltima rfaga
Nota: si varios procesos tienen la misma prioridad, se ceder la CPU a aquel que haya
consumido menor tiempo de CPU sin considerar el envejecimiento. Si esto tampoco permitiera
seleccionar un proceso, se cedera la CPU a aquel que lleve ms tiempo en la cola de trabajos
preparados (listos).

Fundamentos de los Computadores II 149


(Sistemas Operativos)
Planificacin (LXV)

Ejercicio 3 (continuacin)
2. Round Robin con quantum q = 2 u.t.
Si se considera el tiempo de respuesta como el tiempo transcurrido en el sistema hasta
completar cada rfaga, calcule los tiempos medios de respuesta para cada proceso y el
global del sistema para los dos algoritmos de planificacin anteriores.
Ejercicio 4: Determine cul debe ser la duracin de las rfagas de CPU del conjunto de
trabajos que se muestran en la tabla, sabiendo que utilizando un cierto algoritmo de
planificacin, el tiempo de espera de los trabajos T1 y T2 fue de 5 u.t. en ambos casos,
para el trabajo T3 su tiempo de espera coincide con su tiempo de proceso. Adems se sabe
que el tiempo de permanencia medio en el sistema fue de 20 u.t.

Trabajo Duracin rfagas


T1 x, 5
T2 3, x, 10
T3 4, x

Fundamentos de los Computadores II 150


(Sistemas Operativos)
Planificacin (LXVI)

Ejercicio 4 (continuacin)
Por ltimo, represente grficamente el resultado de planificar los trabajos mediante SRTF.
Para ello, tenga en cuenta que siempre que un trabajo abandona la CPU necesita 2 u.t.
sobre un dispositivo comn antes de volver a la cola de trabajos preparados y que los
trabajos llegan en los instantes:
T1 = 0 u.t. T2 = 1 u.t. T3 = 3 u.t.

Fundamentos de los Computadores II 151


(Sistemas Operativos)