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.
Tabla de Contenidos
Cómo usar este artículo
- 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.
- 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.
- 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.
- 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.
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)?
- 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)
- Qué programas se cargan desde el disco a la memoria
- Cuánta memoria recibe cada proceso
- 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.
Sobre las ráfagas de CPU y de E/S, indica si es verdadero o falso:
- Mientras está activo, un proceso alterna ráfagas de CPU con ráfagas de E/S.
- La mayoría de las ráfagas de CPU duran más de 100 ms.
- Un proceso intensivo en E/S (como un reproductor de música) suele tener ráfagas de CPU cortas.
- 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.
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.
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.
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?
- 5 ms
- 11 ms
- 9 ms
- 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.
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.
Sobre la planificación expulsiva y no expulsiva, marca las afirmaciones correctas:
- 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 un algoritmo expulsivo es el proceso quien decide cuándo abandonar la CPU
- FCFS es un algoritmo expulsivo
- 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.
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.
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?
- 7,33 ms
- 2,33 ms
- 5 ms
- 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.
¿Qué afirmaciones sobre FCFS son correctas?
- Es muy sensible al orden en que llegan los procesos
- Perjudica a los procesos intensivos en E/S
- Es sencillo de implementar
- Perjudica sobre todo a los procesos intensivos en CPU
- 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).
En SJF no expulsivo, ¿cuándo y cómo se elige el siguiente proceso?
- Cuando la CPU queda libre, se elige el de ráfaga más corta entre los que están en la cola
- Cada vez que llega un proceso, se compara con el que está ejecutando
- Se elige el que llegó primero y, en caso de empate, el más corto
- 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).
Sobre SJF, indica si es verdadero o falso:
- SJF consigue el menor tiempo medio de espera posible.
- Si no paran de llegar procesos cortos, uno largo puede esperar indefinidamente.
- Lo que SJF minimiza siempre es el tiempo medio de respuesta.
- 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.
¿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.
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?
- gcc sigue: solo se expulsa si lo que llega es estrictamente más corto
- spotify expulsa a gcc porque es el último en llegar
- Se reparten la CPU a medias
- 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).
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.
Marca las afirmaciones correctas sobre Round Robin:
- 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
- Cada proceso ejecuta su ráfaga completa antes de ceder la CPU
- 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.
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.
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.
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?
- B, C, D, A
- B, C, A, D
- D, B, C, A
- 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.
Ordena los pasos para resolver un ejercicio de planificación con Gantt:
- Calcular la espera: retorno − ráfaga
- Calcular el retorno: fin − llegada
- Sumar y dividir entre el número de procesos para las medias
- Colocar los bloques en el eje de tiempo según el algoritmo
- Anotar el instante de fin de cada proceso
Solución
Orden correcto:
- Colocar los bloques en el eje de tiempo según el algoritmo
- Anotar el instante de fin de cada proceso
- Calcular el retorno: fin − llegada
- Calcular la espera: retorno − ráfaga
- 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.
Sobre la planificación por prioridades, marca las correctas:
- 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 solo puede fijarlas el usuario
- 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.
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.
En planificación por lotería, gcc tiene 3 tickets y onedrive 1. A la larga, ¿qué parte de la CPU recibe gcc?
- El 75 %
- El 50 %
- El 100 %
- 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 %.
Sobre la planificación por lotería, indica si es verdadero o falso:
- Todos los procesos reciben al menos un ticket, para que ninguno se quede sin CPU.
- Para imitar a SRTF, se dan más tickets a los trabajos largos.
- 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.
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.
Sobre la planificación en multiprocesadores, marca las correctas:
- 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é
- En el procesamiento simétrico, un procesador planifica a todos los demás
- 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.
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é.
Un portátil con un solo núcleo ejecuta gcc, spotify y el navegador turnándose cada pocos milisegundos. ¿Qué tiene?
- Concurrencia, pero no paralelismo
- Paralelismo, porque parecen ir a la vez
- Ni concurrencia ni paralelismo
- 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.
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:
| Proceso | Llegada | Ráfaga |
|---|---|---|
| P1 | 0 | 6 |
| P2 | 0 | 3 |
| P3 | 0 | 1 |
| Proceso | Fin | Retorno | Espera |
|---|---|---|---|
| P1 | |||
| P2 | |||
| P3 | |||
| Media |
Solución
| Proceso | Fin | Retorno | Espera |
|---|---|---|---|
| P1 | 6 | 6 | 0 |
| P2 | 9 | 9 | 6 |
| P3 | 10 | 10 | 9 |
| Media | 8.33 | 5 |
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.
¿Qué políticas pueden dejar a un proceso esperando indefinidamente (inanición) si no se añade ningún remedio?
- SJF
- SRTF
- Prioridades sin envejecimiento
- FCFS
- 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:
- 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).
- Anota el instante de fin de cada proceso.
- Retorno = fin − llegada.
- Espera = retorno − ráfaga.
- Respuesta = primera entrada − llegada (solo si te la piden).
- 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.
Gantt 1 · FCFS. Dibuja el Gantt en papel y calcula el fin, el retorno y la espera de cada proceso y las medias:
| Proceso | Llegada | Ráfaga |
|---|---|---|
| P1 | 0 | 5 |
| P2 | 1 | 3 |
| P3 | 2 | 7 |
| P4 | 4 | 2 |
| Proceso | Fin | Retorno | Espera |
|---|---|---|---|
| P1 | |||
| P2 | |||
| P3 | |||
| P4 | |||
| Media |
Solución
| Proceso | Fin | Retorno | Espera |
|---|---|---|---|
| P1 | 5 | 5 | 0 |
| P2 | 8 | 7 | 4 |
| P3 | 15 | 13 | 6 |
| P4 | 17 | 13 | 11 |
| Media | 9.5 | 5.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.
Gantt 2 · SJF no expulsivo. Con estos procesos, calcula el fin, el retorno y la espera de cada uno y las medias:
| Proceso | Llegada | Ráfaga |
|---|---|---|
| P1 | 0 | 6 |
| P2 | 2 | 5 |
| P3 | 3 | 2 |
| P4 | 5 | 3 |
| Proceso | Fin | Retorno | Espera |
|---|---|---|---|
| P1 | |||
| P2 | |||
| P3 | |||
| P4 | |||
| Media |
Solución
| Proceso | Fin | Retorno | Espera |
|---|---|---|---|
| P1 | 6 | 6 | 0 |
| P2 | 16 | 14 | 9 |
| P3 | 8 | 5 | 3 |
| P4 | 11 | 6 | 3 |
| Media | 7.75 | 3.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).
Gantt 3 · SRTF (SJF expulsivo) con los mismos procesos del Gantt 2. Calcula fin, retorno, espera y respuesta, y las medias:
| Proceso | Llegada | Ráfaga |
|---|---|---|
| P1 | 0 | 6 |
| P2 | 2 | 5 |
| P3 | 3 | 2 |
| P4 | 5 | 3 |
| Proceso | Fin | Retorno | Espera | Respuesta |
|---|---|---|---|---|
| P1 | ||||
| P2 | ||||
| P3 | ||||
| P4 | ||||
| Media |
Solución
| Proceso | Fin | Retorno | Espera | Respuesta |
|---|---|---|---|---|
| P1 | 8 | 8 | 2 | 0 |
| P2 | 16 | 14 | 9 | 9 |
| P3 | 5 | 2 | 0 | 0 |
| P4 | 11 | 6 | 3 | 3 |
| Media | 7.5 | 3.5 | 3 |
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).
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:
| Proceso | Llegada | Ráfaga |
|---|---|---|
| P1 | 0 | 5 |
| P2 | 1 | 3 |
| P3 | 2 | 4 |
| P4 | 4 | 2 |
| Proceso | Fin | Retorno | Espera | Respuesta |
|---|---|---|---|---|
| P1 | ||||
| P2 | ||||
| P3 | ||||
| P4 | ||||
| Media |
Solución
| Proceso | Fin | Retorno | Espera | Respuesta |
|---|---|---|---|---|
| P1 | 14 | 14 | 9 | 0 |
| P2 | 11 | 10 | 7 | 1 |
| P3 | 13 | 11 | 7 | 2 |
| P4 | 10 | 6 | 4 | 4 |
| Media | 10.25 | 6.75 | 1.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).
Gantt 5 · Round Robin con Q = 4 y los mismos procesos del Gantt 4. Calcula fin, retorno, espera y respuesta, y las medias:
| Proceso | Llegada | Ráfaga |
|---|---|---|
| P1 | 0 | 5 |
| P2 | 1 | 3 |
| P3 | 2 | 4 |
| P4 | 4 | 2 |
| Proceso | Fin | Retorno | Espera | Respuesta |
|---|---|---|---|---|
| P1 | ||||
| P2 | ||||
| P3 | ||||
| P4 | ||||
| Media |
Solución
| Proceso | Fin | Retorno | Espera | Respuesta |
|---|---|---|---|---|
| P1 | 14 | 14 | 9 | 0 |
| P2 | 7 | 6 | 3 | 3 |
| P3 | 11 | 9 | 5 | 5 |
| P4 | 13 | 9 | 7 | 7 |
| Media | 9.5 | 6 | 3.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.
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
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)
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)
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.
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… | Algoritmo | Cómo decide |
|---|---|---|
| Atender por orden de llegada | FCFS | Cola FIFO; nadie expulsa |
| Atender primero al más corto | SJF | Al quedar libre la CPU, la ráfaga más corta |
| Que el corto expulse al largo | SRTF | En cada llegada, compara con lo que le queda al de dentro |
| Turnos justos para interactivos | Round Robin | FIFO circular; como mucho Q seguidos |
| Que mande la importancia | Prioridades | El más prioritario; aging contra la inanición |
| CPU proporcional | Lotería | Sorteo de tickets; todos al menos uno |
| Mezclar políticas | Multicolas | Una política por cola; con realimentación, cambian de cola |
Fórmulas y datos que caen
| Quiero calcular… | Fórmula | Ejemplo |
|---|---|---|
| Retorno | fin − llegada | termina en 15, llegó en 1 → 14 |
| Espera | retorno − ráfaga | 14 − 4 → 10 |
| Respuesta | primera entrada − llegada | entra en 3, llegó en 1 → 2 |
| Respuesta máxima en RR | Q · (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ía | tickets propios / tickets totales | 3 de 4 → 75 % |
Plantilla para cualquier Gantt
| Proceso | Llegada | Ráfaga | Fin | Retorno = fin − llegada | Espera = retorno − ráfaga |
|---|---|---|---|---|---|
| P1 | … | … | (del Gantt) | … | … |
| Media | suma / N | suma / 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íntoma | Causa probable |
|---|---|
| Una espera te sale negativa | Has 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 esperabas | Has calculado fin − ráfaga con procesos que no llegan en t = 0 |
| En SJF un proceso aparece partido en dos bloques | Has expulsado: eso es SRTF, no SJF |
| En SRTF has expulsado en un empate | Solo se expulsa si el nuevo es estrictamente más corto |
| En RR el Gantt se descuadra a partir del segundo cuanto | Has metido al expulsado delante de un recién llegado, o al principio de la cola |
| Retorno ≠ espera + ráfaga en una fila | Error de resta en esa fila: rehazla antes de hacer la media |
Antes de entregar, pregúntate
- ¿He restado la llegada en todos los retornos?
- ¿Cuadra cada fila: retorno = espera + ráfaga?
- ¿He respetado si el algoritmo es expulsivo o no?
- ¿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)


