Programación de CPU en sistemas operativos – Part 2

La programación de procesos/trabajo se realiza para terminar el trabajo a tiempo. La programación de la CPU es un proceso que permite que un proceso use la CPU mientras que otro proceso se retrasa (en espera) debido a la falta de disponibilidad de recursos como E/S, etc., haciendo así un uso completo de la CPU. El propósito de la programación de la CPU es hacer que el sistema sea más eficiente, más rápido y más justo.

Tutorial on CPU Scheduling Algorithms in Operating System

Tutorial sobre algoritmos de programación de CPU en el sistema operativo

Cada vez que la CPU queda inactiva, el sistema operativo debe seleccionar uno de los procesos en la línea listo para iniciar. El proceso de selección lo realiza un planificador temporal (CPU). El Programador selecciona entre los procesos de memoria listos para ejecutarse y asigna la CPU a uno de ellos.

Tabla de contenido

   

¿Qué es un proceso?

En informática, un proceso es la instancia de un programa informático que está siendo ejecutado por uno o varios subprocesos . Contiene el código del programa y su actividad. Según el sistema operativo (SO), un proceso puede estar formado por varios subprocesos de ejecución que ejecutan instrucciones al mismo tiempo.

¿Cómo se usa la memoria de proceso para una operación eficiente?

La memoria de proceso se divide en cuatro secciones para un funcionamiento eficiente:

  • La categoría de texto se compone de código de programa integrado, que se lee desde el almacenamiento fijo cuando se inicia el programa.
  • La clase de datos se compone de variables globales y estáticas, distribuidas y ejecutadas antes de la acción principal.
  • Heap se utiliza para la asignación de memoria flexible o dinámica y se administra mediante llamadas a new, delete, malloc, free, etc.
  • La pila se utiliza para variables locales. El espacio en la pila se reserva para las variables locales cuando se anuncia.

Para saber más, puede consultar nuestro artículo detallado sobre Estados de un proceso en el sistema operativo .

¿Qué es la programación de procesos?

La programación de procesos es el proceso en el que el administrador de procesos maneja la eliminación de un proceso activo de la CPU y selecciona otro proceso en función de una estrategia específica.

La programación de procesos es una parte integral de las aplicaciones de programación múltiple. Dichos sistemas operativos permiten cargar más de un proceso en la memoria utilizable a la vez y el proceso de CPU compartido cargado usa tiempo de repetición.

Hay tres tipos de planificadores de procesos :

  • Programador de trabajo o a largo plazo
  • Programador a corto plazo o CPU 
  • Programador a mediano plazo

¿Por qué necesitamos programar procesos?

  • La programación es importante en muchos entornos informáticos diferentes. Una de las áreas más importantes es programar qué programas funcionarán en la CPU. Esta tarea es manejada por el Sistema Operativo (SO) de la computadora y hay muchas maneras diferentes en las que podemos elegir para configurar los programas.
  • La programación de procesos permite que el sistema operativo asigne tiempo de CPU para cada proceso. Otra razón importante para usar un sistema de programación de procesos es que mantiene la CPU ocupada en todo momento. Esto le permite obtener menos tiempo de respuesta para los programas. 
  • Teniendo en cuenta que puede haber cientos de programas que necesitan funcionar, el sistema operativo debe iniciar el programa, detenerlo, cambiar a otro programa, etc. La forma en que el sistema operativo configura el sistema para ejecutar otro en la CPU se denomina » cambio de contexto «. Si el sistema operativo mantiene los programas de cambio de contexto dentro y fuera de las CPU proporcionadas, puede darle al usuario una idea engañosa de que puede ejecutar cualquier programa que quiera ejecutar, todo a la vez.
  • Entonces, ahora que sabemos que podemos ejecutar 1 programa en una CPU determinada, y sabemos que podemos cambiar el sistema operativo y eliminar otro usando el cambio de contexto, ¿cómo elegimos qué programas necesitamos? ejecutar, y con qué programa?
  • ¡Ahí es donde entra la programación ! Primero, determinas las métricas, diciendo algo como “la cantidad de tiempo hasta el final”. Definiremos esta métrica como “el intervalo de tiempo entre el que una función entra en el sistema hasta que se completa”. En segundo lugar, decide una métrica que reduce las métricas. Queremos que nuestras tareas terminen lo antes posible.

¿Cuál es la necesidad de un algoritmo de programación de CPU?

La programación de la CPU es el proceso de decidir qué proceso poseerá la CPU para usar mientras otro proceso está suspendido. La función principal de la programación de la CPU es garantizar que siempre que la CPU permanezca inactiva, el sistema operativo haya seleccionado al menos uno de los procesos disponibles en la línea lista para usar.

En la multiprogramación , si el programador a largo plazo selecciona múltiples procesos de vinculación de E/S, la CPU permanece inactiva la mayor parte del tiempo. La función de un programa eficaz es mejorar la utilización de los recursos.

Si la mayoría de los sistemas operativos cambian su estado de rendimiento a espera, siempre puede haber una posibilidad de falla en el sistema. Entonces, para minimizar este exceso, el sistema operativo necesita programar tareas para hacer un uso completo de la CPU y evitar la posibilidad de interbloqueo.

Objetivos del algoritmo de programación de procesos:

  • Utilización de la CPU al máximo nivel.  Mantenga la CPU lo más ocupada posible .
  • La asignación de CPU debe ser justa .
  • El rendimiento debe ser Máximo . es decir, se debe maximizar el número de procesos que completan su ejecución por unidad de tiempo.
  • El tiempo de respuesta mínimo , es decir, el tiempo que tarda un proceso en finalizar la ejecución debe ser el mínimo.
  • Debe haber un tiempo de espera mínimo y el proceso no debe pasar hambre en la cola de espera.
  • Tiempo mínimo de respuesta. Significa que el tiempo en que un proceso produce la primera respuesta debe ser el menor posible.

¿Cuáles son las diferentes terminologías a tener en cuenta en cualquier algoritmo de programación de CPU?

  • Hora de Llegada: Hora en la que el proceso llega a la cola de listos.
  • Hora de finalización: Hora en la que el proceso completa su ejecución.
  • Burst Time: Tiempo requerido por un proceso para la ejecución de la CPU.
  • Turn Around Time: Diferencia horaria entre la hora de finalización y la hora de llegada.

Hora de vuelta = Hora de finalización – Hora de llegada

  • Tiempo de espera (WT): diferencia de tiempo entre el tiempo de respuesta y el tiempo de ráfaga.

Tiempo de espera = Tiempo de respuesta – Tiempo de ráfaga

¿Cosas a tener en cuenta al diseñar un algoritmo de programación de CPU?

Los diferentes algoritmos de programación de CPU tienen estructuras diferentes y la elección de un algoritmo en particular depende de una variedad de factores. Se han planteado muchas condiciones para comparar los algoritmos de programación de CPU.

Los criterios incluyen lo siguiente: 

  • Utilización de la CPU: el objetivo principal de cualquier algoritmo de CPU es mantener la CPU lo más ocupada posible. En teoría, el uso de la CPU puede oscilar entre 0 y 100, pero en un sistema en tiempo real, varía entre el 40 y el 90 por ciento según la carga del sistema.
  • Rendimiento: el rendimiento promedio de la CPU es la cantidad de procesos realizados y completados durante cada unidad. Esto se llama rendimiento. El resultado puede variar dependiendo de la longitud o duración de los procesos.
  • Tiempo de vuelta: para un proceso en particular, las condiciones importantes son cuánto tiempo lleva realizar ese proceso. El tiempo transcurrido desde el momento de la entrega del proceso hasta el momento de la finalización se conoce como el tiempo de conversión. El tiempo de conversión es la cantidad de tiempo que se pasa esperando el acceso a la memoria, esperando en línea, usando la CPU y esperando E/S.
  • Tiempo de espera: el algoritmo de programación no afecta el tiempo requerido para completar el proceso una vez que ha comenzado a funcionar. Solo afecta el tiempo de espera del proceso, es decir, el tiempo empleado en el proceso de espera en la cola de listos.
  • Tiempo de respuesta: en un sistema colaborativo, el tiempo de respuesta no es la mejor opción. El proceso puede producir algo temprano y continuar calculando los nuevos resultados mientras los resultados anteriores se envían al usuario. Por lo tanto, otro método es el tiempo que se tarda en presentar el proceso de solicitud hasta que se emite la primera respuesta. Esta medida se llama tiempo de respuesta.

¿Cuáles son los diferentes tipos de algoritmos de programación de CPU?

Existen principalmente dos tipos de métodos de programación:

  • Programación preventiva : la programación preventiva se utiliza cuando un proceso cambia del estado de ejecución al estado listo o del estado de espera al estado listo.
  • Programación no preventiva : la programación no preventiva se utiliza cuando un proceso finaliza o cuando un proceso cambia del estado de ejecución al estado de espera.
Different types of CPU Scheduling Algorithms

Diferentes tipos de algoritmos de programación de CPU

Ahora aprendamos sobre estos algoritmos de programación de CPU en sistemas operativos uno por uno:

1. Primero en llegar, primero en servir: 

FCFS se considera el más simple de todos los algoritmos de programación del sistema operativo. El algoritmo de programación por orden de llegada establece que el proceso que solicita la CPU primero recibe la CPU primero y se implementa mediante la cola FIFO .

Características de FCFS:

  • FCFS admite algoritmos de programación de CPU preventivos y no preventivos.
  • Las tareas siempre se ejecutan según el concepto de orden de llegada.
  • FCFS es fácil de implementar y usar.
  • Este algoritmo no es muy eficiente en rendimiento y el tiempo de espera es bastante alto.

Ventajas de FCFS:

  • Fácil de implementar
  • Método de primero en llegar, primero en servir

Desventajas de FCFS:

  • FCFS sufre del efecto Convoy .
  • El tiempo de espera promedio es mucho más alto que los otros algoritmos.
  • FCFS es muy simple y fácil de implementar y, por lo tanto, no es muy eficiente.

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte nuestro artículo detallado sobre la programación por orden de llegada.

2. Trabajo más corto primero (SJF):

El trabajo más corto primero (SJF) es un proceso de programación que selecciona el proceso de espera con el menor tiempo de ejecución para ejecutar a continuación. Este método de programación puede o no ser preventivo. Reduce significativamente el tiempo promedio de espera de otros procesos que esperan ser ejecutados. La forma completa de SJF es el trabajo más corto primero.

Características de SJF:

  • Shortest Job first tiene la ventaja de tener un tiempo de espera promedio mínimo entre todos los algoritmos de programación del sistema operativo.
  • Se asocia con cada tarea como una unidad de tiempo para completar.
  • Puede causar inanición si siguen llegando procesos más cortos. Este problema se puede resolver utilizando el concepto de envejecimiento.

Ventajas del trabajo más corto primero:

  • Como SJF reduce el tiempo de espera promedio, es mejor que el algoritmo de programación por orden de llegada.
  • SJF se utiliza generalmente para la programación a largo plazo

Desventajas de SJF:

  • Uno de los deméritos que tiene SJF es el hambre.
  • Muchas veces se vuelve complicado predecir la duración de la próxima solicitud de CPU

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte nuestro artículo detallado sobre el trabajo más corto primero.

3. Trabajo más largo primero (LJF):

El proceso de programación Longest Job First (LJF) es justo lo contrario de Shortest Job First (SJF), como su nombre sugiere, este algoritmo se basa en el hecho de que el proceso con el mayor tiempo de ráfaga se procesa primero. Longest Job First no es de naturaleza preventiva.

Características de LJF:

  • Entre todos los procesos que esperan en una cola de espera, la CPU siempre se asigna al proceso que tiene el mayor tiempo de ráfaga.
  • Si dos procesos tienen el mismo tiempo de ráfaga, el empate se rompe usando FCFS , es decir, el proceso que llegó primero se procesa primero. 
  • LJF CPU Scheduling puede ser de tipo preventivo y no preventivo.

Ventajas de LJF:

  • Ninguna otra tarea puede programarse hasta que el trabajo o proceso más largo se ejecute por completo.
  • Todos los trabajos o procesos finalizan al mismo tiempo aproximadamente.

Desventajas de LJF:

  • En general, el algoritmo LJF proporciona un tiempo de espera promedio muy alto y un tiempo de respuesta promedio muy alto para un conjunto dado de procesos.
  • Esto puede conducir al efecto de convoy.

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte nuestro artículo detallado sobre la programación más larga del trabajo primero .

4. Programación prioritaria:

El algoritmo de programación de CPU de prioridad preventiva es un método preventivo de algoritmo de programación de CPU que funciona en función de la prioridad de un proceso. En este algoritmo, el editor establece las funciones como importantes, lo que significa que el proceso más importante debe realizarse primero. En el caso de cualquier conflicto, es decir, donde hay más de un procesador con el mismo valor, entonces el algoritmo de planificación de CPU más importante funciona sobre la base del algoritmo FCFS (First Come First Serve).

Características de la programación prioritaria:

  • Programa las tareas en función de la prioridad.
  • Cuando el trabajo de mayor prioridad llega mientras se ejecuta una tarea de menor prioridad, el trabajo de mayor prioridad toma el lugar del de menor prioridad y
  • Este último se suspende hasta que se completa la ejecución.
  • Más bajo es el número asignado, más alto es el nivel de prioridad de un proceso.

Ventajas de la programación prioritaria:

  • El tiempo de espera promedio es menor que FCFS
  • Menos complejo

Desventajas de la programación prioritaria:

  • Uno de los inconvenientes más comunes del algoritmo de programación de CPU de prioridad preventiva es el problema de inanición . Este es el problema en el que un proceso tiene que esperar más tiempo para programarse en la CPU. Esta condición se llama el problema de la inanición.

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte nuestro artículo detallado sobre el algoritmo de programación prioritaria preventiva .

5. Todos contra todos:

Round Robin es un algoritmo de programación de CPU en el que a cada proceso se le asigna cíclicamente un intervalo de tiempo fijo. Es la versión preventiva del algoritmo de programación de CPU por orden de llegada . El algoritmo de CPU Round Robin generalmente se enfoca en la técnica de tiempo compartido. 

Características del Round Robin:

  • Es simple, fácil de usar y libre de hambre, ya que todos los procesos obtienen la asignación de CPU equilibrada.
  • Uno de los métodos más utilizados en la programación de CPU como núcleo.
  • Se considera preventivo ya que los procesos se dan a la CPU por un tiempo muy limitado.

Ventajas de la ronda rotativa:

  • Round robin parece ser justo ya que cada proceso obtiene una parte igual de la CPU.
  • El proceso recién creado se agrega al final de la cola de procesos listos.

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte nuestro artículo detallado sobre el algoritmo de programación por turnos .

6. El tiempo restante más corto primero:

El tiempo restante más corto primero es la versión preventiva del trabajo más corto primero que hemos discutido anteriormente donde el procesador se asigna al trabajo que está más cerca de completarse. En SRTF, se selecciona para ejecutar el proceso con la menor cantidad de tiempo restante hasta la finalización.

Características del tiempo restante más corto primero:

  • El algoritmo SRTF hace que el procesamiento de los trabajos sea más rápido que el algoritmo SJF, dado que no se cuentan los gastos generales. 
  • El cambio de contexto se realiza muchas más veces en SRTF que en SJF y consume el valioso tiempo de procesamiento de la CPU. Esto se suma a su tiempo de procesamiento y disminuye su ventaja de procesamiento rápido.

Ventajas de SRTF:

  • En SRTF, los procesos cortos se manejan muy rápido.
  • El sistema también requiere muy poca sobrecarga ya que solo toma una decisión cuando se completa un proceso o se agrega un nuevo proceso. 

Desventajas de SRTF:

  • Al igual que el trabajo más corto primero, también tiene el potencial de inanición del proceso. 
  • Los procesos largos pueden retrasarse indefinidamente si se agregan continuamente procesos cortos. 

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte primero nuestro artículo detallado sobre el tiempo restante más corto .

7. Tiempo restante más largo primero:

El tiempo restante más largo primero es una versión preventiva del algoritmo de programación de trabajo primero más largo. Este algoritmo de programación es utilizado por el sistema operativo para programar los procesos entrantes para su uso de forma sistemática. Este algoritmo programa primero aquellos procesos que tienen el tiempo de procesamiento más largo restante para completarse.

Características del tiempo restante más largo primero:

  • Entre todos los procesos que esperan en una cola de espera, la CPU siempre se asigna al proceso que tiene el mayor tiempo de ráfaga.
  • Si dos procesos tienen el mismo tiempo de ráfaga, el empate se rompe usando FCFS , es decir, el proceso que llegó primero se procesa primero. 
  • LJF CPU Scheduling puede ser de tipo preventivo y no preventivo.

Ventajas de LRTF:

  • Ningún otro proceso puede ejecutarse hasta que la tarea más larga se ejecute por completo.
  • Todos los trabajos o procesos finalizan al mismo tiempo aproximadamente.

Desventajas de LRTF:

  • Este algoritmo proporciona un tiempo de espera promedio muy alto y un tiempo de respuesta promedio muy alto para un conjunto dado de procesos.
  • Esto puede conducir a un efecto de convoy.

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte primero nuestro artículo detallado sobre el tiempo restante más largo .

8. Relación de respuesta más alta Siguiente:

Ratio de respuesta más alto Next es un algoritmo de programación de CPU no preventivo y se considera uno de los algoritmos de programación más óptimos. El propio nombre indica que necesitamos encontrar la relación de respuesta de todos los procesos disponibles y seleccionar el que tenga la relación de respuesta más alta. Un proceso una vez seleccionado se ejecutará hasta su finalización. 

Características de la relación de respuesta más alta Siguiente:

  • El criterio para HRRN es el índice de respuesta y el modo es no preventivo. 
  • HRRN se considera como la modificación de Shortest Job First para reducir el problema del hambre .
  • En comparación con SJF, durante el algoritmo de programación HRRN, la CPU se asigna al siguiente proceso que tiene la tasa de respuesta más alta y no al proceso que tiene menos tiempo de ráfaga.

 Relación de respuesta = (W + S)/S

Aquí, W es el tiempo de espera del proceso hasta el momento y S es el tiempo de ráfaga del proceso.

Ventajas de HRRN:

  • El algoritmo de programación HRRN generalmente brinda un mejor rendimiento que la programación inicial del trabajo más corto .
  • Hay una reducción en el tiempo de espera para trabajos más largos y también fomenta trabajos más cortos.

Desventajas de HRRN:

  • La implementación de la programación HRRN no es posible ya que no es posible conocer el tiempo de ráfaga de cada trabajo por adelantado.
  • En esta programación, puede ocurrir una sobrecarga en la CPU.

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte nuestro artículo detallado sobre la relación de respuesta más alta Siguiente .

9. Programación de múltiples colas:

Los procesos en la cola de procesos listos se pueden dividir en diferentes clases donde cada clase tiene sus propias necesidades de programación. Por ejemplo, una división común es un proceso en primer plano (interactivo) y un proceso en segundo plano (por lotes) . Estas dos clases tienen diferentes necesidades de programación. Para este tipo de situación se utiliza  la programación de colas multinivel .

La descripción de los procesos en el diagrama anterior es la siguiente:

  • Procesos del sistema: la propia CPU tiene su propio proceso para ejecutar, generalmente denominado Proceso del sistema.
  • Procesos Interactivos: Un Proceso Interactivo es un tipo de proceso en el que debe existir el mismo tipo de interacción.
  • Procesos por lotes: el procesamiento por lotes es generalmente una técnica en el sistema operativo que recopila los programas y los datos en forma de lote antes de que comience el procesamiento .

Ventajas de la programación de colas multinivel:

  • El principal mérito de la cola multinivel es que tiene una sobrecarga de programación baja.

Desventajas de la programación de colas multinivel:

  • Problema de hambre
  • Es de naturaleza inflexible.

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte nuestro artículo detallado sobre Programación de colas multinivel .

10. Programación de colas de retroalimentación multinivel :

Programación de cola de retroalimentación multinivel (MLFQ) La programación de CPU es como la   programación de cola multinivel , pero en este proceso puede moverse entre las colas. Y, por lo tanto, mucho más eficiente que la programación de colas de varios niveles. 

Características de la programación de colas de retroalimentación multinivel:

  • En un algoritmo de programación de colas multinivel , los procesos se asignan permanentemente a una cola al ingresar al sistema y no se permite que los procesos se muevan entre las colas. 
  • Como los procesos se asignan permanentemente a la cola, esta configuración tiene la ventaja de una sobrecarga de programación baja, 
  • Pero por otro lado la desventaja de ser inflexible.

Ventajas de la programación de colas de comentarios multinivel:

  • es mas flexible
  • Permite que diferentes procesos se muevan entre diferentes colas

Desventajas de la programación de la cola de retroalimentación multinivel:

  • También produce gastos generales de CPU
  • Es el algoritmo más complejo.

Para obtener información sobre cómo implementar este algoritmo de programación de CPU, consulte nuestro artículo detallado sobre Programación de colas de retroalimentación de niveles múltiples .

Comparación entre varios algoritmos de programación de CPU

Aquí hay una breve comparación entre diferentes algoritmos de programación de CPU:

Algoritmo           La asignación es  Complejidad  Tiempo medio de espera (AWT)  Derecho preferente de compra  Inanición  Actuación
FCFS Según la hora de llegada de los procesos, se asigna la CPU.  Simple y fácil de implementar  Largo.

 No

 No 

rendimiento lento

SJF  Basado en el tiempo de ráfaga de CPU (BT) más bajo.  Más complejo que FCFS Más pequeño que FCFS

 No

 Sí

 Tiempo de espera promedio mínimo

LJFS  Basado en el tiempo de ráfaga de CPU (BT) más alto Más complejo que FCFS Dependiendo de algunas medidas, por ejemplo, tiempo de llegada, tamaño del proceso, etc. 

No

  Gran tiempo de respuesta

LRTF Al igual que LJFS, la asignación de la CPU se basa en el tiempo de ráfaga de CPU (BT) más alto. pero es preventivo Más complejo que FCFS  Dependiendo de algunas medidas, por ejemplo, tiempo de llegada, tamaño del proceso, etc. 

Sí 

Sí 

Se da preferencia a los trabajos más largos.

SRTF Al igual que SJF, la asignación de la CPU se basa en el tiempo de ráfaga de CPU (BT) más bajo. Pero es preventivo. Más complejo que FCFS  Dependiendo de algunas medidas, por ejemplo, tiempo de llegada, tamaño del proceso, etc.

 Se da preferencia a los trabajos cortos.

RR Según el orden del proceso llega con cuanto de tiempo fijo (TQ)  La complejidad depende del tamaño de Time Quantum Grande en comparación con SJF y la programación prioritaria.

 Sí 

No

 Cada proceso ha dado un tiempo bastante fijo

Preferente de prioridad  Según la prioridad. La tarea de mayor prioridad se ejecuta primero  Este tipo es menos complejo.  Más pequeño que FCFS

  Sí

Buen rendimiento pero contiene un problema de inanición

Prioritario no preventivo  Según la prioridad con el seguimiento de los nuevos trabajos entrantes de mayor prioridad Este tipo es menos complejo que Prioritario preventivo Preventivo Más pequeño que FCFS

 No 

Sí 

Más beneficioso con los sistemas por lotes

MLQ  Según el proceso que reside en la cola de mayor prioridad  Más complejo que los algoritmos de programación de prioridades Más pequeño que FCFS

  No

 Sí

 Buen rendimiento pero contiene un problema de inanición

MFLQ  De acuerdo con el proceso de una cola de prioridad más grande.  Es el más complejo pero su tasa de complejidad depende del tamaño de TQ  Más pequeño que todos los tipos de programación en muchos casos

 No

 No

 Buen rendimiento

Ejercicio:

  1. Considere un sistema que requiere 40 unidades de tiempo de ráfaga. Se utiliza la programación de la cola de retroalimentación de niveles múltiples y el tiempo cuántico es de 2 unidades para la cola superior y se incrementa en 5 unidades en cada nivel, entonces, ¿en qué cola el proceso terminará la ejecución?  
  2. ¿Cuál de las siguientes es falsa sobre SJF? S1: Provoca mínimo tiempo de espera promedio S2: Puede causar inanición (A) Solo S1 (B) Solo S2 (C) Ambos S1 y S2 (D) Ni S1 ni S2 Respuesta (D) S1 es verdadera SJF siempre dará mínimo tiempo medio de espera. S2 es cierto SJF puede causar inanición.  
  3. Considere la siguiente tabla de tiempo de llegada y tiempo de ráfaga para tres procesos P0, P1 y P2. (GATE-CS-2011)
     
Proceso Hora de llegada Tiempo quemado
P0 0 ms  9 ms
P1 1 ms 4 ms
P2 2 ms 9 ms
  1. Se utiliza el algoritmo de programación primero del trabajo más corto preventivo. La programación se lleva a cabo solo a la llegada o finalización de los procesos. ¿Cuál es el tiempo de espera promedio para los tres procesos? (A) 5,0 ms (B) 4,33 ms (C) 6,33 (D) 7,33 Solución: Respuesta: – (A) Al proceso P0 se le asigna un procesador a 0 ms ya que no hay ningún otro proceso en la cola de procesos listos. P0 se adelanta después de 1 ms cuando P1 llega a 1 ms y el tiempo de ráfaga para P1 es menor que el tiempo restante de P0. P1 funciona durante 4 ms. P2 llegó a 2 ms pero P1 continuó ya que el tiempo de ráfaga de P2 es más largo que el de P1. Una vez que se completa P1, P0 se programa nuevamente ya que el tiempo restante para P0 es menor que el tiempo de ráfaga de P2. P0 espera 4 ms, P1 espera 0 ms y P2 espera 11 ms. Entonces, el tiempo de espera promedio es (0+4+11)/3 = 5.  
  2. Considere el siguiente conjunto de procesos, con los tiempos de llegada y los tiempos de ráfaga de CPU dados en milisegundos (GATE-CS-2004)
     
Proceso Hora de llegada Tiempo quemado
P1 0 ms  5ms
P2 1 ms 3ms
P3 2 ms 3ms
P4 4 ms 1 ms
  1. ¿Cuál es el tiempo de respuesta promedio para estos procesos con el algoritmo preventivo de tiempo de procesamiento restante más corto primero (SRPT)? (A) 5.50 (B) 5.75 (C) 6.00 (D) 6.25 Respuesta (A) Solución: El siguiente es un Diagrama de Gantt de ejecución
     
P1 P2 P4 P3 P1
1 4 5 8 12
  1. Tiempo de vuelta = Tiempo de finalización – Tiempo de llegada Tiempo medio de vuelta = (12 + 3 + 6+ 1)/4 = 5,50  
  2. Un sistema operativo utiliza el algoritmo de programación de procesos de tiempo restante más corto primero (SRTF). Considere los tiempos de llegada y los tiempos de ejecución para los siguientes procesos:
     
Proceso Hora de llegada Tiempo quemado
P1 20ms  0 ms
P2 25ms 15 ms
P3 10 ms 30ms
P4 15 ms 45ms
  1. ¿Cuál es el tiempo total de espera para el proceso P2? (A) 5 (B) 15 (C) 40 (D) 55 Respuesta (B) En el momento 0, P1 es el único proceso, P1 se ejecuta durante 15 unidades de tiempo. En el tiempo 15, llega P2, pero P1 tiene el tiempo restante más corto. Entonces P1 continúa por 5 unidades de tiempo más. En el tiempo 20, P2 es el único proceso. Por lo tanto, se ejecuta durante 10 unidades de tiempo. En el tiempo 30, P3 es el proceso de menor tiempo restante. Por lo tanto, se ejecuta durante 10 unidades de tiempo. En el tiempo 40, P2 se ejecuta porque es el único proceso. P2 se ejecuta durante 5 unidades de tiempo. En el tiempo 45, llega P3, pero P2 tiene el tiempo restante más corto. Entonces P2 continúa por 10 unidades de tiempo más. P2 completa su ejecución en el tiempo 55

Tiempo total de espera para P2 
= Tiempo de finalización – (Tiempo de llegada + Tiempo de ejecución)
= 55 – (15 + 25)
= 15

Artículos relacionados :

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *