Saltar al contenido

Algoritmo de programación de CPU en sistemas operativos

¿Qué es la programación de CPU?

Programación de CPU es un proceso para determinar qué proceso tendrá una CPU para completar mientras se suspende otro proceso. La tarea principal de la programación de la CPU es garantizar que, siempre que la CPU permanezca inactiva, el sistema operativo seleccione uno de los procesos disponibles en la cola listo para su ejecución. El proceso de selección lo realizará el programador de la CPU. Selecciona uno de los procesos en memoria que está listo para completarse.

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

Tipos de programación de CPU

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

Programación preventiva

En la programación preventiva, sus prioridades se asignan principalmente a las tareas. 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 está en curso. La tarea de menor prioridad se mantiene durante un tiempo y se reanuda cuando se completa la tarea de mayor prioridad.

Programación no preventiva

En este tipo de método de programación, la CPU se asignó a un proceso específico. El proceso que mantiene la CPU ocupada liberará la CPU cambiando o terminando el contexto. Es el único método que se puede utilizar para diferentes plataformas de hardware. Eso es porque no requiere hardware especial (un temporizador, por ejemplo) 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 cambia del estado de ejecución al estado de espera.
  2. Los procesos específicos cambian del estado actual al estado listo.
  3. Los procesos específicos cambian del estado de espera al estado listo.
  4. Proceso de ejecución completado y terminado.

Solo se aplican las condiciones 1 y 4, la programación se da sin derecho a preferencia.

Todas las demás programaciones son preventivas.

Terminología importante de programación de CPU

Criterios de programación de CPU

El algoritmo de programación de la CPU busca optimizar y minimizar lo siguiente:

Maximizar:

Uso de CPU: El uso de la CPU es la tarea principal en la que el sistema operativo debe garantizar que la CPU permanezca lo más ocupada posible. Puede estar entre 0 y 100 por ciento. Para el RTOS, sin embargo, puede oscilar entre el 40% para el sistema de nivel bajo y el 90% para el sistema de nivel alto.

Rendimiento: El número de procesos que completan su finalización por unidad de tiempo se denomina rendimiento. Entonces, cuando la CPU está ocupada completando el proceso, en ese momento, se está realizando el trabajo y el trabajo realizado por unidad de tiempo se denomina Rendimiento.

Minimizar:

Tiempo de espera: El tiempo de espera es lo que un proceso específico debe permanecer listo en la cola.

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

Giro de vuelta: El tiempo de respuesta es una cantidad de tiempo para completar un proceso en particular. Implica calcular el tiempo total de espera para ingresar a la memoria, esperar en la cola y operar en la CPU. El período de respuesta es el período entre el momento en que se envía el proceso y el momento en que se completa.

Temporizador de intervalo

La interrupción del temporizador es un método que está estrechamente relacionado con la preferencia. Cuando un proceso en particular recibe la asignación de CPU, se puede establecer un temporizador en un intervalo específico. Tanto la interrupción del temporizador como la preferencia desencadenan un proceso para restaurar la CPU antes de que se complete su explosión de CPU.

La mayoría de los sistemas operativos multiprocesador utilizan algún tipo de temporizador para evitar que un proceso se conecte al sistema para siempre.

¿Qué es un despachador?

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

Funciones realizadas por Dispatcher:

Tipos de algoritmo de programación de CPU

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

  1. Asista por orden de llegada (FCFS)
  2. Programación más corta del primer trabajo (SJF)
  3. El tiempo restante más corto
  4. Programación prioritaria
  5. Programación Robin Round
  6. Programación de colas multinivel

Algoritmos de programación

Conoce primero

El primero en llegar es el primero en ser servido es la forma completa de FCFS. Es el algoritmo de programación de CPU más fácil y simple. En este tipo de algoritmo, el proceso que solicita la CPU primero obtiene 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 sin problemas, su PCB (Bloque de control de proceso) se conecta a la cola de la cola. Entonces, cuando una CPU está libre, debe asignarse al proceso al comienzo de la cola.

Características del método FCFS:

El tiempo restante más corto

El tiempo más corto que queda es el formulario SRT completo. También se denomina programación preventiva SJF. En este método, el proceso se asigna a la tarea más cercana a su finalización. Este método evita que un proceso de estado suave más nuevo termine un proceso anterior.

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

Programación basada en prioridades

La programación de prioridades es un método de programación de procesos en función de la prioridad. En este modo, el planificador selecciona las tareas que se ejecutarán según la prioridad.

La programación de prioridades ayuda al sistema operativo a incluir tareas prioritarias. Los procesos de mayor prioridad deben completarse primero, pero los trabajos con prioridades iguales se realizan sobre la base de un robin preciso o FCFS. La prioridad se puede determinar en función de los requisitos de memoria, los requisitos de tiempo, etc.

Programación Round-Robin

El robin exacto es el algoritmo de programación más antiguo y simple. El nombre de este algoritmo proviene del principio round robin, donde todos, a su vez, obtienen una parte igual de algo. Se utiliza principalmente para programar algoritmos en multitarea. Este método de algoritmo ayuda a completar procesos sin hambre.

Características de programación de round-robin

Las publicaciones más cortas primero

SJF es una forma completa de algoritmo de programación (es el trabajo más corto primero) en el que se debe seleccionar el proceso con el tiempo de ejecución más corto para su ejecución posterior. Este método de programación puede ser preventivo o no preventivo. Reduce en gran medida el tiempo medio de espera para otros procesos que esperan su finalización.

Características de programación de SJF

Programación de colas de varios niveles

Este algoritmo divide 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 programación de sistema operativo independiente porque tiene que usar otros tipos de algoritmos para programar los trabajos.

Características de programación de colas de varios niveles:

Propósito del algoritmo de programación

Estas son las razones para utilizar algoritmos de programación:

Resumen: