Planificación de la CPU — ejercicios tipo examen con test, cinco diagramas de Gantt que se corrigen solos y preguntas de desarrollo (y la llegada que ya no se me olvida restar)

En el parcial dibujé bien un Gantt de SRTF y lo suspendí en las cuentas: calculé las esperas sin restar la llegada. Desde entonces hago los Gantt siempre igual, con una tabla de fin, retorno y espera al lado, y no me ha vuelto a pasar. Este artículo está pensado para que cojas ese mismo hábito antes del examen, porque la planificación de la CPU es el tema estrella de la parte escrita: casi seguro te cae un Gantt con FCFS, SJF, SRTF o Round Robin y sus tiempos medios.

Si todavía no has leído la teoría de planificación de la CPU, empieza por ahí: aquí se da por sabida. Todas las preguntas son originales: cubren lo mismo que el examen, con otros datos y otra redacción. Y si antes quieres ver cómo se resuelven estos problemas paso a paso, tienes la práctica guiada de planificación de la CPU.

Cómo usar este artículo

  1. Haz el test sin mirar la teoría. Cada pregunta tiene su botón «Comprobar» y su explicación; la múltiple resta por cada casilla mal marcada, como en el examen.
  2. Resuelve los cinco Gantt en papel, con el eje de tiempo dibujado, y solo después pasa los números a las casillas. Los decimales admiten coma o punto.
  3. Escribe las preguntas de desarrollo en un párrafo, sin enumerar, y compáralas con la respuesta modelo y con la lista de lo que se valora.
  4. Repasa el chuletario la noche antes: tiene las fórmulas, los criterios de desempate y los síntomas de los errores típicos.

Para comprobar un Gantt con otros datos, ábrelo en el simulador de planificación de CPU: te enseña cada decisión del planificador y la espera de cada proceso.

Test: planificación de la CPU

Treinta preguntas con todos los formatos del examen: única, múltiple que penaliza, verdadero o falso, huecos, relacionar, ordenar, respuesta corta y un cálculo con casillas. Las de cálculo son cortas: los Gantt largos van en la sección siguiente.

Pregunta 1Única

Tu portátil tiene un solo núcleo y cuatro procesos en la cola de preparados. ¿Qué decide el planificador de la CPU (a corto plazo)?

  1. Cuál de los procesos preparados entra en la CPU cuando esta queda libre (y, si es expulsivo, cuándo debe salir el que está dentro)
  2. Qué programas se cargan desde el disco a la memoria
  3. Cuánta memoria recibe cada proceso
  4. En qué orden se atienden las peticiones al disco
Solución

Respuesta: Cuál de los procesos preparados entra en la CPU cuando esta queda libre (y, si es expulsivo, cuándo debe salir el que está dentro)

El planificador a corto plazo mira la cola de preparados y decide quién usa la CPU. Lo hace muchísimas veces por segundo, por eso tiene que ser rápido.

Pregunta 2Verdadero o falso

Sobre las ráfagas de CPU y de E/S, indica si es verdadero o falso:

  1. Mientras está activo, un proceso alterna ráfagas de CPU con ráfagas de E/S.
  2. La mayoría de las ráfagas de CPU duran más de 100 ms.
  3. Un proceso intensivo en E/S (como un reproductor de música) suele tener ráfagas de CPU cortas.
  4. El planificador reparte la CPU por programas completos, no por ráfagas.
Solución
  • V — Mientras está activo, un proceso alterna ráfagas de CPU con ráfagas de E/S.
  • F — La mayoría de las ráfagas de CPU duran más de 100 ms.
  • V — Un proceso intensivo en E/S (como un reproductor de música) suele tener ráfagas de CPU cortas.
  • F — El planificador reparte la CPU por programas completos, no por ráfagas.

La vida activa de un proceso es una sucesión de ráfagas: calcula un rato (CPU), espera al disco o a la red (E/S), vuelve a calcular…

Las ráfagas de CPU típicas son cortas, de menos de 8 ms: hay muchas cortas y pocas largas. Cada decisión del planificador reparte la siguiente ráfaga, no el programa entero.

Pregunta 3Relacionar

Relaciona cada métrica con lo que mide:

Tiempo de espera
Tiempo de retorno
Tiempo de respuesta
Utilización de CPU

Definiciones:

  • Suma de todos los ratos que el proceso pasa en la cola de preparados
  • Porcentaje del tiempo en que la CPU hace trabajo útil
  • Lo que tarda el SO en guardar un PCB y cargar otro
  • Desde que el proceso llega hasta que termina
  • Desde que llega a la cola hasta que entra en la CPU por primera vez
Solución
  • Tiempo de espera → Suma de todos los ratos que el proceso pasa en la cola de preparados
  • Tiempo de retorno → Desde que el proceso llega hasta que termina
  • Tiempo de respuesta → Desde que llega a la cola hasta que entra en la CPU por primera vez
  • Utilización de CPU → Porcentaje del tiempo en que la CPU hace trabajo útil

La que sobra es la definición del cambio de contexto, que no es una métrica de un proceso sino un coste del sistema. Recuerda: retorno = espera + tiempo de CPU.

Pregunta 4Respuesta corta

Un proceso tiene un tiempo de retorno de 12 ms y una ráfaga de CPU de 5 ms. ¿Cuántos milisegundos ha esperado en la cola de preparados? (solo el número)

Solución

Respuesta: 7

Retorno = espera + CPU, así que espera = retorno − ráfaga = 12 − 5 = 7 ms.

Pregunta 5Única

Un proceso llega en t = 4, entra por primera vez en la CPU en t = 9, sale, vuelve a entrar y termina en t = 15. ¿Cuál es su tiempo de respuesta?

  1. 5 ms
  2. 11 ms
  3. 9 ms
  4. 6 ms
Solución

Respuesta: 5 ms

El tiempo de respuesta solo mira la primera vez que entra en la CPU: 9 − 4 = 5 ms. Lo que pase después (salir y volver) ya cuenta para el retorno y la espera, no para la respuesta.

Pregunta 6Relacionar

Relaciona cada tipo de sistema con lo que más le importa a su planificador:

Por lotes
Interactivo
Tiempo real

Definiciones:

  • Que el usuario vea respuestas rápidas
  • Cumplir siempre los plazos marcados
  • Sacar el máximo rendimiento a la CPU
  • Usar el menor número de procesos posible
Solución
  • Por lotes → Sacar el máximo rendimiento a la CPU
  • Interactivo → Que el usuario vea respuestas rápidas
  • Tiempo real → Cumplir siempre los plazos marcados

Cada sistema persigue un objetivo distinto y no hay una política óptima para todos los criterios: hay que llegar a un compromiso.

Pregunta 7Múltiple · penaliza

Sobre la planificación expulsiva y no expulsiva, marca las afirmaciones correctas:

  1. En un algoritmo no expulsivo, el proceso solo deja la CPU cuando termina su ráfaga o se bloquea
  2. Los sistemas de tiempo compartido necesitan planificación expulsiva
  3. En un algoritmo expulsivo es el proceso quien decide cuándo abandonar la CPU
  4. FCFS es un algoritmo expulsivo
  5. Round Robin puede funcionar sin la interrupción del temporizador
Solución

Respuesta: En un algoritmo no expulsivo, el proceso solo deja la CPU cuando termina su ráfaga o se bloquea · Los sistemas de tiempo compartido necesitan planificación expulsiva

En los no expulsivos el proceso puede acaparar la CPU. Los expulsivos (SRTF, Round Robin, prioridades expulsivas) permiten al SO desalojarlo, y por eso son la base del tiempo compartido y del tiempo real.

Pregunta 8Rellenar huecos

Completa la descripción de FCFS:

En FCFS la cola de preparados es una ____ ordenada por el instante de ____. Si un proceso muy largo va delante, los cortos se quedan atascados detrás: es el efecto ____.

Palabras:

  • FIFO
  • convoy
  • LIFO
  • dominó
  • ráfaga
  • llegada
Solución

En FCFS la cola de preparados es una FIFO ordenada por el instante de llegada. Si un proceso muy largo va delante, los cortos se quedan atascados detrás: es el efecto convoy.

FCFS atiende por orden de llegada (FIFO). Su gran problema es el efecto convoy: como un camión lento en una carretera de un carril.

Pregunta 9Única

Con FCFS, tres procesos llegan a la vez en este orden: A (10 ms), B (2 ms) y C (3 ms). ¿Cuál es el tiempo medio de espera?

  1. 7,33 ms
  2. 2,33 ms
  3. 5 ms
  4. 12,33 ms
Solución

Respuesta: 7,33 ms

Gantt: A de 0 a 10, B de 10 a 12, C de 12 a 15. Esperas: A = 0, B = 10, C = 12. Media = (0 + 10 + 12) / 3 = 7,33 ms.

Con los cortos delante (B, C, A) las esperas serían 0, 2 y 5: media 2,33 ms. Mismo trabajo, un tercio de espera: así de sensible es FCFS al orden.

Pregunta 10Múltiple · penaliza

¿Qué afirmaciones sobre FCFS son correctas?

  1. Es muy sensible al orden en que llegan los procesos
  2. Perjudica a los procesos intensivos en E/S
  3. Es sencillo de implementar
  4. Perjudica sobre todo a los procesos intensivos en CPU
  5. Desaloja al proceso cuando lleva un tiempo máximo en la CPU
Solución

Respuesta: Es muy sensible al orden en que llegan los procesos · Perjudica a los procesos intensivos en E/S · Es sencillo de implementar

FCFS es simple, pero un proceso de cálculo largo delante hace esperar a todos los interactivos y de E/S (efecto convoy).

Pregunta 11Única

En SJF no expulsivo, ¿cuándo y cómo se elige el siguiente proceso?

  1. Cuando la CPU queda libre, se elige el de ráfaga más corta entre los que están en la cola
  2. Cada vez que llega un proceso, se compara con el que está ejecutando
  3. Se elige el que llegó primero y, en caso de empate, el más corto
  4. Se elige el de ráfaga más larga para quitarlo cuanto antes
Solución

Respuesta: Cuando la CPU queda libre, se elige el de ráfaga más corta entre los que están en la cola

SJF (Shortest Job First) no expulsa: el que entra se queda hasta terminar su ráfaga. Solo al quedar libre la CPU se mira quién es el más corto de la cola (si empatan, el que llegó antes).

Pregunta 12Verdadero o falso

Sobre SJF, indica si es verdadero o falso:

  1. SJF consigue el menor tiempo medio de espera posible.
  2. Si no paran de llegar procesos cortos, uno largo puede esperar indefinidamente.
  3. Lo que SJF minimiza siempre es el tiempo medio de respuesta.
  4. Los sistemas operativos reales usan SJF puro porque conocen de antemano la duración de cada ráfaga.
Solución
  • V — SJF consigue el menor tiempo medio de espera posible.
  • V — Si no paran de llegar procesos cortos, uno largo puede esperar indefinidamente.
  • F — Lo que SJF minimiza siempre es el tiempo medio de respuesta.
  • F — Los sistemas operativos reales usan SJF puro porque conocen de antemano la duración de cada ráfaga.

SJF minimiza el tiempo medio de espera; su riesgo es la inanición de los procesos largos.

En la práctica no se conoce la siguiente ráfaga: habría que estimarla (por ejemplo, con una media exponencial de las anteriores), y ni así se usa SJF puro.

Pregunta 13Respuesta corta

¿Cómo se llama la versión expulsiva de SJF? (siglas)

Solución

Respuesta: SRTF

SRTF, Shortest Remaining Time First: el que está en la CPU es desalojado si llega uno cuya ráfaga es más corta que lo que le queda al de dentro.

Pregunta 14Única

Con SRTF, a gcc le quedan 4 ms en la CPU y llega spotify con una ráfaga de 4 ms. Con el criterio habitual, ¿qué ocurre?

  1. gcc sigue: solo se expulsa si lo que llega es estrictamente más corto
  2. spotify expulsa a gcc porque es el último en llegar
  3. Se reparten la CPU a medias
  4. gcc vuelve al principio de la cola con su ráfaga completa
Solución

Respuesta: gcc sigue: solo se expulsa si lo que llega es estrictamente más corto

En SRTF se compara la ráfaga del que llega con el tiempo restante del que ejecuta. Con 4 = 4 no hay expulsión (si en un examen te encuentras otro criterio, indícalo en una línea).

Pregunta 15Respuesta corta

Un SO estima la siguiente ráfaga con τ(n+1) = α·t(n) + (1 − α)·τ(n). Si α = 0,5, la estimación anterior era τ(n) = 10 ms y la ráfaga real fue t(n) = 6 ms, ¿cuánto vale la nueva estimación en ms?

Solución

Respuesta: 8

τ(n+1) = 0,5 · 6 + 0,5 · 10 = 3 + 5 = 8 ms. Con α = 0,5 la estimación nueva queda a medio camino entre lo que pasó y lo que se esperaba.

Pregunta 16Múltiple · penaliza

Marca las afirmaciones correctas sobre Round Robin:

  1. Es un algoritmo expulsivo
  2. La cola de preparados funciona como una FIFO circular
  3. Si un proceso agota su cuanto sin terminar, vuelve al final de la cola
  4. Cada proceso ejecuta su ráfaga completa antes de ceder la CPU
  5. Está pensado para sistemas de tiempo real estricto
Solución

Respuesta: Es un algoritmo expulsivo · La cola de preparados funciona como una FIFO circular · Si un proceso agota su cuanto sin terminar, vuelve al final de la cola

Round Robin es FCFS con un cuanto Q: nadie puede quedarse más de Q seguidos si hay otros esperando. Es el algoritmo típico del tiempo compartido.

Pregunta 17Respuesta corta

En Round Robin con Q = 20 ms hay 6 procesos en la cola de preparados. Como mucho, ¿cuántos ms tarda un proceso en volver a la CPU? (solo el número)

Solución

Respuesta: 100

Antes que él pueden pasar los otros N − 1 = 5, cada uno como mucho un cuanto: Q · (N − 1) = 20 · 5 = 100 ms.

Pregunta 18Relacionar

Relaciona cada elección del cuanto Q con su efecto:

Q mayor que todas las ráfagas
Q demasiado pequeño
Q algo mayor que la ráfaga típica

Definiciones:

  • Casi todos terminan en un solo cuanto: buen compromiso
  • Round Robin se comporta igual que FCFS
  • Los procesos largos ya no terminan nunca
  • Muchos cambios de contexto y menos CPU útil
Solución
  • Q mayor que todas las ráfagas → Round Robin se comporta igual que FCFS
  • Q demasiado pequeño → Muchos cambios de contexto y menos CPU útil
  • Q algo mayor que la ráfaga típica → Casi todos terminan en un solo cuanto: buen compromiso

Q tiene que ser mucho mayor que lo que cuesta un cambio de contexto. Con Q enorme no se expulsa a nadie (FCFS); con Q diminuto la CPU se pasa el día cambiando de proceso.

Pregunta 19Única

Round Robin con Q = 2. En t = 4 el proceso A agota su cuanto y, en ese mismo instante, llega D. La cola tenía [B, C]. Con el criterio habitual, ¿cómo queda la cola?

  1. B, C, D, A
  2. B, C, A, D
  3. D, B, C, A
  4. A, B, C, D
Solución

Respuesta: B, C, D, A

Los que llegan se ponen al final de la cola y, en un empate de instante, se suele colocar primero al recién llegado y después al expulsado. Escribe siempre en una línea el criterio que sigues.

Pregunta 20Ordenar

Ordena los pasos para resolver un ejercicio de planificación con Gantt:

  1. Calcular la espera: retorno − ráfaga
  2. Calcular el retorno: fin − llegada
  3. Sumar y dividir entre el número de procesos para las medias
  4. Colocar los bloques en el eje de tiempo según el algoritmo
  5. Anotar el instante de fin de cada proceso
Solución

Orden correcto:

  1. Colocar los bloques en el eje de tiempo según el algoritmo
  2. Anotar el instante de fin de cada proceso
  3. Calcular el retorno: fin − llegada
  4. Calcular la espera: retorno − ráfaga
  5. Sumar y dividir entre el número de procesos para las medias

Primero el dibujo y después las cuentas. Todo sale del Gantt: el fin se lee en él, y retorno y espera son restas.

Pregunta 21Múltiple · penaliza

Sobre la planificación por prioridades, marca las correctas:

  1. Entra en la CPU el proceso preparado de mayor prioridad
  2. Puede ser expulsiva o no expulsiva
  3. SJF es un caso particular: la prioridad es la duración estimada de la ráfaga
  4. Las prioridades solo puede fijarlas el usuario
  5. No puede provocar inanición
Solución

Respuesta: Entra en la CPU el proceso preparado de mayor prioridad · Puede ser expulsiva o no expulsiva · SJF es un caso particular: la prioridad es la duración estimada de la ráfaga

Las prioridades pueden ser internas (las calcula el SO) o externas (las pone el usuario). Su riesgo es la inanición de los de baja prioridad.

Pregunta 22Rellenar huecos

Completa la frase:

Si siempre llegan procesos más prioritarios, uno de baja prioridad puede sufrir ____. La solución es el ____, que ____ poco a poco la prioridad de los que llevan tiempo esperando.

Palabras:

  • envejecimiento
  • aumenta
  • interbloqueo
  • convoy
  • inanición
  • disminuye
Solución

Si siempre llegan procesos más prioritarios, uno de baja prioridad puede sufrir inanición. La solución es el envejecimiento, que aumenta poco a poco la prioridad de los que llevan tiempo esperando.

El envejecimiento (aging) hace que esperar tenga premio: tarde o temprano el proceso olvidado se vuelve el más prioritario.

Pregunta 23Única

En planificación por lotería, gcc tiene 3 tickets y onedrive 1. A la larga, ¿qué parte de la CPU recibe gcc?

  1. El 75 %
  2. El 50 %
  3. El 100 %
  4. El 33 %
Solución

Respuesta: El 75 %

En cada rodaja se sortea un ticket ganador: el tiempo de CPU es proporcional al número de tickets. gcc tiene 3 de 4 → 75 %.

Pregunta 24Verdadero o falso

Sobre la planificación por lotería, indica si es verdadero o falso:

  1. Todos los procesos reciben al menos un ticket, para que ninguno se quede sin CPU.
  2. Para imitar a SRTF, se dan más tickets a los trabajos largos.
  3. Si entran o salen procesos, los tickets se vuelven a repartir de forma proporcional.
Solución
  • V — Todos los procesos reciben al menos un ticket, para que ninguno se quede sin CPU.
  • F — Para imitar a SRTF, se dan más tickets a los trabajos largos.
  • V — Si entran o salen procesos, los tickets se vuelven a repartir de forma proporcional.

Para parecerse a SRTF se dan más tickets a los cortos. Con al menos un ticket cada uno, nadie sufre inanición.

Pregunta 25Rellenar huecos

Completa la descripción de las multicolas:

En las multicolas hay varias colas de ____, cada una con su propia ____: por ejemplo, ____ para los procesos interactivos y ____ para los procesos por lotes. Con ____, un proceso puede pasar de una cola a otra.

Palabras:

  • Round Robin
  • SRTF
  • realimentación
  • preparados
  • convoy
  • política
  • bloqueados
  • FCFS
Solución

En las multicolas hay varias colas de preparados, cada una con su propia política: por ejemplo, Round Robin para los procesos interactivos y FCFS para los procesos por lotes. Con realimentación, un proceso puede pasar de una cola a otra.

Las colas se reparten la CPU por prioridad absoluta o con un porcentaje de tiempo para cada una. La realimentación permite subir de cola a un proceso que lleva mucho esperando o bajarlo si cambia su comportamiento.

Pregunta 26Múltiple · penaliza

Sobre la planificación en multiprocesadores, marca las correctas:

  1. En el procesamiento asimétrico, un procesador planifica el trabajo de los demás
  2. En el simétrico puede haber una cola única compartida o una cola por procesador
  3. La afinidad intenta que un proceso repita procesador para aprovechar su caché
  4. En el procesamiento simétrico, un procesador planifica a todos los demás
  5. El equilibrado de carga consiste en que cada proceso pase el mismo tiempo en cada procesador
Solución

Respuesta: En el procesamiento asimétrico, un procesador planifica el trabajo de los demás · En el simétrico puede haber una cola única compartida o una cola por procesador · La afinidad intenta que un proceso repita procesador para aprovechar su caché

Simétrico (SMP) = cada procesador hace su propia planificación. El equilibrado de carga mueve procesos para que ninguna CPU esté saturada ni parada.

Pregunta 27Relacionar

Relaciona cada concepto con su descripción:

Migración push
Migración pull
Afinidad al procesador
Procesamiento asimétrico

Definiciones:

  • Una CPU planifica a todas las demás
  • Un procesador ocioso se lleva procesos de otro más cargado
  • Cada proceso ejecuta un cuanto en cada CPU por turnos
  • Una tarea supervisora revisa la carga y traslada procesos
  • Mantener al proceso en la misma CPU por su caché
Solución
  • Migración push → Una tarea supervisora revisa la carga y traslada procesos
  • Migración pull → Un procesador ocioso se lleva procesos de otro más cargado
  • Afinidad al procesador → Mantener al proceso en la misma CPU por su caché
  • Procesamiento asimétrico → Una CPU planifica a todas las demás

Push = empujar (alguien reparte); pull = tirar (el ocioso se lo lleva). La afinidad tira en contra del equilibrado: mover un proceso equilibra la carga pero le hace perder la caché.

Pregunta 28Única

Un portátil con un solo núcleo ejecuta gcc, spotify y el navegador turnándose cada pocos milisegundos. ¿Qué tiene?

  1. Concurrencia, pero no paralelismo
  2. Paralelismo, porque parecen ir a la vez
  3. Ni concurrencia ni paralelismo
  4. Concurrencia y paralelismo a la vez
Solución

Respuesta: Concurrencia, pero no paralelismo

Concurrencia: varias tareas avanzan intercalándose en el tiempo. Paralelismo: se ejecutan simultáneamente en núcleos distintos. Con un núcleo, el planificador decide el turno.

Pregunta 29Cálculo

FCFS con tres procesos que llegan en t = 0 en el orden P1, P2, P3. Calcula el fin, el retorno y la espera de cada uno y las medias:

ProcesoLlegadaRáfaga
P106
P203
P301
ProcesoFinRetornoEspera
P1
P2
P3
Media
SoluciónP1P2P306910
ProcesoFinRetornoEspera
P1660
P2996
P310109
Media8.335

Como todos llegan en t = 0, el retorno coincide con el fin: 6, 9 y 10 (media 25 / 3 = 8,33 ms). Las esperas son 0, 6 y 9: media 15 / 3 = 5 ms.

Si fueran en orden SJF (P3, P2, P1), las esperas serían 0, 1 y 4: media 1,67 ms. Por eso SJF minimiza la espera media.

Pregunta 30Múltiple · penaliza

¿Qué políticas pueden dejar a un proceso esperando indefinidamente (inanición) si no se añade ningún remedio?

  1. SJF
  2. SRTF
  3. Prioridades sin envejecimiento
  4. FCFS
  5. Round Robin
Solución

Respuesta: SJF · SRTF · Prioridades sin envejecimiento

La inanición aparece cuando la regla de elección puede saltarse a alguien siempre. FCFS y Round Robin respetan el orden de la cola, así que todos acaban entrando.

Si fallas las de métricas (t4-38 a t4-40), vuelve a la tabla «Retorno / Espera / Respuesta» de la teoría antes de pasar a los Gantt. Todo lo demás se apoya en esas tres restas.

Gantt paso a paso

Aquí está lo que más puntúa. Cinco ejercicios: FCFS, SJF no expulsivo, SRTF con los mismos datos que el SJF (para que compares) y Round Robin con dos cuantos distintos sobre los mismos procesos. Antes de empezar, el método que funciona siempre:

  1. Dibuja el eje de tiempo y ve colocando bloques según el algoritmo. En los expulsivos, apunta en cada llegada lo que le queda a cada proceso (SRTF) o cómo queda la cola (Round Robin).
  2. Anota el instante de fin de cada proceso.
  3. Retorno = fin − llegada.
  4. Espera = retorno − ráfaga.
  5. Respuesta = primera entrada − llegada (solo si te la piden).
  6. Media = suma / número de procesos.

Olvidar restar la llegada cuando los procesos no llegan todos en t = 0. Es el error más caro del examen porque el Gantt está bien y todas las cuentas salen mal.

Los criterios de desempate que se usan aquí (y que debes escribir en el examen si te encuentras un empate): en SJF y SRTF, a igual duración entra el que llegó antes, y SRTF solo expulsa si el nuevo es estrictamente más corto que lo que le queda al de dentro; en Round Robin, si alguien llega en el mismo instante en que otro agota su cuanto, el recién llegado entra antes en la cola.

Pregunta 1Cálculo

Gantt 1 · FCFS. Dibuja el Gantt en papel y calcula el fin, el retorno y la espera de cada proceso y las medias:

ProcesoLlegadaRáfaga
P105
P213
P327
P442
ProcesoFinRetornoEspera
P1
P2
P3
P4
Media
SoluciónP1P2P3P40581517
ProcesoFinRetornoEspera
P1550
P2874
P315136
P4171311
Media9.55.25

Paso 1, el Gantt. En FCFS se atiende por orden de llegada y nadie expulsa: P1 de 0 a 5, P2 de 5 a 8, P3 de 8 a 15 y P4 de 15 a 17.

Paso 2, retorno = fin − llegada: P1 = 5 − 0 = 5, P2 = 8 − 1 = 7, P3 = 15 − 2 = 13, P4 = 17 − 4 = 13. Media = 38 / 4 = 9,5 ms.

Paso 3, espera = retorno − ráfaga: P1 = 5 − 5 = 0, P2 = 7 − 3 = 4, P3 = 13 − 7 = 6, P4 = 13 − 2 = 11. Media = 21 / 4 = 5,25 ms.

Fíjate en P4: con solo 2 ms de trabajo espera 11, porque llegó detrás de P3 (7 ms). Es el efecto convoy.

Pregunta 2Cálculo

Gantt 2 · SJF no expulsivo. Con estos procesos, calcula el fin, el retorno y la espera de cada uno y las medias:

ProcesoLlegadaRáfaga
P106
P225
P332
P453
ProcesoFinRetornoEspera
P1
P2
P3
P4
Media
SoluciónP1P3P4P20681116
ProcesoFinRetornoEspera
P1660
P216149
P3853
P41163
Media7.753.75

t = 0: solo está P1. Entra y, como SJF no expulsa, se queda hasta t = 6 aunque lleguen otros.

t = 6: en la cola esperan P2 (5), P3 (2) y P4 (3). Entra el más corto, P3, hasta t = 8.

t = 8: quedan P2 (5) y P4 (3): entra P4 hasta t = 11. t = 11: solo queda P2, hasta t = 16.

Retornos: 6 − 0 = 6, 16 − 2 = 14, 8 − 3 = 5 y 11 − 5 = 6 (media 31 / 4 = 7,75 ms). Esperas: 0, 14 − 5 = 9, 5 − 2 = 3 y 6 − 3 = 3 (media 15 / 4 = 3,75 ms).

Pregunta 3Cálculo

Gantt 3 · SRTF (SJF expulsivo) con los mismos procesos del Gantt 2. Calcula fin, retorno, espera y respuesta, y las medias:

ProcesoLlegadaRáfaga
P106
P225
P332
P453
ProcesoFinRetornoEsperaRespuesta
P1
P2
P3
P4
Media
SoluciónP1P3P1P4P203581116
ProcesoFinRetornoEsperaRespuesta
P18820
P2161499
P35200
P411633
Media7.53.53

En cada llegada se compara la ráfaga del nuevo con lo que le queda al que está en la CPU.

t = 2: llega P2 (5). A P1 le quedan 6 − 2 = 4. Como 5 > 4, no expulsa. t = 3: llega P3 (2). A P1 le quedan 3. Como 2 < 3, P3 expulsa a P1.

t = 5: P3 termina y llega P4 (3). Restantes: P1 = 3, P2 = 5, P4 = 3. Empate entre P1 y P4: entra el que llegó antes, P1, hasta t = 8. Después P4 (8-11) y P2 (11-16).

Retornos: 8, 14, 2 y 6 (media 30 / 4 = 7,5 ms). Esperas: 8 − 6 = 2, 14 − 5 = 9, 2 − 2 = 0 y 6 − 3 = 3 (media 14 / 4 = 3,5 ms). Respuestas (primera entrada − llegada): 0, 11 − 2 = 9, 3 − 3 = 0 y 8 − 5 = 3 (media 12 / 4 = 3 ms).

Con los mismos datos, SRTF (3,5 ms de espera media) mejora a SJF (3,75 ms).

Pregunta 4Cálculo

Gantt 4 · Round Robin con Q = 2. Si un proceso llega en el mismo instante en que otro agota su cuanto, el recién llegado entra antes en la cola. Calcula fin, retorno, espera y respuesta, y las medias:

ProcesoLlegadaRáfaga
P105
P213
P324
P442
ProcesoFinRetornoEsperaRespuesta
P1
P2
P3
P4
Media
SoluciónP1P2P3P1P4P2P3P10246810111314
ProcesoFinRetornoEsperaRespuesta
P1141490
P2111071
P3131172
P410644
Media10.256.751.75

Lleva la cola apuntada en cada cambio:

t = 2: P1 agota su cuanto y llega P3 → cola [P2, P3, P1]. Entra P2. t = 4: P2 agota su cuanto y llega P4 → cola [P3, P1, P4, P2]. Entra P3.

t = 6: P3 agota → [P1, P4, P2, P3]. Entra P1 (6-8; le queda 1). t = 8: entra P4 (8-10, termina). t = 10: P2 (10-11, termina). t = 11: P3 (11-13, termina). t = 13: P1 (13-14, termina).

Retornos: 14, 10, 11 y 6 (media 41 / 4 = 10,25 ms). Esperas: 14 − 5 = 9, 10 − 3 = 7, 11 − 4 = 7 y 6 − 2 = 4 (media 27 / 4 = 6,75 ms). Respuestas: 0, 2 − 1 = 1, 4 − 2 = 2 y 8 − 4 = 4 (media 7 / 4 = 1,75 ms).

Pregunta 5Cálculo

Gantt 5 · Round Robin con Q = 4 y los mismos procesos del Gantt 4. Calcula fin, retorno, espera y respuesta, y las medias:

ProcesoLlegadaRáfaga
P105
P213
P324
P442
ProcesoFinRetornoEsperaRespuesta
P1
P2
P3
P4
Media
SoluciónP1P2P3P4P1047111314
ProcesoFinRetornoEsperaRespuesta
P1141490
P27633
P311955
P413977
Media9.563.75

t = 0-4: P1 usa su cuanto entero (le queda 1). En t = 4 llega P4 a la vez que P1 agota: cola [P2, P3, P4, P1].

P2 (4-7) termina antes de agotar el cuanto, P3 (7-11) usa justo 4 y termina, P4 (11-13) termina y P1 (13-14) remata su último milisegundo.

Retornos: 14, 6, 9 y 9 (media 38 / 4 = 9,5 ms). Esperas: 9, 3, 5 y 7 (media 24 / 4 = 6 ms). Respuestas: 0, 3, 5 y 7 (media 15 / 4 = 3,75 ms).

Compara con Q = 2: con el cuanto más grande hay menos cambios (4 frente a 7) y mejor espera media (6 frente a 6,75), pero la respuesta media empeora (3,75 frente a 1,75).

Comprueba cada fila con retorno = espera + ráfaga antes de pasar a la siguiente. Si no cuadra, el error está en esa fila, no en la media.

Compara los Gantt 2 y 3 (mismos datos): SRTF baja la espera media de 3,75 a 3,5 ms. Y los Gantt 4 y 5: con Q = 4 hay 4 cambios de contexto en lugar de 7 y la espera media baja de 6,75 a 6 ms, pero la respuesta media sube de 1,75 a 3,75 ms. Es justo el compromiso del cuanto que viste en la teoría.

Preguntas de desarrollo

En la parte escrita también puede caer una pregunta para redactar. Escribe tu respuesta en la caja, pulsa «Comprobar» y compárala con la respuesta modelo y con la lista de lo que se valora: si tocas todos los puntos, la tienes.

Pregunta 1Desarrollo

Explica la diferencia entre la planificación expulsiva y la no expulsiva, con un algoritmo de cada tipo, y por qué los sistemas de tiempo compartido necesitan la expulsiva.

Solución

Respuesta modelo:

En la planificación no expulsiva, el proceso que está en la CPU solo la abandona cuando él mismo lo pide: al terminar su ráfaga de CPU o al bloquearse esperando una E/S. El planificador únicamente decide cuando la CPU queda libre. Son no expulsivos FCFS y SJF. Su riesgo es el acaparamiento: un proceso con una ráfaga muy larga hace esperar a todos los demás.

En la planificación expulsiva, el sistema operativo puede desalojar al proceso que está ejecutando, por ejemplo cuando llega otro con una ráfaga más corta (SRTF) o de mayor prioridad, o cuando se agota su cuanto (Round Robin), algo que detecta gracias a la interrupción del temporizador. El tiempo compartido necesita expulsión porque tiene que garantizar a cada usuario respuestas rápidas aunque haya procesos que calculen sin parar; el tiempo real la necesita para atender a tiempo las tareas con plazo.

Lo que se valora:

  • Define no expulsivo: el proceso deja la CPU al terminar la ráfaga o bloquearse
  • Define expulsivo: el SO puede desalojar al proceso
  • Da ejemplos correctos (FCFS o SJF frente a SRTF o Round Robin)
  • Menciona el riesgo de acaparamiento y el papel del temporizador
  • Justifica por qué el tiempo compartido (y el tiempo real) necesita expulsión
Pregunta 2Desarrollo

Compara FCFS, SJF y Round Robin: cómo eligen al siguiente proceso, qué ventaja tiene cada uno y cuál es su principal problema.

Solución

Respuesta modelo:

FCFS atiende a los procesos por orden de llegada con una cola FIFO y no expulsa. Es el más sencillo, pero es muy sensible al orden: si un proceso largo va delante, los cortos esperan mucho detrás de él (efecto convoy), lo que perjudica a los procesos intensivos en E/S.

SJF elige, cuando la CPU queda libre, el proceso con la ráfaga de CPU más corta. Minimiza el tiempo medio de espera, pero puede provocar la inanición de los procesos largos si no paran de llegar cortos, y además exige conocer la siguiente ráfaga, que en la práctica solo se puede estimar. Su versión expulsiva es SRTF.

Round Robin es un FCFS expulsivo: cada proceso usa la CPU como mucho un cuanto Q y, si no termina, vuelve al final de la cola. Reparte la CPU de forma equitativa y da buenos tiempos de respuesta, por lo que es el típico de los sistemas interactivos; su problema es elegir bien Q, porque con un Q muy grande se comporta como FCFS y con uno muy pequeño se pierde mucho tiempo en cambios de contexto.

Lo que se valora:

  • Criterio de elección correcto de los tres
  • Expulsivo o no en cada caso
  • Ventaja: sencillez (FCFS), mínima espera media (SJF), respuesta y equidad (RR)
  • Problema: efecto convoy (FCFS), inanición y estimar la ráfaga (SJF), elegir Q (RR)
Pregunta 3Desarrollo

Explica cómo influye el tamaño del cuanto Q en el comportamiento de Round Robin.

Solución

Respuesta modelo:

En Round Robin cada proceso puede usar la CPU como mucho durante un cuanto Q seguido; si no termina, vuelve al final de la cola de preparados. Con N procesos en la cola, un proceso espera como mucho Q · (N − 1) hasta volver a entrar, así que Q marca directamente el tiempo de respuesta.

Si Q es muy grande, mayor que las ráfagas de CPU, los procesos terminan su ráfaga antes de agotar el cuanto y el algoritmo se comporta igual que FCFS, con sus problemas de efecto convoy. Si Q es muy pequeño, la CPU se reparte de forma muy uniforme, como si cada proceso tuviera un procesador N veces más lento, pero aumentan los cambios de contexto y se pierde tiempo de CPU guardando y cargando PCB. Por eso Q debe ser bastante mayor que lo que cuesta un cambio de contexto y, a ser posible, algo mayor que la ráfaga típica; en la práctica suele estar entre 1 y 200 ms, y sistemas como Linux lo ajustan según la carga.

Lo que se valora:

  • Relaciona Q con el tiempo de respuesta, Q · (N − 1)
  • Q muy grande: se comporta como FCFS
  • Q muy pequeño: muchos cambios de contexto y menos rendimiento
  • Criterio para elegir Q (mayor que el cambio de contexto, cerca de la ráfaga típica)
Pregunta 4Desarrollo

Explica la planificación por prioridades, el problema de la inanición y cómo lo evitan el envejecimiento y las multicolas con realimentación.

Solución

Respuesta modelo:

En la planificación por prioridades cada proceso tiene una prioridad, que puede asignar el sistema operativo (interna) o el usuario (externa), y entra en la CPU el proceso preparado de mayor prioridad. Puede ser expulsiva, si un proceso más prioritario que llega desaloja al que está ejecutando, o no expulsiva. SJF es un caso particular en el que la prioridad es la duración estimada de la ráfaga.

Su problema es la inanición: si siempre hay procesos más prioritarios, uno de baja prioridad puede esperar indefinidamente. La solución clásica es el envejecimiento (aging), que aumenta poco a poco la prioridad de los procesos que llevan tiempo esperando hasta que acaban entrando. Las multicolas organizan los preparados en varias colas con políticas distintas (por ejemplo, Round Robin para interactivos y FCFS para lotes) que se reparten la CPU por prioridad o por porcentaje de tiempo; con realimentación, un proceso puede cambiar de cola, de modo que el que lleva mucho tiempo esperando sube a una cola más prioritaria.

Lo que se valora:

  • Define la planificación por prioridades (interna o externa, expulsiva o no)
  • Define la inanición
  • Explica el envejecimiento
  • Explica las multicolas y la realimentación como forma de evitarla

En las de comparar algoritmos, usa siempre el mismo orden para cada uno: cómo elige, si expulsa, su ventaja y su problema. Así no te dejas nada y el profesor lo ve de un vistazo.

Todo el tema en un dibujo

Antes del chuletario, el tema entero en una imagen: las tres fórmulas, una ficha por algoritmo y los métodos que entran en el test.

Todo el tema en un dibujoLas fórmulas de las métricas, las fichas de FCFS, SJF, SRTF y Round Robin (si expulsan, a quién eligen, su ventaja y su problema) y los métodos de prioridades, multicolas, lotería y multiprocesador.Planificación de la CPU en un dibujoMétricas (calcula siempre desde el Gantt)retorno = fin − llegada · espera = retorno − ráfaga · respuesta = 1.ª entrada − llegadaFCFSno expulsivocola FIFO por llegada  efecto convoysimpleSJFno expulsivola ráfaga más corta  inanición de largosmínima espera mediaSRTFexpulsivoel menor tiempo restante  inanición de largosaún menos esperaRRexpulsivoFIFO circular + cuanto Q  Q mal elegidobuena respuestaPrioridadescontra inanición: agingMulticolasuna política por colaLoteríaCPU ∝ número de ticketsMultiprocesadorafinidad · push / pullExpulsivo = el SO puede sacar al proceso (lo necesitan el tiempo compartido y el tiempo real)
Si te cabe este dibujo en la cabeza, te cabe el tema.

Chuletario: planificación de la CPU

Lo esencial en 30 segundos

  • El planificador decide qué proceso preparado entra en la CPU y, si es expulsivo, cuándo sale el de dentro.
  • Retorno = fin − llegada = espera + CPU. Espera = retorno − ráfaga. Respuesta = primera entrada − llegada.
  • No expulsivos: FCFS y SJF. Expulsivos: SRTF, Round Robin y prioridades expulsivas. Tiempo compartido y tiempo real necesitan expulsión.
  • SJF minimiza la espera media; Round Robin da la mejor respuesta; FCFS es el más simple.
  • Inanición en SJF, SRTF y prioridades; la cura es el envejecimiento.

Qué hace cada algoritmo

Quiero…AlgoritmoCómo decide
Atender por orden de llegadaFCFSCola FIFO; nadie expulsa
Atender primero al más cortoSJFAl quedar libre la CPU, la ráfaga más corta
Que el corto expulse al largoSRTFEn cada llegada, compara con lo que le queda al de dentro
Turnos justos para interactivosRound RobinFIFO circular; como mucho Q seguidos
Que mande la importanciaPrioridadesEl más prioritario; aging contra la inanición
CPU proporcionalLoteríaSorteo de tickets; todos al menos uno
Mezclar políticasMulticolasUna política por cola; con realimentación, cambian de cola

Fórmulas y datos que caen

Quiero calcular…FórmulaEjemplo
Retornofin − llegadatermina en 15, llegó en 1 → 14
Esperaretorno − ráfaga14 − 4 → 10
Respuestaprimera entrada − llegadaentra en 3, llegó en 1 → 2
Respuesta máxima en RRQ · (N − 1)Q = 20, N = 6 → 100 ms
Estimación de ráfagaτ(n+1) = α · t(n) + (1 − α) · τ(n)α = 0,5, t = 6, τ = 10 → 8
CPU con loteríatickets propios / tickets totales3 de 4 → 75 %

Plantilla para cualquier Gantt

ProcesoLlegadaRáfagaFinRetorno = fin − llegadaEspera = retorno − ráfaga
P1……(del Gantt)……
Mediasuma / Nsuma / N

Resultados de los cinco Gantt de arriba, para repasar: FCFS 9,5 / 5,25 ms (retorno / espera medios); SJF 7,75 / 3,75; SRTF 7,5 / 3,5; Round Robin Q = 2: 10,25 / 6,75; Round Robin Q = 4: 9,5 / 6.

Síntoma / causa probable

SíntomaCausa probable
Una espera te sale negativaHas tomado como fin el de un bloque intermedio, no el último del proceso (pasa en SRTF y Round Robin)
Las esperas no suman lo que esperabasHas calculado fin − ráfaga con procesos que no llegan en t = 0
En SJF un proceso aparece partido en dos bloquesHas expulsado: eso es SRTF, no SJF
En SRTF has expulsado en un empateSolo se expulsa si el nuevo es estrictamente más corto
En RR el Gantt se descuadra a partir del segundo cuantoHas metido al expulsado delante de un recién llegado, o al principio de la cola
Retorno ≠ espera + ráfaga en una filaError de resta en esa fila: rehazla antes de hacer la media

Antes de entregar, pregúntate

  1. ¿He restado la llegada en todos los retornos?
  2. ¿Cuadra cada fila: retorno = espera + ráfaga?
  3. ¿He respetado si el algoritmo es expulsivo o no?
  4. ¿He escrito en una línea el criterio de desempate que he usado?

Si te ha salido casi todo, estás listo para el siguiente tema: la concurrencia y las secciones críticas, donde estos procesos que se turnan la CPU empiezan a compartir datos. ¡Nos vemos allí!

Sigue aprendiendoTodos los artículos de Sistemas operativos

¿Te ha servido este artículo? Así puedes apoyar SergioLearns →

¿Listo para el examen?Simulacro del examen de teoría de IC2 — primer parcial, segundo parcial o convocatoria, con tu nota real y el repaso de cada fallo (como si estuvieras en el aula)