Unidad II: Procesos, Planificación y Concurrencia
El concepto más importante en cualquier sistema operativo es el de proceso, una abstracción de un programa en ejecución[cite: 15]. En un sistema multiprogramado, la CPU conmuta de un proceso a otro con rapidez, dando la apariencia de pseudoparalelismo[cite: 20]. Un proceso puede estar en tres estados: En ejecución, Listo o Bloqueado[cite: 162, 163, 164, 165]. Además, el modelo se expande con los hilos, permitiendo varios hilos de control en el mismo espacio de direcciones[cite: 255].
1. ¿Qué evento desencadena estrictamente la transición de un proceso del estado "En ejecución" al estado "Listo"?
2. En cuanto al rendimiento, ¿cuál es la principal diferencia entre conmutar hilos a nivel usuario frente a hilos a nivel kernel?
El planificador de procesos decide qué proceso ejecutar cuando hay múltiples procesos listos[cite: 300, 301, 302]. El comportamiento de los procesos es clave: alternan ráfagas de CPU con esperas de E/S[cite: 340]. Los algoritmos pueden ser no apropiativos (el proceso no es suspendido forzosamente por reloj) o apropiativos (el proceso tiene un tiempo máximo fijo)[cite: 365, 366, 370].
3. ¿Qué factor fundamental distingue a un proceso "limitado a E/S" (I/O-bound) de uno "limitado a cálculos"?
4. El algoritmo de "Turno Circular" (Round-Robin) es ampliamente usado en sistemas interactivos. ¿Cómo gestiona el tiempo de la CPU?
La concurrencia trae desafíos como las condiciones de carrera, donde el resultado final depende del orden de ejecución [cite: 616], y el interbloqueo (deadlock)[cite: 612]. Para evitar esto, se usan herramientas de exclusión mutua, garantizando que solo un proceso entre a su sección crítica a la vez[cite: 611, 614]. Mecanismos incluyen semáforos, monitores y paso de mensajes[cite: 838, 882, 904].
5. ¿Cuál es la principal desventaja de usar instrucciones máquina especiales (como Test and Set) para lograr exclusión mutua?
6. ¿Qué diferencia fundamental hace que los Monitores sean frecuentemente preferidos por sobre los Semáforos en la programación concurrente?
7. En un sistema de paso de mensajes utilizando "direccionamiento indirecto", ¿cómo se envían los mensajes?