Resuelve el enunciado de arriba con lápiz y papel, escribe aquí tus tiempos y el simulador te dirá en qué casilla se torció. Marca el modo práctica si prefieres que la solución no esté a la vista.
Tus tiempos para FCFS
PID
Llegada
Ráfaga
Fin
Espera
Turnaround
P1
0
6
P2
1
4
P3
2
8
📚Guía de Planificación de Procesos
Algoritmos de scheduler de CPU
Comparativa de Algoritmos
Algoritmo
Apropiativo
Criterio de selección
Ventaja
Desventaja
Cuándo usarlo
FCFS
No
Orden de llegada
Sencillo, sin starvation
Convoy effect: un proceso largo bloquea a los cortos
Sistemas batch sencillos, colas FIFO
SJF
No
Ráfaga más corta primero
Tiempo medio de espera mínimo (óptimo teórico)
Necesita conocer la ráfaga, posible inanición
Cargas predecibles, batch con estimación
SRTF
Sí
Tiempo restante más corto
Mejor que SJF para procesos que llegan en distintos momentos
Muchos cambios de contexto, requiere estimar ráfaga
Sistemas interactivos con mezcla de cargas
Round Robin
Sí
Turnos cíclicos de quantum
Justo, buen tiempo de respuesta
Cambios de contexto si quantum es bajo
Sistemas time-sharing y multiusuario
Priority
Opcional
Prioridad estática o dinámica
Atiende primero lo crítico
Inanición sin envejecimiento
Sistemas en tiempo real, kernel
Casos de Uso Reales
🎓Estudiante de Sistemas Operativos
Necesitas resolver problemas de Gantt para el examen: 4 procesos con tiempos distintos, calcular tiempo medio de espera con FCFS y SJF y comparar.
Carga el ejemplo «Convoy effect» y cambia entre FCFS y SJF para ver cómo cambia el tiempo medio.
📚Opositor TIC / Concurso público
Pruebas tipo test de oposición preguntan diferencias entre apropiativo y no apropiativo, qué es el quantum y cuándo causa inanición Priority.
Practica el ejemplo «Inanición priority» y mira cuánto espera el proceso de prioridad más baja frente a lo que dura su ráfaga.
⚙️Programador de sistemas embebidos
Diseñas un firmware con tareas de tiempo real y de fondo. Decides aplicar Priority apropiativo para garantizar respuesta a interrupciones críticas.
En Priority apropiativo, una tarea crítica que llega siempre interrumpe a las menos prioritarias.
👨🏫Profesor / docente de informática
Quieres mostrar visualmente a tu clase por qué Round Robin con quantum=1 degenera en cambios de contexto excesivos.
Usa el ejemplo de Round Robin y baja el quantum a 1 para mostrar el coste del context switching.
Preguntas Frecuentes
¿Cuál es la diferencia entre apropiativo y no apropiativo?
No apropiativo: cuando un proceso entra en CPU, ejecuta hasta terminar (o bloquearse). Nadie lo interrumpe.
Apropiativo (preemptive): el planificador puede arrebatarle la CPU si llega un proceso más prioritario o más corto. Permite mejor reparto pero exige más cambios de contexto.
FCFS y SJF clásico son no apropiativos. SRTF, Round Robin y Priority preemptive son apropiativos.
¿Qué es el convoy effect?
Es un fenómeno típico de FCFS: si un proceso de ráfaga muy larga llega primero, todos los demás esperan detrás aunque sean cortísimos. El tiempo medio de espera se dispara.
Carga el ejemplo «Convoy effect» (FCFS) y compara con SJF para verlo numéricamente.
¿Qué quantum elegir en Round Robin?
Si el quantum es muy pequeño hay demasiados cambios de contexto (overhead). Si es muy grande, RR degenera en FCFS. La regla práctica es que el quantum sea algo mayor que la mayoría de ráfagas cortas (~10-100 ms en sistemas reales).
Prueba el mismo conjunto de procesos con quantum 1, 2, 4 y 8 para ver el impacto.
¿Cómo se evita la inanición en Priority?
Con envejecimiento (aging): la prioridad de un proceso aumenta con el tiempo que lleva esperando. Así, tarde o temprano, hasta el de menor prioridad acaba siendo el más prioritario y entra en CPU.
Este simulador NO implementa aging, y con un lote finito de procesos todos acaban terminando: lo que se ve en el ejemplo de inanición es la postergación del menos prioritario, que es su síntoma.
¿Por qué SJF da el menor tiempo medio de espera?
Matemáticamente, ordenar los procesos por ráfaga creciente minimiza la suma de tiempos de espera (es un teorema clásico de scheduling). El precio es que necesitas conocer la ráfaga de antemano, lo cual no siempre es posible.
Los SO reales estiman la ráfaga futura con medias móviles exponenciales basadas en ráfagas pasadas.
¿Cómo usan estos algoritmos los sistemas operativos reales?
Linux usa el Completely Fair Scheduler (CFS), basado en árboles rojo-negro y noción de «tiempo virtual». Windows usa colas multinivel con Priority + envejecimiento. macOS combina prioridades con quantum dinámico. Casi nadie usa FCFS o SJF puros, pero son la base teórica imprescindible.
Round Robin sigue vivo en sistemas time-sharing y como base de muchos planificadores reales.
Cómo Calcular Tiempos a Mano — Paso a Paso
1
Construye el diagrama de Gantt
Aplica el algoritmo paso a paso. Para FCFS, ordena por llegada. Para SJF, en cada decisión elige el de menor ráfaga entre los disponibles. Anota inicio y fin de cada bloque.
2
Anota el momento de fin de cada proceso
Es el último momento en el que el proceso aparece en el Gantt. Para procesos apropiados (RR, SRTF), su última aparición.
3
Calcula el turnaround
Turnaround = fin − llegada. Es el tiempo total que el proceso ha vivido en el sistema desde que llegó hasta que terminó.
4
Calcula el tiempo de espera
Espera = turnaround − ráfaga. Es el tiempo que el proceso ha estado en la cola de listos sin ejecutar.
5
Calcula los promedios
Tiempo medio de espera = suma de esperas / número de procesos. Tiempo medio de turnaround = suma de turnarounds / número de procesos. Estos dos números son los que se piden en la mayoría de exámenes.
Mejores Prácticas
🎯Empieza siempre por el Gantt
Antes de calcular nada, dibuja el diagrama. Los errores casi siempre vienen de un Gantt mal construido, no de la aritmética.
⏱️Cuidado con los tiempos de llegada
Si la CPU está ociosa porque ningún proceso ha llegado, marca un bloque idle. No olvides ese tiempo al calcular utilización.
🔄En RR, define bien el orden de llegada a la cola
Si un proceso termina su quantum justo cuando otro llega, normalmente el recién llegado entra antes en la cola que el reincorporado.
📊Compara dos algoritmos con los mismos datos
La mejor forma de entender es coger el mismo conjunto de procesos y ejecutarlo con FCFS, SJF y RR. Anota tiempo medio de espera en cada uno.
⚠️SJF y SRTF requieren predicción
En la realidad no conoces la ráfaga futura. En problemas teóricos sí te la dan; en sistemas reales se estima con medias exponenciales.
🧠Memoriza las fórmulas
Espera = Turnaround − Ráfaga. Turnaround = Fin − Llegada. Respuesta = Inicio − Llegada. Con estas tres se resuelve cualquier ejercicio.
⚠️Errores frecuentes a evitar
Olvidar el tiempo idle cuando ningún proceso ha llegado todavía: si el primer proceso llega en t=2, los primeros dos ut son idle.
Confundir tiempo de espera con tiempo de respuesta: la espera es total en cola; la respuesta es solo hasta entrar por primera vez en CPU.
En Round Robin, mandar el proceso recién terminado al final de la cola en vez de al recién llegado primero (depende de la convención del libro).
En Priority, usar «mayor número = mayor prioridad» cuando el enunciado dice lo contrario. Lee siempre la convención del problema: este simulador usa 1 = la más alta, que es la de Silberschatz, así que si tu enunciado numera al revés tendrás que invertir los valores antes de teclearlos.
Calcular el tiempo medio dividiendo entre el número de unidades de tiempo en lugar del número de procesos.
No considerar la inanición en Priority: un examen casi seguro pregunta «¿hay inanición?» si hay procesos baja prioridad y otros que llegan continuamente.