El concepto central de cualquier Sistema Operativo es el de proceso: una abstracción de un programa en ejecución también llamada tarea.
H.M. Deitel (1987) mencionaba "... No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas :
- Un programa que se está ejecutando.
- Una actividad asincrónica.
- El emplazamiento del control de un procedimiento que está siendo ejecutado.
- Aquello que se manifiesta por la existencia en el Sistema Operativo de un bloque de control de proceso.
- Aquella entidad a la cual son asignados los procesadores.
- La unidad despachable.
En sistemas de multiprogramación la cpu alterna de programa en programa, en un esquema de seudo paralelismo , es decir que la cpu ejecuta en cierto instante un solo programa, intercambiando muy rápidamente entre uno y otro.
El paralelismo real de hardware se da en las siguientes situaciones:
- En ejecución de instrucciones de programa con más de un procesador de instrucciones en uso simultáneamente.
- Con la superposición de ejecución de instrucciones de programa con la ejecución de una o más operaciones de entrada / salida.
El objetivo es aumentar el paralelismo en la ejecución.
A.S. Tanenbaum (1997) detallo las siguientes caracteristicas:
" El modelo de procesos posee las siguientes características:
- Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios procesos secuenciales o procesos.
- Un proceso incluye al programa en ejecución y a los valores activos del contador, registros y variables del mismo.
- Conceptualmente cada proceso tiene su propia cpu virtual.
- Si la cpu alterna entre los procesos, la velocidad a la que ejecuta un proceso no será uniforme, por lo que es necesario aclarar lo siguiente:
- Que los procesos no deben programarse con hipótesis implícitas acerca del tiempo.
- Que normalmente la mayoría de los procesos no son afectados por la multiprogramación subyacente de la cpu o las velocidades relativas de procesos distintos.
- Un proceso es una actividad de un cierto tipo, que tiene un programa, entrada, salida y estado.
- Un solo procesador puede ser compartido entre varios procesos con cierto “algoritmo de planificación” , el cual determina cuándo detener el trabajo en un proceso y dar servicio a otro distinto
En cuanto a las jerarquías de procesos es necesario señalar que los Sistemas Operativos deben disponer de una forma de crear y destruir procesos cuando se requiera durante la operación, teniendo además presente que los procesos pueden generar procesos hijos mediante llamadas al Sistema Operativo, pudiendo darse ejecución en paralelo. " pp 150-160.
Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:
- Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos
- Los procesos pueden bloquearse en su ejecución porque:
- Desde el punto de vista lógico no puede continuar porque espera datos que aún no están disponibles.
- El Sistema Operativo asignó la cpu a otro proceso.
- Los estados
- :
- En ejecución: utiliza la cpu en el instante dado.
- Listo: ejecutable, se detiene en forma temporal para que se ejecute otro proceso.
- Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo.
- Son posibles cuatro transiciones entre estos estados.
"..."
SISTEMAS OPERATIVOS - FACENA - UNNE
UNIVERSIDAD NACIONAL DEL NORDESTE
REPUBLICA DE ARGENTINA
PROFESOR DAVID LUIS LA RED MARTINEZ
(http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO2.htm#Inicio)