Un proceso es un programa en ejecución, el cual tiene un hilo de ejecución.
Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactúan entre sí y pertenecen a una misma aplicación. En el caso de procesos independientes en general se debe a que no interactúan y un proceso no requiere información de otros o bien porque son procesos que pertenecen a distintos usuarios.
Los procesos son gestionados por el Sistema Operativo y están formados por:
- 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 unidad central de procesamiento para dicho programa.
- Su memoria de trabajo (memoria crítica), es decir, la memoria que ha reservado y sus contenidos.
- Otra información que permite al sistema operativo su planificación.
Los procesos pueden ser cooperativos o independientes. Dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a los otros hasta que reciban una señal para continuar.
- Se usa una variable de tipo semáforo para sincronizar los procesos.
- Si un proceso está esperando una señal, se suspende hasta que la señal se envíe.
- Se mantiene una cola de procesos en espera en el semáforo.
- La forma de elegir los procesos de la cola en espera es mediante una política.
Creación de un Proceso.
Existen cuatro maneras de crear un proceso:
Obedecen a su participación y disponibilidad dentro del sistema operativo y surgen de la necesidad de controlar la ejecución de cada proceso. Los procesadores sólo pueden ejecutar un solo proceso a la vez, turnándolos para el uso de éste. Existen procesos no apropiativos o cooperativos que básicamente ocupan todo el tiempo del procesador hasta que ellos deciden dejarlo. Los procesos apropiativos son aquellos que ocupan por un período de tiempo el procesador hasta que una interrupción o señal llega al procesador para hacer el cambio de proceso, a esto se le conoce como cambio de contexto.
Los posibles estados que puede tener un proceso son ejecución, bloqueado y listo:
- Ejecución: Es un proceso que está haciendo uso del procesador.
- Bloqueado: No puede ejecutarse hasta que un evento externo sea llevado a cabo.
- Listo: Ha dejado disponible al procesador para que otro proceso pueda ocuparlo.
Transiciones
Las posibles transiciones son 4.
La primera se realiza cuando el sistema operativo determina que el proceso no puede continuar justo en ese momento, en algunos sistemas se puede hacer una llamada al sistema "pause" para pasar al estado bloqueado.
Las transiciones 2 y 3 son llevadas a cabo por el planificador de procesos, siendo que el proceso no tiene conocimiento de éste. La transición 2 se da cuando el planificador de procesos decide que el proceso ya estuvo el tiempo suficiente en ejecución y debe dar paso a la ejecución de otros procesos (adquieran tiempo del procesador). La transición 3 se realiza cuando todos los procesos han ocupado tiempo del procesador y debe retomarse el primer proceso.
La transición 4 ocurre cuando se produce un evento externo por el que un proceso estaba en espera, por ejemplos, introducir datos desde la terminal. Si no hay otro proceso en ejecución en ese instante, la transición 3 se activa y el proceso comienza a ejecutarse; también podría pasar al estado de "listo" y esperar un momento para iniciar la ejecución.









