Sistemas operativos modernos
44. Un sistema de tiempo real no estricto tiene cuatro sucesos con periodos de 50, 100, 200 y 250 ms, respectivamente. Suponga que los cuatro sucesos requieren 35, 20, 10 y x ms de tiempo de CPU, res pectivamente. ¿Cuál es el valor más alto de x con el cual todavía se puede calendarizar el sistema? 45. Explique por qué es común el uso de la calendarización de dos niveles. 46. Considere un sistema en el que se desea separar la política y el mecanismo para la calendarización de subprocesos de kernel. Proponga una forma de lograr este objetivo. 47. Escriba un script de shell que produzca un archivo de números sucesivos, leyendo el último número del archivo, sumándole 1 y anexándolo al archivo. Ejecute una instancia de dicha secuencia de comandos en segundo plano y otra en primer plano, ambas teniendo acceso al mismo archivo. ¿Cuán to tarda en manifestarse una condición de competencia? ¿Cuál es la región crítica? Modifique la secuencia de comandos de modo que se evite la competencia (sugerencia: use In file file.lock para bloquear el archivo de datos). 48. Suponga que tiene un sistema operativo que ofrece semáforos. Implemente un sistema de mensajes. Escriba los procedimientos para enviar y recibir mensajes. 49. Resuelva el problema de la cena de filósofos empleando monitores en lugar de semáforos. 50. Suponga que una universidad quiere presumir de lo políticamente correcta que es, aplicando la doctri na de la Suprema Corte de Estados Unidos “separados pero iguales implica desigualdad” no sólo en cuestiones de raza sino también de género, terminando su añeja práctica de tener sanitarios segrega dos por género en el campus. No obstante, como concesión a la tradición, se decreta que cuando una mujer está en un sanitario, pueden entrar otras mujeres, pero ningún hombre, y viceversa. Un letrero deslizante en la puerta de cada sanitario indica en cuál de los tres posibles estados se encuentra: • Vacío • Hay mujeres • Hay hombres En su lenguaje de programación favorito, escriba los siguientes procedimientos: mujer_quiere_en- irar, hombre_quiere_entrar, mujer_sale y hombre_sale. Puede usar los contadores y técnicas de sin cronización que desee. 51. Rescriba el programa de la figura 2-20 de modo que maneje más de dos procesos. 52. Escriba un problema de productor-consumidor que utilice subprocesos y comparta un mismo búfer, pero no use semáforos ni otras primitivas de sincronización para proteger las estructuras de dalos compartidas. Simplemente deje que cada subproceso tenga acceso a ellas cuando quiera. Utilice sIeep y wakeup para manejar las condiciones de lleno y vacío. Determine cuánto tarda en presen tarse una condición de competencia. Por ejemplo, podría hacer que el productor imprima un número cada cierto tiempo. No imprima más de un número por minuto porque la E/S podría afectar la con dición de competencia. 53. Un proceso puede colocarse en una cola de tumo circular más de una vez para aumentar su priori dad. La ejecución de múltiples instancias de un programa, cada una de las cuales trabaja con una par te distinta de un conjunto de datos, puede tener el mismo efecto. Primero escriba un programa que pruebe una lista de números para determinar si son primos. Luego idee un método para que múltiples
RkJQdWJsaXNoZXIy MjI4NDcx