2.1. Concepto de Proceso
Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada uno de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro. Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado 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 CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Según diferentes medios de conceptos, un proceso es una secuencia de pasos dispuesta con algún tipo de lógica que se enfoca en lograr algún resultado específico. Esto es cierto, si hablamos de nuestro ordenador, todo programa abierto cuenta como proceso o tarea mientras se esté ejecutando, por ejemplo, el simple reproductor de música, su tarea es la reproducción de sonido, para ello realiza varias acciones desde buscar el archivo en memoria, decodificar la información del audio, reproducir el sonido, entre otras, todos esto son pasos que tiene que seguir el programa y su resultado final es que nosotros escuchemos nuestra canción favorita sin más.
Otra información que permite al sistema operativo su planificación. Esta definición varía ligeramente en el caso de sistemas operativos multadillo, 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. Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos.
Una de las diferencias fundamentales entre los S.O.C. y los S.O.D. es que los primeros son más orientados hacia el propósito general, mientras que los segundos se diseñan para aplicaciones más específicas, o bien por su complejidad, más limitadas en cuanto la variedad de ámbitos. Lo anterior nos dice que la ejecución de procesos y la distribución de carga se ejecutan con mayor certeza, ya que se conocen de antemano los tiempos, tamaños de códigos, flujos de datos y solicitudes de servicios.
Un proceso en un S.O.D. es un conjunto formado por un programa, un registro de su estado de ejecución, un espacio de memoria de trabajo, un conjunto de procesos padres o hijos, y una máquina que lo atiende mediante una sesión, es decir una conexión lógica. A diferencia de los S.O.C. en los que un procesador es un quantum computacional, aquí un procesador es un sistema local independiente. Trasladar los conceptos sobre administración de procesos a los ambientes distribuidos implica considerar que las prestaciones de servicio de la CPU se sujetan además a las reglas de una arquitectura de red, como en el caso de crear sesiones para atender procesos; por lo que las soluciones son similares en su concepto a una mezcla de sistema multiusuario, multiproceso, multiprocesador y con accesos compartidos a memoria y sistemas de archivo.
El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (folk). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso. En este modelo: todo software ejecutable de la computadora, lo que a menudo incluye al sistema operativo, está organizado en una serie del proceso secuenciales, o simplemente procesos. La idea clava aquí es que un proceso es una actividad de algún tipo: tiene programa, entrada, salida y un estado.
Se puede compartir un procesador entre varios procesos, usando algún algoritmo de planificación para determinar cuándo debe de trabajar en un proceso para atender a uno distinto. Jerarquías de procesos Los sistemas operativos que manejan el concepto de proceso deben contar con algún mecanismo para crear todos los procesos necesarios. En los sistemas muy sencillos, o en los diseñados para ejecutar solo una aplicación. En otros sistemas operativos existen llamadas al sistema para crear un proceso, cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la llamada al sistema. Los procesos necesitan poder crear otros procesos. En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que crea una copia idéntica del proceso invocador. El proceso hijo también puede ejecutar FORK, así que es posible tener un árbol de proceso. Un proceso podría ser una instancia de un programa en ejecución. A los procesos frecuentemente se les refiere como tareas. El contexto de un programa que está en ejecución es lo que se llama un proceso. Linux, es un sistema operativo multitarea y multiusuario. Esto quiere decir que múltiples procesos pueden operar simultáneamente sin interferirse unos con los otros. Cada proceso tiene la "ilusión" que es el único proceso en el sistema y que tiene acceso exclusivo a todos los servicios del sistema operativo.
Programas y procesos son entidades distintas, múltiples instancias de un programa pueden ejecutarse simultáneamente. Cada instancia es un proceso separado. Por ejemplo, si usuarios desde equipos diferentes, ejecutan el mismo programa al mismo tiempo, habría tantas instancias del mismo programa, es decir, procesos distintos.
Comentarios
Publicar un comentario