Programación de procesos en SO: programador a largo, mediano y corto plazo

⚡ Resumen inteligente

La planificación de procesos es una tarea del sistema operativo que gestiona los procesos en sus estados de listo, en espera y en ejecución. Asigna tiempo de CPU a cada proceso, mantiene la CPU ocupada y reduce el tiempo de respuesta mediante planificadores a largo, medio y corto plazo.

  • Definición: La planificación de procesos gestiona los procesos en estados de listo, en espera y en ejecución para mantener ocupada la CPU.
  • 📥 Colas Las colas de trabajos, de procesos listos y de dispositivos organizan los procesos según su estado de ejecución.
  • 🔀 Modelo de dos estados: En su nivel más básico, un proceso está en ejecución o no lo está.
  • 🇧🇷 Tres planificadores: Los planificadores a largo, medio y corto plazo controlan qué procesos se ejecutan y cuándo.
  • Término corto: El planificador de la CPU es el más rápido, ya que selecciona un proceso listo para su ejecución inmediata.
  • 🔁 Cambio de contexto: Guardar y restaurar el estado de la CPU en la placa de circuito impreso permite la multitarea.

Planificación de procesos en el sistema operativo

¿Qué es la programación de procesos?

Programación de procesos Es una tarea del sistema operativo que programa procesos en diferentes estados, como listo, en espera y en ejecución.

La planificación de procesos permite al sistema operativo asignar un intervalo de tiempo de ejecución de la CPU a cada proceso. Otra razón importante para utilizar un sistema de planificación de procesos es que mantiene la CPU ocupada constantemente. Esto permite obtener el mínimo tiempo de respuesta para los programas.

Colas de programación de procesos

Las colas de planificación de procesos permiten mantener una cola independiente para cada estado y PCB de proceso. Todos los procesos con el mismo estado de ejecución se colocan en la misma cola. Por lo tanto, cuando se modifica el estado de un proceso, su PCB debe desvincularse de la cola existente y trasladarse a la cola del nuevo estado.

Tres tipos de colas del sistema operativo son:

  1. Cola de trabajos – Le ayuda a almacenar todos los procesos en el sistema.
  2. Cola lista – Este tipo de cola le ayuda a configurar cada proceso que reside en la memoria principal, que está listo y esperando para ejecutarse.
  3. Colas de dispositivos – Es un proceso que está bloqueado por la ausencia de un dispositivo de E/S.
Colas de programación de procesos
Colas de programación de procesos

En el diagrama anterior:

  • Un rectángulo representa una cola.
  • Un círculo representa el recurso.
  • Una flecha indica el flujo del proceso.
  1. Cada nuevo proceso se coloca primero en la cola de procesos listos. Permanece en la cola de procesos listos hasta que finalmente se procesa para su ejecución. En este caso, el nuevo proceso se coloca en la cola de procesos listos y espera hasta que se selecciona para su ejecución o se envía.
  2. Uno de los procesos tiene asignada la CPU y se está ejecutando.
  3. El proceso debería emitir una solicitud de E/S.
  4. Luego, debe colocarse en la cola de E/S.
  5. El proceso debería crear un nuevo subproceso.
  6. El proceso debe estar a la espera de su terminación.
  7. Debe eliminarse de la CPU de forma forzosa, como resultado de una interrupción. Una vez completada la interrupción, debe devolverse a la cola de procesos listos.

Modelo de proceso de dos estados

Los modelos de proceso de dos estados son:

  • Estado de ejecución
  • Estado sin ejecución

Correr

En la sección Operasistema de ting, cada vez que se crea un nuevo proceso, se ingresa en el sistema, que debería estar ejecutándose.

No corras

Los procesos que no se están ejecutando se mantienen en una cola, a la espera de su turno para ejecutarse. Cada entrada en la cola apunta a un proceso específico.

Objetivos de programación

Estos son los objetivos importantes de la planificación de procesos:

  • Maximizar el número de usuarios interactivos dentro de tiempos de respuesta aceptables.
  • Lograr un equilibrio entre respuesta y utilización.
  • Evite aplazamientos indefinidos y haga cumplir las prioridades.
  • También debe hacer referencia a los procesos que contienen los recursos clave.

Tipo de programadores de procesos

Un programador es un tipo de software de sistema que le permite manejar la programación de procesos.

Existen principalmente tres tipos de Programadores de Procesos:

  1. Programador a largo plazo
  2. Programador a corto plazo
  3. Programador a mediano plazo

Programador a largo plazo

El planificador a largo plazo también se conoce como un programador de trabajosEste planificador regula el programa, selecciona procesos de la cola y los carga en la memoria para su ejecución. También regula el grado de multiprogramación.

Sin embargo, el objetivo principal de este tipo de planificador es ofrecer una combinación equilibrada de tareas, como tareas de procesador y de E/S, que permita gestionar la multiprogramación.

Programador a mediano plazo

La programación a mediano plazo es una parte importante de intercambiopingPermite gestionar los procesos intercambiados. En este planificador, un proceso en ejecución puede quedar suspendido, lo que genera una solicitud de E/S.

Un proceso en ejecución puede quedar suspendido si realiza una solicitud de entrada/salida. Un proceso suspendido no puede avanzar hacia su finalización. Para eliminar el proceso de la memoria y liberar espacio para otros procesos, el proceso suspendido debe trasladarse al almacenamiento secundario.

Programador a corto plazo

La programación a corto plazo también se conoce como la Programador de CPUEl objetivo principal de este planificador es optimizar el rendimiento del sistema según criterios preestablecidos. Esto permite seleccionar entre un grupo de procesos listos para ejecutarse y asignar la CPU a uno de ellos. El despachador cede el control de la CPU al proceso seleccionado por el planificador a corto plazo.

Diferencia entre programadores

Largo plazo vs. corto plazo vs. mediano plazo:

A Largo Plazo Término corto Término medio
A largo plazo también se le conoce como planificador de tareas. A corto plazo también se le conoce como planificador de CPU. A medio plazo también se le llama swap.ping planificador.
Está ausente o es mínimo en un sistema de tiempo compartido. Es insignificante en el orden de tiempo compartido. Este programador es un elemento de los sistemas de tiempo compartido.
La velocidad es menor en comparación con el programador a corto plazo. La velocidad es la más rápida en comparación con el planificador de corto y mediano plazo. Ofrece velocidad media.
Permite seleccionar procesos de la carga y devolverlos a la memoria. Solo selecciona los procesos que se encuentran en estado de ejecución listo. Te ayuda a enviar el proceso de vuelta a la memoria.
Ofrece control total. Ofrece menos control. Reduce el nivel de multiprogramación.

¿Qué es el cambio de contexto?

Es un método para almacenar y restaurar el estado de la CPU en la placa de circuito impreso (PCB), de modo que la ejecución del proceso pueda reanudarse desde el mismo punto posteriormente. El método de cambio de contexto es importante para un sistema operativo multitarea.

Preguntas Frecuentes

Un planificador decide qué proceso debe ejecutarse a continuación en función de una política. Un despachador es el módulo que realmente otorga al proceso elegido el control de la CPU, realizando el cambio de contexto y el salto.ping a la ubicación correcta en el programa.

El grado de multiprogramación es el número de procesos que se mantienen en la memoria principal simultáneamente. El planificador a largo plazo lo controla decidiendo cuántos procesos admitir, equilibrando el uso de la CPU y las operaciones de entrada/salida para lograr un rendimiento eficiente del sistema.

Un bloque de control de procesos es una estructura de datos que el sistema operativo utiliza para almacenar toda la información sobre un proceso, como su estado, contador de programa, registros y límites de memoria. Es fundamental para guardar y restaurar procesos durante un cambio de contexto.

La IA puede aprender patrones de carga de trabajo para decidir qué proceso ejecutar y cómo asignar el tiempo de CPU. En lugar de reglas fijas, adapta la planificación en tiempo real, mejorando el rendimiento, el tiempo de respuesta y la eficiencia energética, especialmente en la nube y en sistemas multinúcleo.

Sí. Al analizar los picos de uso de CPU y los patrones de E/S anteriores, los modelos de IA pueden estimar cuánto tiempo se ejecutará un proceso y si este depende en gran medida de la CPU o de las E/S. Estas predicciones ayudan al planificador a priorizar los procesos y reducir el tiempo de espera.

Resumir este post con: