Definición proceso
Un proceso no es mas que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables.
En un proceso las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra información que permite al sistema operativo su planificación.
Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.
Estados y transiciones de los procesos
Desde que se crea hasta que se destruye, un proceso pasa por diferentes estados. Un proceso puede variar entre 5 distintos estado
- Nuevo: Se dice que un proceso está en estado de nuevo cuando apenas se encuentra en proceso de crearse.
- Listo: Un proceso está en estado de listo, cuando podría usar una CPU, si hubiera una disponible.
- En ejecución: Se dice que un proceso está estado de ejecución, si en ese momento tiene esta ocupando la CPU.
- Bloqueado: Se dice que un proceso está en estado de bloqueado, si espera que ocurra algo, como por ejemplo, la terminación de una E/S, para así poder ponerse en marcha.
- Terminado: Cuando un proceso se ha completado su ejecución pasa a ser un proceso terminado. Los bloques de control de los procesos se almacenan en colas, cada una de las cuales representa un estado particular de los procesos, existiendo en cada bloque, entre otras informaciones. Los estados de los procesos son internos del sistema operativo y transparentes al usuario.
1.- Estados activos
Son aquellos que compiten con el procesador o están en condiciones de hacerlo. Se dividen en:
- Ejecución:Estado en el que se encuentra un proceso cuando tiene el control del procesador. En un sistema monoprocesador este estado sólo lo puede tener un proceso.
- Preparado: Aquellos procesos que están dispuestos para ser ejecutados, pero no están en ejecución por alguna causa (Interrupción, haber entrado en cola estando otro proceso en ejecución, etc.).
- Bloqueado: Son los procesos que no pueden ejecutarse de momento por necesitar algún recurso no disponible (generalmente recursos de entrada/salida).
2.- Estados inactivos
Son aquellos que no pueden competir por el procesador, pero que pueden volver a hacerlo por medio de ciertas operaciones. En estos estados se mantiene el bloque de control de proceso aparcado hasta que vuelva a ser activado. Se trata de procesos que no han terminado su trabajo que lo han impedido y que pueden volver a activarse desde el punto en que se quedaron sin que tengan que volver a ejecutarse desde el principio.
Son de dos tipos:
Suspendido bloqueado: Es el proceso que fue suspendido en espera de un evento, sin que hayan desaparecido las causas de su bloqueo.
Suspendido programado: Es el proceso que han sido suspendido, pero no tiene causa parta estar bloqueado.
Transiciones
Un proceso puede encontrarse en estado de ejecución, bloqueado o listo (que también se llama ejecutable). De estos estados de los procesos se derivan las siguientes transiciones y estados:
Transición: El paso de un estado a otro.
1. El proceso se bloquea en la entrada.
2. El planificador elige otro proceso.
3. El planificador elige este proceso.
4. La entrada se vuelve disponible.
Estados:
1. Ejecución (que en realidad hace uso del CPU en ese instante).
2. Bloqueado (incapaz de correr hasta que suceda algún evento externo.
3. Listo (ejecutable; se detiene temporalmente para permitir que se ejecute otro
proceso).
En estos tres estados son posibles cuatro transiciones:
1. Ocurre cuando un proceso descubre que no puede continuar. En algún sistema el proceso debe ejecutar una llamada al sistema, BLOCK, para entrar en estado bloqueado.
2 y 3. Son ocasionadas por el planificador del proceso, que es parte del sistema operativo sin que el proceso llegue a saber de ella.
2. Ocurre cuando el planificador decide que el proceso en ejecución ya ha corrido el tiempo suficiente y es tiempo de permitir que otro proceso tome tiempo de CPU.
3. Ocurre cuando todos los procesos han utilizado su parte del tiempo y es hora de que el primer proceso vuelva a correr.
4. Ocurre cuando aparece el evento externo que estaba esperando un proceso (como el arribo de alguna entrada). Si ningún otro proceso corre en ese instante, la transición 3 se activará de inmediato y el proceso iniciara su ejecución, de lo contrario tendrá que esperar, en estado listo.
Fuentes
http://eq2-sistemasoperativos.blogspot.mx/2012/04/21-concepto-de-proceso.html
http://openaccess.uoc.edu/webapps/o2/bitstream/10609/8179/1/fserranocaTFC0611.pdf