Programación de CPU Algorithms in OperaSistemas de montaje
⚡ Resumen inteligente
La planificación de la CPU determina qué proceso listo ejecuta el sistema operativo a continuación,ping el procesador está ocupado y mejora el rendimiento mediante algoritmos como Primero en Llegar, Primero en Servir, Trabajo Más Corto Primero, Prioridad y Round Robin.
¿Qué es la programación de CPU?
Programación de CPU Es un proceso que determina qué proceso utilizará la CPU para su ejecución mientras otro proceso está en espera. La tarea principal de la planificación de la CPU es asegurar que, siempre que la CPU permanezca inactiva, el sistema operativo seleccione al menos uno de los procesos disponibles en la cola de listos para su ejecución. El planificador de la CPU realiza este proceso, el cual selecciona uno de los procesos en memoria que están listos para ejecutarse.
Tipos de programación de CPU
Aquí hay dos tipos de métodos de programación:
Programación preventiva
En la planificación con desalojo, las tareas se asignan principalmente según su prioridad. A veces es importante ejecutar una tarea de mayor prioridad antes que otra de menor prioridad, incluso si esta última aún se está ejecutando. La tarea de menor prioridad se detiene temporalmente y se reanuda cuando la de mayor prioridad finaliza su ejecución.
Programación no preventiva
En este método de planificación, la CPU se asigna a un proceso específico. El proceso que mantiene ocupada la CPU la libera cambiando de contexto o finalizando. Es el único método que se puede usar en diversas plataformas de hardware, ya que no requiere hardware especial (por ejemplo, un temporizador) como la planificación con desalojo.
¿Cuándo la planificación es preventiva o no preventiva?
Para determinar si la planificación es preventiva o no preventiva, considere estos cuatro parámetros:
- Un proceso cambia del estado de ejecución al de espera.
- Un proceso específico cambia del estado de ejecución al estado de preparación.
- Un proceso específico pasa del estado de espera al estado de listo.
- Un proceso finaliza su ejecución y termina.
Si solo se cumplen las condiciones 1 y 4, la planificación se denomina no preferente. Todas las demás situaciones de planificación son preferentes.
Terminología importante de la planificación de la CPU
- Tiempo de ráfaga/tiempo de ejecución: El tiempo que tarda un proceso en completar su ejecución. También se denomina tiempo de ejecución.
- Hora de llegada: El momento en que un proceso entra en el estado de listo.
- Tiempo de finalización: El momento en que un proceso finaliza y sale del sistema.
- Multiprogramación: Varios programas pueden estar presentes en la memoria al mismo tiempo.
- Trabajos: Un tipo de programa sin ningún tipo de interacción con el usuario.
- Usuario: Un tipo de programa que requiere interacción con el usuario.
- Proceso: La referencia que se utiliza tanto para un trabajo como para un usuario.
- Ciclo de ráfaga de CPU/IO: Describe la ejecución de procesos, que alterna entre la actividad de la CPU y la de entrada/salida. Los tiempos de CPU suelen ser más cortos que los de entrada/salida.
Criterios de programación de CPU
Un algoritmo de programación de CPU intenta maximizar y minimizar lo siguiente:
Maximice
Utilización de CPU: La utilización de la CPU es la tarea principal del sistema operativo para garantizar que la CPU se mantenga lo más ocupada posible. Puede variar entre el 0 y el 100 por ciento. Sin embargo, en un sistema operativo en tiempo real (RTOS), puede oscilar entre el 40 por ciento para un sistema de bajo nivel y el 90 por ciento para un sistema de alto nivel.
rendimiento: El número de procesos que finalizan su ejecución por unidad de tiempo se conoce como rendimiento. Por lo tanto, cuando la CPU está ocupada ejecutando un proceso, se está realizando trabajo, y el trabajo completado por unidad de tiempo se denomina rendimiento.
Minimizar
Tiempo de espera: El tiempo de espera es la cantidad de tiempo que un proceso específico debe esperar en la cola de procesos listos.
Tiempo de respuesta: Es el tiempo que transcurre desde que se envía la solicitud hasta que se recibe la primera respuesta.
Tiempo de respuesta: El tiempo de respuesta es el tiempo que tarda en ejecutarse un proceso específico. Incluye el tiempo total de espera para acceder a la memoria, el tiempo de espera en la cola y el tiempo de ejecución en la CPU. El tiempo de respuesta es el periodo comprendido entre el momento en que se envía el proceso y el momento en que finaliza.
Temporizador de intervalo
La interrupción del temporizador es un método estrechamente relacionado con la preferencia. Cuando un determinado proceso obtiene la asignación de CPU, se puede configurar 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ía de los sistemas operativos multiprogramados utilizan algún tipo de temporizador para evitar que un proceso bloquee el sistema indefinidamente.
¿Qué es el despachador?
El despachador es un módulo que proporciona el control de la CPU al proceso. El despachador debe ser rápido para poder ejecutarse en cada cambio de contexto. La latencia de despacho es el tiempo que necesita el planificador de la CPU para detener un proceso e iniciar otro.
Funciones realizadas por el despachador:
- Cambio de contexto.
- Cambiando al modo de usuario.
- Moviéndose a la ubicación correcta en el programa recién cargado.
Tipos de programación de CPU Algorithms
Existen principalmente seis tipos de algoritmos de programación de procesos:
- Primero en llegar, primero en servir (FCFS)
- Programación de trabajo más corto primero (SJF)
- Tiempo restante más corto
- Programación prioritaria
- Programación Round Robin
- Programación de colas multinivel
Programación Algorithms
Se le sirve en orden de llegada
FCFS significa Se le sirve en orden de llegadaEs el algoritmo de planificación de CPU más sencillo. En este tipo de algoritmo, el proceso que solicita la CPU la obtiene primero. Este método de planificación se puede gestionar con una cola FIFO.
Cuando un proceso entra en la cola de procesos listos, su PCB (Bloque de Control de Proceso) se enlaza con el final de la cola. Por lo tanto, cuando la CPU queda libre, debe asignarse al proceso que se encuentra al principio de la cola.
Características del método FCFS
- Es un algoritmo de planificación no preferente.
- Los trabajos siempre se ejecutan por orden de llegada.
- Es fácil de implementar y utilizar.
- Sin embargo, este método tiene un rendimiento deficiente y el tiempo de espera general es bastante alto.
Tiempo restante más corto
Las siglas SRT significan Tiempo Restante Más Corto. También se conoce como planificación preventiva SJF. En este método, el proceso se asigna a la tarea más próxima a su finalización. Esto evita que un proceso nuevo y listo para completarse retrase la finalización de un proceso anterior.
Características del método de programación SRT
- Este método se aplica principalmente en entornos de procesamiento por lotes donde es necesario dar preferencia a los trabajos cortos.
- Este no es un método ideal para implementar en un sistema compartido donde se desconoce el tiempo de CPU requerido.
- Cada proceso está asociado con la duración de su siguiente ráfaga de CPU, por lo que el sistema operativo utiliza estas duraciones para programar el proceso en el menor tiempo posible.
Programación basada en prioridades
Programación prioritaria Es un método de planificación de procesos basado en la prioridad. En este método, el planificador selecciona las tareas en las que trabajar según su prioridad.
La planificación por prioridades también ayuda al sistema operativo a asignar prioridades. Los procesos con mayor prioridad se ejecutan primero, mientras que las tareas con la misma prioridad se ejecutan de forma rotativa o según el principio FCFS (primero en entrar, primero en salir). La prioridad se puede determinar en función de los requisitos de memoria, los requisitos de tiempo y otros factores.
Programación por turnos
todos contra todos Es uno de los algoritmos de planificación más antiguos y sencillos. Su nombre proviene del principio de round-robin, donde cada proceso recibe una parte igual por turno. Se utiliza principalmente para la planificación en sistemas multitarea. Este método ayuda a lograr una ejecución de procesos sin inanición.
Características de la programación por turnos
- El sistema round robin es un modelo híbrido que funciona mediante reloj.
- El intervalo de tiempo asignado para el procesamiento de una tarea específica debe ser mínimo. Sin embargo, puede variar según el proceso.
- Se comporta como un sistema de tiempo compartido que responde a cada proceso dentro de un límite de tiempo específico.
Trabajo más corto primero
SJF (Shortest Job First) es un algoritmo de planificación que selecciona el proceso con el menor tiempo de ejecución para su siguiente ejecución. Este método puede ser preventivo o no preventivo. Reduce significativamente el tiempo de espera promedio de los demás procesos que aguardan su ejecución.
Características de la programación SJF
- Cada tarea está asociada a una unidad de tiempo para su finalización.
- En este método, cuando la CPU está disponible, se ejecuta primero el siguiente proceso o tarea con el menor tiempo de finalización.
- Se implementa con una política no preventiva.
- Este algoritmo resulta útil para el procesamiento por lotes, donde no es fundamental esperar a que finalicen las tareas.
- Mejora la productividad al ejecutar primero las tareas más cortas, que generalmente tienen un tiempo de respuesta menor.
Programación de colas de múltiples niveles
Este algoritmo divide la cola de procesos listos 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, el tamaño de la memoria, etc.
Sin embargo, este no es un algoritmo de planificación independiente, ya que necesita utilizar otros tipos de algoritmos para planificar las tareas.
Características de la planificación de colas multinivel
- Se deben mantener varias colas para los procesos con características compartidas.
- Cada cola puede tener su propio algoritmo de planificación independiente.
- Se asignan prioridades a cada cola.
El propósito de un algoritmo de planificación
Estas son las razones para utilizar un algoritmo de programación:
- La CPU utiliza la programación para mejorar su eficiencia.
- Te ayuda a asignar recursos entre procesos que compiten entre sí.
- La máxima utilización de la CPU se puede obtener mediante la multiprogramación.
- Los procesos que deben ejecutarse se mantienen en la cola de procesos listos.




