2.1 CONCEPTO DE PROCESO

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.
" pp 45-50.


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
.

FIGURA 1:Multiprogramacion de 4 programas



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
que puede tener un proceso son
  • :





    • 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.





    FIGURA 2: Un proceso puede estar en Ejecucion, Bloqueado o Listo


    "..."


    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)