Algoritmos de programación de CPU en sistemas operativos

¿Qué es la programación de CPU?

La programación de la CPU es un proceso para determinar qué proceso tendrá la CPU para su ejecución mientras otro proceso está en espera. La tarea principal de la programación de la CPU es asegurarse de que siempre que la CPU permanezca inactiva, el sistema operativo al menos seleccione uno de los procesos disponibles en la cola lista para su ejecución. El proceso de selección lo llevará a cabo el programador de la CPU. Selecciona uno de los procesos en memoria que están listos para su ejecución.

En este tutorial de programación de CPU, aprenderá:

  • ¿Qué es la programación de CPU?
  • Tipos de programación de CPU
  • Terminologías importantes de programación de CPU
  • Criterios de programación de CPU
  • Temporizador de intervalo
  • ¿Qué es Dispatcher?
  • Tipos de algoritmo de programación de CPU
  • Se le sirve en orden de llegada
  • Tiempo restante más corto
  • Programación basada en prioridades
  • Programación Round-Robin
  • El trabajo más corto primero
  • Programación de colas de varios niveles
  • El propósito de un algoritmo de programación

Tipos de programación de CPU

Aquí hay dos tipos de métodos de programación:

Programación preventiva

En la programación preventiva, las tareas se asignan principalmente con sus prioridades. A veces es importante ejecutar una tarea con mayor prioridad antes que otra tarea de menor prioridad, incluso si la tarea de menor prioridad todavía se está ejecutando. La tarea de menor prioridad se mantiene durante algún tiempo y se reanuda cuando la tarea de mayor prioridad finaliza su ejecución.

Programación no preventiva

En este tipo de método de programación, la CPU se ha asignado a un proceso específico. El proceso que mantiene a la CPU ocupada liberará la CPU ya sea cambiando de contexto o terminando. Es el único método que se puede utilizar para varias plataformas de hardware. Eso es porque no necesita hardware especial (por ejemplo, un temporizador) como la programación preventiva.

¿Cuándo la programación es preventiva o no preventiva?

Para determinar si la programación es preventiva o no preventiva, considere estos cuatro parámetros:

  1. Un proceso pasa del estado de ejecución al estado de espera.
  2. El proceso específico cambia del estado en ejecución al estado listo.
  3. El proceso específico cambia del estado de espera al estado listo.
  4. El proceso terminó su ejecución y terminó.

Solo se aplican las condiciones 1 y 4, la programación se denomina no preferente.

Todas las demás programaciones son preventivas.

Terminologías importantes de programación de CPU

  • Tiempo de ráfaga / tiempo de ejecución: es un tiempo que requiere el proceso para completar la ejecución. También se llama tiempo de ejecución.
  • Hora de llegada: cuando un proceso entra en estado listo
  • Hora de finalización: cuando el proceso se completa y sale de un sistema
  • Multiprogramación: una serie de programas que pueden estar presentes en la memoria al mismo tiempo.
  • Jobs: Es un tipo de programa sin ningún tipo de interacción del usuario.
  • Usuario: Es una especie de programa que tiene interacción con el usuario.
  • Proceso: es la referencia que se utiliza tanto para el trabajo como para el usuario.
  • Ciclo de ráfagas de CPU / IO: caracteriza la ejecución del proceso, que alterna entre la CPU y la actividad de E / S. Los tiempos de CPU suelen ser más cortos que el tiempo de E / S.

Criterios de programación de CPU

Un algoritmo de programación de CPU intenta maximizar y minimizar lo siguiente:

Maximizar:

Utilización de la CPU: la utilización de la CPU es la tarea principal en la que el sistema operativo debe asegurarse de que la CPU permanezca lo más ocupada posible. Puede variar de 0 a 100 por ciento. Sin embargo, para el RTOS, puede oscilar entre el 40 por ciento para el sistema de bajo nivel y el 90 por ciento para el sistema de alto nivel.

Rendimiento: El número de procesos que finalizan su ejecución por unidad de tiempo se conoce como Rendimiento. Entonces, cuando la CPU está ocupada ejecutando el proceso, en ese momento, se está realizando el trabajo y el trabajo completado por unidad de tiempo se denomina Rendimiento.

Minimizar:

Tiempo de espera: el tiempo de espera es una cantidad que un proceso específico debe esperar en la cola de espera.

Tiempo de respuesta: Es la cantidad de tiempo en que se envió la solicitud hasta que se produce la primera respuesta.

Tiempo de respuesta: el tiempo de respuesta es una cantidad de tiempo para ejecutar un proceso específico. Es el cálculo del tiempo total de espera para ingresar a la memoria, esperar en la cola y ejecutar en la CPU. El período entre el tiempo de envío del proceso y el tiempo de finalización es el tiempo de respuesta.

Temporizador de intervalo

La interrupción del temporizador es un método que está estrechamente relacionado con la preferencia. Cuando un determinado proceso obtiene la asignación de CPU, se puede establecer un temporizador en un intervalo específico. Tanto la interrupción del temporizador como la preferencia obligan a un proceso a devolver la CPU antes de que se complete su ráfaga de CPU.

La mayor parte del sistema operativo multi-programado utiliza algún tipo de temporizador para evitar que un proceso inmovilice el sistema para siempre.

¿Qué es Dispatcher?

Es un módulo que proporciona control de la CPU al proceso. Dispatcher debe ser rápido para que pueda ejecutarse en todos los cambios de contexto. La latencia de envío es la cantidad de tiempo que necesita el programador de la CPU para detener un proceso e iniciar otro.

Funciones realizadas por Dispatcher:

  • Cambio de contexto
  • Cambiar al modo de usuario
  • Moverse a la ubicación correcta en el programa recién cargado.

Tipos de algoritmo de programación de CPU

Existen principalmente seis tipos de algoritmos de programación de procesos.

  1. Primero llegado, primero servido (FCFS)
  2. Programación de trabajo más corto primero (SJF)
  3. Tiempo restante más corto
  4. Programación prioritaria
  5. Programación Round Robin
  6. Programación de colas multinivel
Programación de algoritmos

Se le sirve en orden de llegada

El primero en llegar es el primer servicio es la forma completa de FCFS. Es el algoritmo de programación de CPU más sencillo y sencillo. En este tipo de algoritmo, el proceso que solicita la CPU obtiene primero la asignación de CPU. Este método de programación se puede administrar con una cola FIFO.

A medida que el proceso ingresa a la cola lista, su PCB (Bloque de control de proceso) se vincula con la cola de la cola. Entonces, cuando la CPU se libera, debe asignarse al proceso al comienzo de la cola.

Características del método FCFS:

  • Ofrece un algoritmo de programación preventivo y no preventivo.
  • Los trabajos siempre se ejecutan por orden de llegada.
  • Es fácil de implementar y usar.
  • Sin embargo, este método tiene un rendimiento deficiente y el tiempo de espera general es bastante alto.

Tiempo restante más corto

La forma completa de SRT es el tiempo restante más corto. También se conoce como programación preventiva SJF. En este método, el proceso se asignará a la tarea que esté más cerca de su finalización. Este método evita que un proceso de estado listo más nuevo mantenga la finalización de un proceso anterior.

Características del método de programación SRT:

  • Este método se aplica principalmente en entornos por lotes donde se requiere dar preferencia a trabajos cortos.
  • Este no es un método ideal para implementarlo en un sistema compartido donde se desconoce el tiempo de CPU requerido.
  • Asócielo con cada proceso como la duración de su siguiente ráfaga de CPU. Para que el sistema operativo utilice estas longitudes, lo que ayuda a programar el proceso en el menor tiempo posible.

Programación basada en prioridades

La programación de prioridades es un método de programar procesos en función de la prioridad. En este método, el planificador selecciona las tareas para trabajar según la prioridad.

La programación de prioridades también ayuda al sistema operativo a incluir asignaciones de prioridad. Los procesos con mayor prioridad deben llevarse a cabo en primer lugar, mientras que los trabajos con igual prioridad se llevan a cabo por turnos o FCFS. La prioridad se puede decidir en función de los requisitos de memoria, los requisitos de tiempo, etc.

Programación Round-Robin

Round robin es el algoritmo de programación más antiguo y simple. El nombre de este algoritmo proviene del principio de turnos, en el que cada persona obtiene una parte igual de algo a su vez. Se utiliza principalmente para programar algoritmos en multitarea. Este método de algoritmo ayuda a la ejecución libre de inanición de procesos.

Características de la programación Round-Robin

  • Round robin es un modelo híbrido que funciona con reloj
  • El intervalo de tiempo debe ser mínimo, que se asigna para que se procese una tarea específica. Sin embargo, puede variar para diferentes procesos.
  • Es un sistema en tiempo real que responde al evento dentro de un límite de tiempo específico.

El trabajo más corto primero

SJF es una forma completa de (El trabajo más corto primero) es un algoritmo de programación en el que el proceso con el tiempo de ejecución más corto debe seleccionarse para ejecutarse a continuación. Este método de programación puede ser preventivo o no preventivo. Reduce significativamente el tiempo medio de espera para otros procesos en espera de ejecución.

Características de la programación SJF

  • Está asociado con cada trabajo como una unidad de tiempo para completar.
  • En este método, cuando la CPU está disponible, se ejecutará primero el siguiente proceso o trabajo con el tiempo de finalización más corto.
  • Se implementa con política no preventiva.
  • Este método de algoritmo es útil para el procesamiento por lotes, donde esperar a que se completen los trabajos no es fundamental.
  • Mejora la producción de trabajos al ofrecer trabajos más cortos, que deben ejecutarse primero, que en su mayoría tienen un tiempo de respuesta más corto.

Programación de colas de varios niveles

Este algoritmo separa la cola lista en varias colas separadas. En este método, los procesos se asignan a una cola en función de una propiedad específica del proceso, como la prioridad del proceso, el tamaño de la memoria, etc.

Sin embargo, este no es un algoritmo de sistema operativo de programación independiente, ya que necesita usar otros tipos de algoritmos para programar los trabajos.

Característica de la programación de colas de varios niveles:

  • Se deben mantener múltiples colas para procesos con algunas características.
  • Cada cola puede tener sus algoritmos de programación separados.
  • Se dan prioridades para cada cola.

El propósito de un algoritmo de programación

Estas son las razones para usar un algoritmo de programación:

  • La CPU utiliza la programación para mejorar su eficiencia.
  • Le ayuda a asignar recursos entre procesos en competencia.
  • La máxima utilización de la CPU se puede obtener con la multiprogramación.
  • Los procesos que se van a ejecutar están en lista de espera.

Resumen:

  • La programación de la CPU es un proceso para determinar qué proceso poseerá la CPU para su ejecución mientras otro proceso está en espera.
  • En la programación preventiva, las tareas se asignan principalmente con sus prioridades.
  • En el método de programación no preferente, la CPU se ha asignado a un proceso específico.
  • El tiempo de ráfaga es el tiempo necesario para que el proceso complete la ejecución. También se llama tiempo de ejecución.
  • La utilización de la CPU es la tarea principal en la que el sistema operativo debe asegurarse de que la CPU permanezca lo más ocupada posible.
  • El número de procesos que finalizan su ejecución por unidad de tiempo se conoce como Rendimiento.
  • El tiempo de espera es una cantidad que un proceso específico necesita esperar en la cola de espera.
  • Es la cantidad de tiempo en que se envió la solicitud hasta que se produce la primera respuesta.
  • El tiempo de respuesta es una cantidad de tiempo para ejecutar un proceso específico.
  • La interrupción del temporizador es un método que está estrechamente relacionado con la preferencia,
  • Un despachador es un módulo que proporciona control de la CPU al proceso.
  • Seis tipos de algoritmos de programación de procesos son:
  • Primero llegado, primero servido (FCFS), 2) Programación del trabajo más corto, primero (SJF) 3) Tiempo restante más corto 4) Programación de prioridades 5) Programación por turnos 6) Programación de colas de múltiples niveles
  • En el método First Come First Serve, el proceso que solicita la CPU obtiene la asignación de CPU primero.
  • En el menor tiempo restante, el proceso se asignará a la tarea que esté más cerca de su finalización.
  • En Programación de prioridades, el programador selecciona las tareas para trabajar según la prioridad.
  • En, esta programación de Round robin funciona en principio, donde cada persona obtiene una parte igual de algo a su vez
  • En el trabajo más corto, primero se debe seleccionar el tiempo de ejecución más corto para su ejecución a continuación.
  • En la programación multinivel, el método separa la cola lista en varias colas separadas. En este método, los procesos se asignan a una cola en función de una propiedad específica
  • La CPU utiliza la programación para mejorar su eficiencia.

Articulos interesantes...