Académique Documents
Professionnel Documents
Culture Documents
Procesos
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
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
Shell Shell
Proceso A
Editor
Proceso E Proceso F
PATH=/usr/local/bin:/usr/bin
TERM=xterm
HOME=/home/fc2
PWD=/home/fc2/documentos
2.1. Introduccin
2.2. Base de la multitarea
2.3. Ventajas
2.4. Grado de multiprogramacin y
necesidades de MP
2.1. Introduccin
Dependiendo del nmero de procesos y usuarios que pueden ejecutar
simultneamente, un SO puede ser:
1 ms de 1
Monoproceso Multiproceso
1
Monousuario Monousuario
N usuarios
Multiproceso
ms de 1
Multiusuario
Procesamiento
Entrada/salida
Tiempo
Proceso A
Proceso B Procesamiento
Entrada/salida
Listo
Proceso C SO
Procesador
Tiempo
Proceso Nulo
Termina
Ejecucin
100%
1 2 3 4
Nivel de Multiprogramacin
100 % 100 %
% Utilizacin de UCP
% Utilizacin de UCP
de paginacin
Limitado por el dispositivo
de paginacin
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
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
4.1. Introduccin
4.2. Cambio de contexto
4.1. Introduccin
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
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
Registros
especiales
Tabla de procesos
5.1. Introduccin
5.2. Estados de los procesos ligeros
5.3. Paralelismo
5.4. Diseo con procesos ligeros
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
Procesos ligeros
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
Trabajador
S o lic it u d e s
Ncleo
Puerto
Trabajador
S o lic it u d e s
Ncleo
Puerto
Trabajador
S o lic it u d e s
Ncleo
Puerto
6.1. Introduccin
6.2. Exclusin mutua
6.3. Sincronizacin
6.4. Semforos, monitores, paso de mensajes
6.5. Interbloqueo e inanicin
Analicemos un ejemplo.
Sea el siguiente procedimiento:
Void eco()
{
cent = getchar();
csal = cent;
putchar(csal);
}
Proceso P1 Proceso P2
. .
cent = getchar(); .
. cent = getchar();
csal = cent; csal = cent;
putchar(csal); .
. putchar(csal);
. .
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.
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.
Alternancia estricta.
(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.
Otras soluciones
Soluciones de espera ocupada
Solucin de Dekker
Solucin de Peterson
La instruccin TSL (test and set lock)
R1 R2 R3 R1 R2 R3
9 3 6 0 1 1
Recursos R Disponibles D
R1 R2 R3 R1 R2 R3
9 3 6 6 2 3
Recursos R Disponibles D
R1 R2 R3 R1 R2 R3
9 3 6 7 2 3
Recursos R Disponibles D
R1 R2 R3 R1 R2 R3
9 3 6 9 3 4
Recursos R Disponibles D
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
R1 R2 R3 R1 R2 R3
9 3 6 9 3 6
Recursos R Disponibles D
7.1. Introduccin
7.2. Algoritmos de planificacin
7.1. Introduccin
Objetivo: reparto eficiente de tiempo de procesador entre los
procesos disponibles para ejecutar
Tipos de planificacin
En la planificacin de procesos se suelen incluir varios niveles, en
funcin del periodo temporal que cubren.
Planificacin a
Memoria
largo plazo Exit
Ejecucin
Listo y
Bloqueado y
Procesos Batch suspendido
suspendido
Planificacin a medio plazo
en espera
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
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
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.
E) Aleatorio o lotera.
Seleccin al azar.
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
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
Criterios
Rendimiento
Nmero de trabajos o procesos realizados
por unidad de tiempo (debe ser lo mayor
posible)
Medidas
Para estudiar el comportamiento de P.d.P. , se
definen dos medidas relacionadas entre s, que
indican cmo se est tratando un proceso.
Medidas
Medidas
o En funcin de los datos anteriores se puede deducir:
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
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
A 0 3 0
B 1 5 1
C 4 2 0
D 5 6 2
E 8 4 1
Algoritmos de planificacin
Lista de listos
E D C B A CPU Fin
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
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
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
Listos
Fin
A C B A Procesador
Apropiacin Ejecucin
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
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
Ejemplo Bsico
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.]
A 0 3
B 1 5
C 4 2
D 5 6
E 8 4
Media
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
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
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
A 0 3
B 1 5
C 4 2
D 5 6
E 8 4
Media
Ej Fin Es
3 3 0
5 13 7
2 8 2
6 19 8
4 20 8
5.0
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
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
A 0 10
B 0 6
C 4 7
D 9 9
E 10 3
Media
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
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
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
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
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.
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
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)
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).
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.
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.