Sitios recomendados

domingo, 25 de abril de 2010

ADMINSTRACION DE PROCESOS


Un proceso no es más que un conjunto de threads que ejecutan el mismo código, junto con las zonas de memoria asociadas a ellos y los ficheros que tienen abiertos.


Un programa consta, al menos, de un proceso, y un proceso, al menos, de un thread. Cuando un programa tiene varios procesos, lo normal es que cada uno ejecute un código distinto, los cuales se encuentran en ficheros ejecutables separados. Dos procesos solo pueden compartir una zona de memoria si esta es definida expresamente como tal. Así mismo, es en este caso cuando los sistemas de sincronización a la hora de compartir memoria se vuelven especialmente necesarios e importantes.


Un proceso es un programa en ejecución junto con su entorno asociado (registros, variables,..). El núcleo del S.O. se relaciona con los procesos, creándolos, terminándolos y respondiendo a cualquier petición de servicios de estos.


Estados y transiciones de los procesos:

Los estados en que pueden encontrarse los procesos los controla el S.O. y son transparentes al usuario.

Se dividen en:

Estados activos:
Son aquellos que compiten por el procesador o están en condiciones de hacerlo:
En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.

Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.

Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc.
El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.


Estados inactivos
:
Son aquellos que no pueden competir por el procesador, pero pueden volver a hacerlo si se soluciona el problema que los ha dejado “en suspenso” (avería de un dispositivo E/S):

Suspendido bloqueado: proceso que ha sido suspendido y que además está a la espera de un evento para desbloquearse.
Suspendido preparado: proceso que ha sido simplemente suspendido.

Transiciones de estado de los procesos


De ejecución á Bloqueado
: Al iniciar una operación de E/S, al realizar una operación WAIT sobre un semáforo a cero.

De ejecución á Listo: Por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado tiempo ejecutándose continuamente el sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado listo.

De Listo á en ejecución: cuando lo requiere el planificador de la CPU (veremos el planificador de la CPU en el tema de planificación de procesos).

De Bloqueado á Listo: Se dispone del recurso por el que se había bloqueado el proceso. Por ejemplo, termina la operación de E/S, o se produce una operación SIGNAL sobre el semáforo en que se bloqueó el proceso, no habiendo otros procesos bloqueados en el semáforo.

Obsérvese que de las cuatro transiciones de estado posibles, la única iniciada por el proceso de usuario es el bloqueo, las otras tres son iniciadas por entidades externas al proceso.



No hay comentarios:

Publicar un comentario