...

Instituto Politécnico Nacional

Escuela Superior de Cómputo

Recurso Didáctico Digital

Unidad 1: Estructura de un sistema operativo
...
1.4.1 Procesos y señales

Dado que cada proceso tiene asociado un espacio de direcciones, una lista de ubicaciones de memoria que comienza con un valor mínimo y puede alcanzar un valor máximo, los procesos son esenciales para que un programa se pueda ejecutar. Esto se debe a que cada proceso incluye los valores actuales del contador del programa, registros y variables.

Como resultado, la CPU pasa de un proceso a otro. La multiprogramación es esta transición rápida de un proceso a otro en algún orden.

Es crucial distinguir entre un programa y un proceso. Un programa es una entidad estática formada por sentencias de programa que definen la conducta del proceso cuando se ejecutan con un conjunto de datos, mientras que un proceso es la ejecución del programa por parte .del sistema operativo, de manera más precisa, la unidad de procesamiento que el sistema operativo administra.

El mismo programa puede estar siendo ejecutado por dos o más procesos, cada uno con sus propios datos y recursos, como si dos o más usuarios usan el mismo editor de texto al mismo tiempo. Aunque el programa es igual, cada usuario tiene un proceso diferente y diferentes datos.

Los sistemas operativos deben garantizar que existan todos los procesos necesarios, por lo que es necesario tener una forma de crear y destruir los procesos según sea necesario durante el funcionamiento del sistema. Los siguientes son los cuatro principales eventos que conducen a la creación de nuevos procesos:

  • Iniciar el sistema.
  • Un proceso llama al sistema para iniciar un nuevo proceso.
  • El usuario solicitó la creación de un nuevo proceso.
  • Iniciar un trabajo en serie.

Cuando un sistema operativo arranca, se crean típicamente varios procesos. Algunos de esos procesos son procesos foreground (en primer plano), esto es, procesos que interactúan con los usuarios y realizan trabajo para ellos. Otros son procesos background (en segundo plano), que no están asociados con usuarios particulares, sino que tienen alguna función específica. Los procesos que se ejecutan como procesos background para llevar a cabo alguna actividad tal como el correo electrónico, las páginas web, la impresión de archivos de salida, se denominan demonios en Unix o servicios en Windows.

Ahora bien, cada vez que se crea un proceso, también se debe determinar cuándo una ejecución comienza a realizar el trabajo. Sin embargo, el nuevo proceso debe terminar pronto o temprano debido a una de las siguientes razones:

  • El proceso completa su trabajo y termina de manera voluntaria.
  • Cuando el proceso detecte un error, decida terminar de manera voluntaria). El sistema interrumpe el proceso al detectar un error fatal.
  • Un proceso puede finalizar a otro proceso mediante una llamada al sistema Kill en UNIX.

La primera razón por la que terminan los procesos es porque han completado su trabajo. Un compilador ejecuta una llamada al sistema para notificar al sistema operativo que ha completado la compilación del programa. siempre hay un icono o una opción de menú en los procesadores de texto, navegadores y programas similares que permite al usuario seleccionar con el ratón que el proceso borre cualquier archivo temporal que esté abierto y luego termine; la segunda causa de terminación es que el proceso descubre un error fatal.

Estados de los procesos

El estado de un proceso es crucial porque durante su existencia pasa por una serie de estados distintos, siendo varias las circunstancias que pueden hacer que el mismo estado cambie:

  • Nuevo (new).
  • En marcha (running). En marcha. El proceso está en la CPU. En una computadora monoprocesador, un proceso puede estar en este estado.
  • Preparado para ejecutar (ready). Aunque el proceso está en condiciones de ejecutarse, debe esperar un turno de CPU.
  • Bloqueado o en espera (waiting). También se dice que está suspendido o en espera cuando se espera que ocurra un evento, como la finalización de una operación de E/S.
  • También se dice que está suspendido o en espera.
  • Finalizado (terminated). Su ejecución ha terminado totalmente.

Para los procesos "listos" y "bloqueados", se puede establecer una cola de Listos y una cola de Bloqueados, para los procesos "bloqueados" son en listados y se ordenan en orden prioritario, mientras que, la cola de procesos se desbloqueará en el orden en que tienen lugar los eventos que están esperando, para que los bloqueados no causen desorden.

Un proceso equivalente se crea y coloca en la última parte de la cola de listos cuando un trabajo se admite en el sistema..

La CPU se asigna al proceso "Despacho", que es ejecutado por una entidad del Sistema Operativo llamada "Despachador".

El "Bloqueo" es la única transición de estado que inicia el proceso del usuario, ya que los demás son iniciados por entidades externas al proceso.

Toda la información sobre cada proceso, excepto la información de su propio espacio de direcciones, se almacenan en la tabla de procesos del sistema operativo, que es una lista o arreglo de estructuras, una para cada proceso que se encuentra en ese tiempo.

Por lo tanto, un proceso suspendido se compone de su espacio de direcciones, que generalmente se denomina imagen de núcleo recordando las memorias de núcleo magnético utilizadas anteriormente y su entrada en la tabla de procesos, que contiene sus registros, entre otras cosas.

El sistema de administración de procesos clave se ocupa de la creación y terminación de procesos. Consideraremos esto como un ejemplo ilustrativo. Un proceso conocido como shell o intérprete de comandos lee comandos de una terminal. El usuario ha terminado teclear un comando que requiera la compilación de un programa. Ahora, el shell debe crear un proceso nuevo para que el compilador lo ejecute. Cuando ese proceso complete la compilación, llamará al sistema para que se complete a sí mismo.

El sistema operativo envía una señal al proceso cuando pasa el tiempo predeterminado. La señal hace que el proceso detenga temporalmente su trabajo, guarde sus registros en la pila y comience a realizar un procedimiento especial de manejo de señales, como transmitir un mensaje que parece haberse perdido. El proceso en ejecución se reinicia en el estado anterior cuando el manejador de señales termina.