Sistemas operativos modernos
Las primitivas de comunicación entre procesos pueden servir para resolver problemas co mo el de productor-consumidor, cena de filósofos, lector-escritor y barbero dormilón. Incluso con estas primitivas, hay que tener cuidado para evitar errores y bloqueos irreversibles. Se conocen muchos algoritmos de calendarización. Algunos se usan primordialmente en sistemas por lotes, como el de trabajo más corto primero. Otros son comunes en sistemas tan to por lotes como interactivos, e incluyen la calendarización por tumo circular, por prioridades, de colas multinivel, garantizada, por lotería y de porción equitativa. Algunos sistemas separan con claridad el mecanismo de calendarización y la política de calendarización, lo que permite a los usuarios controlar el algoritmo de calendarización. PROBLEMAS 1. En la figura 2-2 se muestran tres estados de procesos. En teoría, si hay tres estados, podría haber seis transiciones, dos por cada estado. No obstante, sólo se muestran cuatro transiciones. ¿Hay circuns tancias en las que podría darse alguna de las transiciones fallantes, o ambas? 2. Suponga que debe diseñar una arquitectura de computadora avanzada que efectúe la conmutación de procesos en hardware, en lugar de tener iniemipciones. ¿Qué información necesitaría la CPU? Des criba cómo podría funcionar la conmutación de procesos por hardware. 3. En todas las computadoras actuales, al menos una parte de los manejadores de interrupciones se es cribe en lenguaje ensamblador. ¿Por qué? 4. Cuando una interrupción o una llamada al sistema transfiere el control al sistema operativo, por lo general se usa un área de la pila del kemel distinta de la pila del proceso interrumpido. ¿Por qué? 5. En el texto se dijo que el modelo de la figura 2-6a no era apropiado para un servidor de archivos que utiliza un caché en la memoria. ¿Por qué no? ¿Cada proceso podría tener su propio caché? 6 . En la figura 2-7 el conjunto de registros se presenta como un elemento por cada subproceso y no por cada proceso. ¿Por qué? Después de todo, la máquina sólo tiene un conjunto de registros. 7. Si un proceso con múltiples subprocesos se bifurca (fork), habrá problemas si el hijo obtiene copias de todos los subprocesos del padre. Supongamos que uno de los subprocesos originales estaba espe rando entradas del teclado. Ahora dos subprocesos están esperando lo mismo, uno en cada proceso. ¿Este problema llega a presentarse en procesos de un solo subproceso? 8 . En la figura 2-10 se muestra un servidor Web con múltiples subprocesos. Si la única manera de leer de un archivo es la llamada al sistema bloqueadora normal read, ¿cree que en el servidor se estén usando subprocesos en el nivel de usuario o en el nivel de kemel? ¿Por qué? 9. ¿Por qué un subproceso cedería la CPU de manera voluntaria invocando thread_yieldl Después de todo, al no haber interrupciones de reloj periódicas, podría ser que nunca recupere la CPU. 10. ¿Un subproceso puede ser expropiado por una interrupción de reloj? En tal caso, ¿en qué circunstan cias? Si no puede ser expropiado, explique la razón.
RkJQdWJsaXNoZXIy MjI4NDcx