¿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:
- Un proceso cambia del estado de ejecución al estado de espera.
- Los procesos específicos cambian del estado actual al estado listo.
- Los procesos específicos cambian del estado de espera al estado listo.
- 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
- Tiempo de ráfaga / tiempo de ejecución: Es un período que requiere que el proceso complete la ejecución. También se le llama tiempo presente.
- Hora de llegada: cuando un proceso entra en un estado fluido
- Tiempo de finalización: cuando el proceso está completo y fuera del sistema
- Programación múltiple: Varios programas pueden estar presentes al mismo tiempo.
- Correo: Es un tipo de programa sin interacción del usuario de ningún tipo.
- Usuario: Es un tipo de programa que tiene interacción con el usuario.
- Proceso: Es la referencia utilizada tanto para la publicación como para el usuario.
- Ciclo de ráfaga CPU / OJ: Se caracteriza por la ejecución del proceso, que varía 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
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:
- Cambio de contexto
- Cambiar al modo de usuario
- Moverse al lugar correcto 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.
- Asista por orden de llegada (FCFS)
- Programación más corta del primer trabajo (SJF)
- El tiempo restante más corto
- Programación prioritaria
- Programación Robin Round
- Programación de colas multinivel
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:
- Ofrece un algoritmo de programación preventivo y no preventivo.
- Los trabajos siempre se realizan por orden de llegada.
- Es fácil de implementar y usar.
- Sin embargo, este método tiene un rendimiento débil y el tiempo de espera general es bastante alto.
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:
- Este método se aplica principalmente en entornos por lotes donde se requiere priorizar los trabajos cortos.
- Este no es un método ideal para implementar en un sistema compartido donde no se conoce el tiempo de CPU requerido.
- Asóciese con cada proceso a medida que su próxima CPU explote. Entonces, el sistema operativo usa esas distancias, 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 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
- El round robin impulsado por reloj es un modelo híbrido
- Debe haber al menos una porción de tiempo asignada para procesar 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.
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
- Se relaciona con cada trabajo como una unidad de tiempo para completar.
- En este modo, 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 una política no preventiva.
- Este método de algoritmo es útil para el procesamiento por lotes, cuando no es fundamental esperar a que finalicen los trabajos.
- Mejora la producción de trabajos al ofrecer trabajos más cortos, que deben completarse primero, que en su mayoría tienen un tiempo de respuesta más corto.
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:
- Se deben reservar numerosas colas para procesos que tienen varias características.
- Cada cola puede tener sus algoritmos de programación separados.
- A cada cola se le asignan prioridades.
Propósito del algoritmo de programación
Estas son las razones para utilizar algoritmos de programación:
- La CPU utiliza la programación para mejorar su eficiencia.
- Le ayuda a asignar recursos a procesos competitivos.
- El uso máximo de la CPU se puede lograr con la programación múltiple.
- Los procesos a realizar en cola están listos.
Resumen:
- La programación de la CPU es un proceso para determinar a qué proceso pertenece la CPU para su ejecución y otro proceso de suspensión.
- En la programación preventiva, sus prioridades se asignan principalmente a las tareas.
- En el modo de programación no preventiva, la CPU se asignó a un proceso específico.
- El tiempo de ráfaga es el tiempo necesario para completar el proceso. También se le llama tiempo presente.
- 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.
- El número de procesos que completan su finalización por unidad de tiempo se denomina rendimiento.
- El tiempo de espera es lo que un proceso específico debe permanecer listo en la cola.
- Es la cantidad de tiempo en que se presentó la solicitud hasta que se produce la primera respuesta.
- El tiempo de respuesta es una cantidad de tiempo para completar un proceso en particular.
- El temporizador de interrupción es un método que está estrechamente relacionado con la preferencia,
- Un remitente es un módulo que proporciona control de la CPU para el proceso.
- Hay seis tipos de algoritmos de programación de procesos:
- Primera asistencia pasada (FCFS), 2) Programación más corta 3 para el trabajo más temprano (SJF) 3) Tiempo restante más corto 4) Programación de prioridades 5) Programación de Robin Round 6) Programación de cola de varios años
- En el modo First Come First Serve, el proceso que solicita la CPU primero obtiene la asignación de CPU.
- En el menor tiempo restante, el proceso se asignará a la tarea, la más cercana a su finalización.
- En Programación prioritaria, el programador selecciona las tareas que se ejecutarán de acuerdo con la prioridad.
- En, esta programación de Round robin funciona según un principio, en el que todos, a su vez, obtienen una parte igual de algo
- En la posición más corta, primero se debe seleccionar el tiempo de ejecución más corto para la próxima ejecución.
- En la programación multinivel, el método 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
- La CPU utiliza la programación para mejorar su eficiencia.