En el ámbito de la informática, el concepto se refiere a la ejecución de diversas instrucciones por parte del microprocesador, de acuerdo a lo que indica un programa.
El sistema operativo de la computadora (ordenador) se encarga de gestionar los procesos. Este software administra las instrucciones que otros programas informáticos destinan al microprocesador, analiza el estado de ejecución y organiza la memoria dedicada a las tareas.
El sistema operativo se encarga de crear y borrar los procesos y de establecer comunicaciones entre ellos. La forma de gestión, de todos modos, depende del modo de trabajar de cada sistema operativo en particular.
Existen diversos caminos para la creación de un proceso informático, como el propio inicio del sistema, el pedido de un usuario o la llamada realizada por otro proceso. En cuanto a la finalización de un proceso, puede concretarse de manera normal, a partir de un error o por petición de otro proceso.
Estados de un proceso informático
Un proceso informático, por otra parte, puede atravesar diferentes estados. Puede estar en ejecución (cuando está utilizando el microprocesador), bloqueado (su ejecución requiere que se realice otro evento) o listo (cuando libera el microprocesador para que pueda dedicarse a otro proceso).
Tipos de procesos
Es posible distinguir entre diferentes tipos de procesos. Los procesos cooperativos, por ejemplo, son gestionados por varias configuraciones de hardware. Los procesos distribuidos, en cambio, se encuentran repartidos entre varios elementos de un sistema. También existen los procesos paralelos, que se caracterizan por ser ejecutados de forma simultánea.
Terminación de un proceso
La terminación de un proceso informático es la última fase de su vida, siendo las dos anteriores su creación y la ejecución de instrucciones. La terminación puede darse por diferentes razones, las cuales se manifiestan a través del estado que atraviesa el proceso al momento de ser eliminado:
* salida normal: tiene lugar cuando el proceso finaliza por voluntad del usuario, algo que ocurre constantemente durante el uso normal de un dispositivo. Por ejemplo, cada vez que se cierra un programa;
* salida por error: se trata del caso opuesto al anterior, ya que la terminación del proceso informático se da por la imposibilidad de continuar en ejecución. Un ejemplo común de esto se da cuando los datos son insuficientes, es decir, cuando un proceso requiere un archivo que no puede encontrar en la dirección proporcionada por el programa;
* error fatal: este estado suele provocar pavor a los usuarios menos experimentados, ya que su forma de manifestarse no es precisamente amigable. Su causa es un error en el programa, algo que puede darse por diversas razones, como ser que intente escribir en una parte de la memoria que no se encuentra accesible, o bien que exija una división por 0;
* eliminado por otro proceso: algunos sistemas operativos muestran a sus usuarios mensajes tales como “el programa no responde” en situaciones en las cuales el programa parece no estar funcionando. La realidad suele ser muy diferente, ya que en la mayoría de los casos ocurre que se ha quedado “atrapado” en un ciclo infinito, o sea, justamente lo contrario. En estos casos, el único recurso para terminar el proceso informático parece ser la ayuda de otro, que, dependiendo del entorno, se puede ejecutar a través de la presión de un botón o de instrucciones escritas en la ventana de comandos.
Para conseguir un rendimiento óptimo de un ordenador, uno de los puntos fundamentales es conocer los procesos informáticos que el sistema operativo ejecuta por defecto y distinguir aquellos que realmente son útiles para nosotros, con el objeto de detener el resto y evitar un uso innecesario del procesador y la memoria.
Partes que lo conforman
Un proceso es un programa en ejecución, 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 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.
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. El mecanismo por el cual un proceso crea otro proceso se denomina Bifurcación (fork). 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.
Algunos tipos de procesos
- Proceso distribuido: Es una forma de proceso en la que los datos y las funciones están distribuidos en los distintos elementos de una configuración o sistema.
- Proceso paralelo: Es un tipo de proceso asimilable a los grandes sistemas.
- Proceso cooperativo: Alude al hecho de que una única aplicación se gestiona desde dos (o más) diferentes configuraciones hardware.
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 first in first out.
- La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En este caso, el suceso que permite desbloquear un proceso no es una operación de entrada/salida, sino una señal generada a propósito por el programador desde otro proceso.
Hay cuatro eventos principales que provocan la creación de procesos:
- El arranque del sistema.
- La ejecución, desde un proceso, de una llamada al sistema para la creación de otro proceso.
- Una petición de usuario para crear un proceso.
- El inicio de un trabajo por lotes.
Fuentes
Comentarios
Publicar un comentario