Documentos de Académico
Documentos de Profesional
Documentos de Cultura
sistemas operativos:
Gestion de procesos
INDICE:
1.-CONCEPTO DE PROCESO.
2.-TIPOS DE PROCESO.
2.1. CARACTERISTICAS
3.-COMUNICACIN ENTRE PROCESOS
3.1.CONDICIONES DE CARRERA.
3.2. SECCIONES CRITICAS.
3.3. EXCLUSIN MUTUA
3.3.1. EXCLUSION CON ESPERA ACTIVA.
3.3.2. PROHIBICIN DE LAS INTERRUPCIONES.
3.3.3. VARIABLES CERROJO.
3.3.4. ALTERNANCIA ESTRICTA.
3.3.5. LA SOLUCIN DE PETERSON.
3.3.6. ALGORITMO DE DEKKER.
3.3.7. DORMIR Y DESPERTAR.
3.3.8. SEMAFOROS.
3.3.9. MONITORES.
3.3.10. MENSAJES
4.-GESTIN DE PROCESOS.
5.-ESTADOS DE UN PROCESO.
6.-PLANIFICACIN DE PROCESOS.
6.1.PLANIFICACIN POR TURNO ROTATORIO
6.2.PLANIFICACIN POR PRIORIDADES
6.3.LISTAS DE ESPERA MLTIPLES.
6.4.PRIORIDAD AL MS CORTO.
7.- INTERBLOQUEOS
7.1. CARACTERIZACIN DEL INTERBLOQUEO
7.2. PREVENCIN Y EVITACIN DE INTERBLOQUEO
7.3. DETECCIN DE LOS INTERBLOQUEOS
7.4. RECUPERACIN DE INTERBLOQUEO
8.-BIBLIOGRAFIA:
Andrs S. Egea
Pgina 1 de 22
Andrs S. Egea
Pgina 2 de 22
2. TIPOS DE PROCESOS.
Existen procesos que ejecutan programas en respuesta a los comandos que escribe
el usuario. Otros procesos forman parte del sistema e implementan diversas labores,
como servir peticiones para realizar funciones sobre ficheros o gestionar el uso de
una unidad de disco. As, si llega una interrupcin del disco, el sistema decide parar
el proceso que estaba en ejecucin en ese instante y ejecutar el proceso del disco,
que estaba bloqueado esperando esta interrupcin. De esta forma, en vez de tener
que pensar en interrupciones, se puede razonar sobre procesos de usuario,
procesos de disco, procesos de terminal, etc., que se encuentran bloqueados
esperando que suceda algo. Una vez ledo el bloque del disco o escrito el carcter
en el terminal, el proceso que estaba esperando ese evento se desbloquea, y a partir
de ese momento est listo para ejecutarse.
Figura 1. Todo el manejo de interrupciones, as como el arranque y parada de los
procesos, estn ocultos dentro del planificador, que es, en realidad, de un tamao
bastante reducido. El resto del sistema operativo est elegantemente estructurado
en forma de procesos..
Figura 1. El nivel inferior de un sistema operativo estructurado en procesos gestiona
las interrupciones y lleva a cabo la planificacin. El resto del sistema consiste en
procesos secuenciales.
0
..................................
PLANIFICADOR
n-2
n-1
2.1.- CARACTERSTICAS
El sistema operativo debe suministrar los servicios necesarios que permitan el
procesamiento concurrente. Bsicamente estos servicios proporcionan los medios
para la realizacin de las siguientes actividades:
a)Ejecucin concurrente de los procesos
b)Sincronizacin entre procesos
c)Comunicacin entre procesos
Adems, el SO debe disponer de algoritmos de gestin y planificacin de procesos
que se encarguen de las siguientes acciones:
1)Decidir qu proceso se ejecutar o tomar el procesador
2)Llevar cuenta de los estados de los procesos, sus prioridades y toda la
restante informacin relevante acerca de ellos.
Dependiendo de la interaccin entre los procesos, stos se clasifican en
independientes, cooperativos y competitivos.
Los procesos independientes no se comunican o sincronizan entre ellos. En un
sistema con un slo procesador, los procesos independientes en sentido estricto no
existen, ya que todos compiten por la posesin del procesador y posiblemente por la
Andrs S. Egea
Pgina 3 de 22
Pgina 4 de 22
Pgina 5 de 22
Pgina 6 de 22
Pgina 7 de 22
3.3.8 SEMFOROS.
E. W. Dijkstra (1965), se le ocurri utilizar una variable entera para contar el nmero
de seales de despertar puestas "en conserva" para uso futuro. Propuso para ello un
nuevo tipo de variable, llamada semforo. Esta podra valer 0, en caso de que no
hubiera ningn despertar en conserva, o algn valor positivo, si hubiera uno o ms
pendientes.
Dijkstra propuso dos operaciones, BAJAR y SUBIR, que eran generalizaciones de
DORMIR y DESPERTAR, respectivamente. La operacin BAJAR aplicada a un
semforo comprueba el valor del mismo; si es mayor que 0, decrementa su valor
(.e., se consume una de las seales de despertar en conserva) y se contina la
ejecucin, si el valor del semforo es 0, el proceso se pone a dormir. Las
operaciones se realizan todas como una sola accin atmica, invisible. Se
garantiza que, una vez que ha comenzado una operacin en un semforo, ningn
otro proceso podr acceder al mismo hasta que la operacin haya terminado o se
haya bloqueado.
La operacin SUBIR incrementa el valor del semforo correspondiente. As, despus
de una operacin de SUBIR habr un proceso menos durmiendo en l.
Los procesos no se bloquean nunca en una operacin de SUBIR, de la misma forma
que en el modelo anterior los procesos nunca se bloquean en una operacin
DESPERTAR.
3.3.9. MONITORES.
Para simplificar la escritura de programas correctos, Hoare (1.974) y Brinch Hasen
Andrs S. Egea
Pgina 8 de 22
3.3.10 MENSAJES
Los mensajes proporcionan una solucin al problema de la concurrencia de
procesos que integra la sincronizacin y la comunicacin entre ellos y resulta
adecuado tanto para sistemas centralizados como para distribuidos. Esto hace que
se incluyan prcticamente en todos los sistemas operativos modernos y que en
muchos de ellos se utilicen como base para todas las comunicaciones del sistema,
tanto dentro del computador como con otros computadores.
La comunicacin mediante mensajes necesita siempre de un proceso emisor y de
uno receptor y la informacin que debe intercambiarse. Las operaciones bsicas
para una comunicacin mediante mensajes que proporciona todo sistema
operativo son: enviar(mensaje) y recibir(mensaje). Las acciones de transmisin de
informacin y de sincronizacin se ven como actividades inseparables.
Andrs S. Egea
Pgina 9 de 22
3.3.10.1.
3.3.10.2
Modelos de sincronizacin
Pgina 10 de 22
3.3.10.3
Longitud fija
Longitud variable
De tipo definido
4. GESTIN DE PROCESOS
Para implementar el modelo de procesos, el sistema operativo utiliza una tabla
(vector de registros), llamada tabla de procesos, que tiene una posicin por cada
proceso. Esta posicin contiene informacin sobre el estado del proceso, su
contador de programa, el puntero de pila, la memoria asignada, el estado de sus
ficheros abiertos, informacin relativa a su planificacin y a su utilizacin de los
recursos, ... ; en resumen, toda la informacin que hay que salvar cuando el proceso
pasa del estado en ejecucin al estado listo para ejecutarse. Esta informacin
permitir activar de nuevo el proceso como si nunca se hubiera parado.
Vectores de interrupciones, cada una de las cuales est relacionada con una clase
de dispositivos de E/S.
Andrs S. Egea
Pgina 11 de 22
Supongamos que cuando llega una interrupcin del disco se est ejecutando el
proceso de usuario. El mecanismo hardware de interrupcin salvar
automticamente en la pila el contador de programa, la palabra de estado de
programa, y, quizs, uno o ms registros. El computador ejecutar, seguidamente,
un salto a la direccin de memoria especificada en el vector de interrupciones de
disco, Esto es todo lo que hace el hardware. A partir de ese momento, el software se
encarga del resto.
Lo primero que hace el procedimiento de servicio de la interrupcin es salvar todos
los registros en la posicin de la tabla de procesos correspondientes al proceso
actual. Con objeto de poderlos recuperar con rapidez, el nmero de este proceso y
un puntero a su registro en la tabla de procesos se almacenan en variables globales.
A continuacin, se recupera de la pila la informacin que la interrupcin ha
almacenado all, y se carga el puntero de pila con un nuevo valor para que apunte a
una pila auxiliar utilizada por el manejador de procesos.
Cuando esta rutina termina, llama a un procedimiento en C para que haga el resto.
El paso siguiente consiste en elaborar un menaje para enviarlo al proceso de disco,
que estar bloqueado esperndolo. El mensaje indica que se ha producido una
interrupcin.
A continuacin, se cambia el estado del proceso de disco de bloqueado a listo para
ejecutarse, y se llama al planificador. Este asigna prioridades distintas a los
diferentes tipos de procesos, lo que permite dar servicio ms rpido a los
manejadores de dispositivos de E/S que a los procesos de usuario. Si un proceso
de disco fuera ahora el proceso ejecutable de ms alta prioridad, se le asignara el
procesador. En cambio, si el proceso que ha sido interrumpido es de igual o mayor
prioridad, se le ceder el procesador de nuevo, de modo que el proceso de disco
tendr que esperar todava un rato.
En cualquier caso, el procedimiento C devuelve finalmente control, y el cdigo
ensamblador carga los registros generales y el mapa de memoria del proceso que va
a estar ahora en ejecucin y le cede el procesador.
1. El hardware mete en la pila el contador de programa, etc.
2. El hardware carga un nuevo contador de programa desde el vector de
interrupciones.
3. Un procedimiento en ensamblador salva los registros en tabla.
4. Otro procedimiento en ensamblador cambia el valor del puntero de pila.
5. Un procedimiento en C cambia el estado del proceso de servicio a listo para
ejecutarse
6. El planificador escoge el siguiente proceso a ejecutar.
7. Un procedimiento en C pasa control al cdigo ensamblador.
Andrs S. Egea
Pgina 12 de 22
Andrs S. Egea
Pgina 13 de 22
El programa es
selecionado por el
planificador
de
trabajos
No cabe en M.P.
,procesos
en
ejecucin
concurrentes.
DISCO
retenido
en cola
intercambio
Le llega
turno
Pide E/S
EN
EJECUCI
Se le acaba el
Quantum
Fin E/S
LISTO
BLOQUEAD
O (espera)
MEMORIA PRINCIPAL
6. PLANIFICACIN DE PROCESOS.
Cuando hay dos o ms procesos listos para ejecucin, el sistema operativo debe
decidir cul se ha de ejecutar primero. La parte del sistema operativo encargada de
tomar esta decisin es el planificador, y el algoritmo o que utiliza se llama algoritmo
de planificacin. En los viejos tiempos de los sistemas de procesamiento por lotes, el
algoritmo de planificacin era bien simple: ejecutar el siguiente trabajo de la cinta. La
situacin se complic cuando llegaron los sistemas multiusuario en tiempo
compartido, que incluso llegaban a realizar procesamientos por lotes como actividad
en segundo plano.
A la hora de juzgar si un algoritmo de planificacin es bueno, se pueden aplicar
varios criterios, a saber:
1. Equidad: que se asigne el procesador a cada de forma equitativa.
2. Eficiencia: que se mantenga ocupado el procesador el 100 por cien del tiempo.
3.Tiempo de respuesta: que se minimice el tiempo de respuesta para usuarios
4.Tiempo de procesos global: que se minimice el tiempo que han de esperar los
usuarios de trabajos por lotes para obtener resultados a la salida.
5. Rendimiento: que se maximice el nmero de trabajos procesador en cada unidad
de tiempo.
Algunos de estos objetivos son contradictorios. Se puede demostrar que cualquier
Andrs S. Egea
Pgina 14 de 22
Pgina 15 de 22
7.- INTERBLOQUEO
El error ms serio que puede ocurrir en entornos concurrentes es el conocido como
interbloqueo, que consiste en que dos o ms procesos entran en un estado que
imposibilita a cualquiera de ellos salir del estado en que se encuentra. A dicha
situacin se llega porque cada proceso adquiere algn recurso necesario para su
operacin a la vez que espera a que se liberen otros recursos que retienen otros
procesos, llegndose a una situacin que hace imposible que ninguno de ellos
pueda continuar.
Por ejemplo, supongamos que se tienen dos procesos Pl y P2 que desean acceder a
dos recurso (por ejemplo, impresora y disco) a los que slo puede acceder un
proceso cada vez. Suponemos que los recursos estn protegidos por los semforos
S1 y S2. Si los procesos acceden a los recursos en el mismo orden no hay ningn
problema.
El primer proceso que toma S1 tambin toma S2 y posteriormente libera los recursos
en orden inverso a como se tomaron y permite al otro proceso acceder a ellos. Sin
embargo, si uno de los procesos desea utilizar los recursos en orden inverso, podra
ocurrir que Pl tomara el primer recurso (semforo S) y P2 el segundo recurso
(semforo S2) y se quedarn ambos en espera de que el otro liberara el recurso que
posee.
Este error no ocurre con demasiada frecuencia, pero sus consecuencias suelen ser
devastadoras. En algunas ocasiones puede resultar fcil darse cuenta de la
posibilidad de que ocurra el interbloqueo, pero la mayora de las veces resulta
realmente complicado detectarlo.
Pgina 16 de 22
adquirido. Si otro proceso pide el recurso debe esperar a que este sea liberado.
2)Retencin y espera. Los procesos retienen los procesos que han adquirido
mientras esperan para adquirir otros recursos que estn siendo retenidos por otros
procesos.
3)No existencia de expropiacin. Los recursos no se pueden quitar a los procesos
que los tienen; su liberacin se produce voluntariamente una vez que los procesos
han finalizado su tarea con ellos.
4)Espera circular. Existe una cadena circular de procesos en la que cada uno
retiene al menos un recurso que se solicita por el siguiente proceso de la cadena.
La condicin de espera circular implica la condicin de retencin y espera, sin
embargo, resulta til considerar ambas condiciones por separado.
Prevencin de interbloqueos
En este mtodo se trata de evitar cualquier posibilidad que pueda llevar a la
situacin de interbloqueo. Es posiblemente el mtodo ms utilizado, pero puede
llevar a una pobre utilizacin de los recursos. Como las cuatro condiciones son
necesarias para que se produzca el interbloqueo basta con evitar una de ellas para
que no se produzca.
La condicin de exclusin mutua se debe mantener ya que es necesario mantener
recursos que no se puedan compartir, por ejemplo una impresora. Examinamos el
resto de las condiciones de forma separada.
Retencin y espera
Para que no se cumpla esta condicin se debe garantizar que un proceso que posee
un recurso no pueda pedir otro. Una manera de proceder es haciendo que la peticin
de todos los recursos que necesita un proceso se realice bajo la premisa de todos o
ninguno. Si el conjunto completo de recursos necesitados por el proceso estn
disponibles se le concede y en caso contrario, se suspende en espera de que todos
lo estn. Dicha espera se debe realizar sin que se posea ningn recurso. Este modo
de proceder no resulta adecuado si, por ejemplo, va a haber recursos que slo se
van a utilizar al final de la ejecucin del proceso y que sin embargo, se mantienen
retenidos mientras se hace uso de otros. Para evitarlo se puede proceder pidiendo
conjuntos de recursos con la condicin de o todos o ninguno, pero slo cuando no se
disponga de otros. De este modo, si, por ejemplo, se va a copiar de dos discos a una
impresora, se puede pedir la impresora y uno de los discos, despus se liberan y a
continuacin se pide el otro disco y la impresora. De este modo uno de los discos no
est retenido mientras se est imprimiendo del otro.
Andrs S. Egea
Pgina 17 de 22
Espera circular
Para que esta condicin no se produzca se ordenan los recursos asignndoles a
cada tipo de ellos un nmero entero y se impone que se pidan en orden ascendente.
Adems, las peticiones de todos los recursos perteneciente a un mismo tipo deben
realizarse con una nica peticin y no incrementalmente. Por ejemplo, inicialmente
los procesos pueden pedir cualquier recurso; si el proceso Pl pide el recurso con
nmero de orden 3, a continuacin slo puede pedir recursos con nmero de orden
superior a 3. Si desea pedir a la vez dos recursos siempre deber pedir primero el
recurso con menor nmero de orden.
Con esta estrategia no se puede producir la espera circular, ya que un proceso que
posea un recurso de un tipo no puede esperar a ningn otro proceso que est
esperando un recurso del mismo tipo o con un orden inferior.
Andrs S. Egea
Pgina 18 de 22
Pgina 19 de 22
7.4.-Recuperacin de interbloqueos
Una vez que se ha detectado el interbloqueo se debe romper para que los procesos
puedan finalizar su ejecucin y liberar as los recursos. Para la ruptura de la espera
circular se pueden realizar varias opciones. La idnea seria suspendiendo algunos
de los procesos bloqueados para tomar sus recursos y reanudar su ejecucin una
vez que se hubiera deshecho el interbloqueo. Esta solucin slo puede resultar
factible en casos muy particulares; no se podra suspender a un proceso de escribir
en una impresora para pasarla a otro proceso y reanudar despus la impresin,
como tampoco se podra suspender indefinidamente un proceso de tiempo real. Las
dos opciones que se suelen utilizar son:
reiniciar uno o ms de los procesos bloqueados y expropiar los recursos de algunos
de los procesos bloqueados.
Para aplicar la primera de las opciones se deben tener en cuenta una serie de
factores con el fin de elegir aquellos procesos cuya reiniciacin resulte menos
traumtica. Entre los factores a tener en cuenta en cada proceso se tienen:
1)
2)
3)
4)
5)
Pgina 20 de 22
8.- Bibliografa.
Alonso Domnguez , V.M. ;
Villarino Fernndez, J.A. : Sistemas operativos : Alhambra Longman . 1994
Pgina 21 de 22
Aranda Joaqun;
De la cruz, Jesus M;
Canto M Antonia;
Dormido Sebastin: Sistemas Operativos: Sanz y Torres.1996
Prieto , Alberto;
Lloris , Antonio;
Torres , Juan Carlos : Introduccin a la Informtica.McGraw-Hill.1989
Cerrato , Purificacin;
Lzaro Eugenio;
Jarillo M Dolores;
Jarillo Pedro: Sistemas Informticos Multiusuario y en Red: McGraw-Hill.1996
Andrs S. Egea
Pgina 22 de 22