Ir al contenido principal

Definición de procesos informáticos

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

Entradas populares de este blog

Bloque de control del proceso (BCP)

El bloque de control del proceso (BCP) o en inglés PCB (Process Control Block) es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el BCP correspondiente para que sirva como descripción en tiempo de ejecución durante toda la vida del proceso. Cuando el proceso termina, su BCP es borrado y el registro puede ser utilizado para otros procesos. Un proceso resulta conocido para el sistema operativo y por t anto elegible para competir por los recursos del sistema sólo cuando existe un BCP activo asociado a él. El bloque de control de proceso es una estructura de datos con campos para registrar los diferentes aspectos de la ejecución del proceso y de la utilización de recursos. La información almacenada en un BCP incluye típicamente algunos o todos los campos siguientes:     Identificador del proceso (Process Identificator -PID-, de s...

Políticas de planificación de procesos. Ventajas y desventajas

A continuación se enumeran diversas políticas de planificación. Lo habitual es utilizar políticas mixtas. Generalmente, el planificador a corto plazo utiliza round-robin, mientras que el planificador a largo plazo utiliza varias colas FIFO (First In First Out). Cada una de estas colas corresponde a una prioridad diferente.     Planificación Round-robin     Round-robin con pesos.     Prioridades monótonas en frecuencia (RMS (Rate-monotonic scheduling))     Menor tiempo de respuesta primero (EDF (Earliest deadline first scheduling))     FIFO - También conocido como FCFS "First Come, First Served".     LIFO.     SJF - Shortest Job First.     CFS - Completely Fair Scheduler (ó Planificador Completamente Justo)     SRT - Shortest Remaining Time     SPT - Shortest Process Time     Planificación mediante colas multinivel. Algunos algoritmos de Planificación Pri...

Métodos de administración del procesador

La administración del procesador es, prácticamente el tema central de la  multiprogramación. Esta administración involucra las distintas maneras a través de las cuales el sistema operativo comparte los recursos del procesador entre distintos procesos que están compitiendo por su uso. Esto implica directamente la multiprogramación y conlleva simultáneamente la sincronización de los mismos. La idea de administrar el procesador eficientemente está enfocada en dos aspectos: el primero es la cantidad de procesos por unidad de tiempo que se pueden ejecutar en un sistema; y el segundo, el que importa más al usuario, es el tiempo de respuesta de esos procesos. La idea principal de la administración del procesador tiene que ver con eltiempo que permanecerá un proceso en el procesador, ¿que proceso corre en que momento?.En un Computador personal es mas difícil encontrar el caso que un usuario necesite ejecutar dos procesos al mismo tiempo, enviar un correo y escribir un texto. Mie...