Sistemas operativos modernos

24. Muestre cómo pueden implementarse semáforos contadores (que pueden contener un valor arbitra­ rio), empleando sólo semáforos binarios e instrucciones de máquina ordinarias. 25. Si un sistema sólo tiene dos procesos, ¿tiene sentido usar una barrera para sincronizarlos? ¿Por qué sí o por qué no? 26. En la sección 2.3.4 describimos una situación con un proceso de alta prioridad. A, y uno de baja prio­ ridad, fi, en la que A entraba en un ciclo infinito. ¿Se presenta el mismo problema si se usa calenda­ rización por tumo circular en vez de por prioridad? Explique. 27. ¿Pueden sincronizarse dos subprocesos del mismo proceso con un semáforo de kemel si dicho ker­ nel implementa los subprocesos? ¿Y si se implementan en espacio de usuario? Suponga que ningún subproceso de otro proceso tiene acceso al semáforo. Explique sus respuestas. 28. La sincronización dentro de monitores se vale de variables de condición y dos operaciones especia­ les, wait y signal. Una forma más general de sincronización tendría una sola primitiva, waituntil con un predicado booleano arbitrario como parámetro. Así, se podría escribir, por ejemplo, waituntil x <Oo r > ' + z < n La primitiva signal ya no sería necesaria. Es obvio que este esquema es más general que el de Hoa­ re o Brinch Hansen, pero no se usa. ¿Por qué no? Sugerencia: Piense en la implementación. 29. Un restaurante de comida rápida tiene cuatro clases de empleados: 1) tomadores de órdenes de los clientes; 2) cocineros, que preparan la comida; 3) especialistas en envasado, que meten la comida en bolsas, y 4) cajeros, que entregan las bolsas a los clientes y les cobran. Cada empleado puede verse como un proceso secuencial comunicante. ¿Qué forma de comunicación entre procesos usan? Rela­ cione este modelo con los procesos de UNIX. 30. Suponga que se tiene un sistema de transferencia de mensajes que usa buzones. Si un proceso envía a un buzón lleno o trata de recibir de un buzón vacío, no se bloquea; simplemente recibe un código de error. El proceso responde al código con un nuevo intento, una y otra vez hasta tener éxito. ¿Este esquema puede llevar a condiciones de competencia? 31. En la solución del problema de la cena de filósofos (figura 2-20), ¿por qué se asigna HAMBRE a la variable de estado en el procedimiento tomarjenedorl 32. Considere el procedimiento dejarjenedor de la figura 2-20. Suponga que se asigna PENSANDO a la variable estado[i] después de las dos llamadas a probar, en lugar de a antes. ¿Cómo afectaría este cambio a la solución? 33. El problema de lectores y escritores puede formularse de varias formas en lo referente a qué catego­ ría de procesos puede iniciarse y cuándo. Describa en forma detallada tres variaciones del problema, en cada caso favoreciendo (o no favoreciendo) alguna categoría de procesos. Para cada variación, es­ pecifique qué sucede cuando un lector o un escritor queda listo para acceder a la base de datos, y qué sucede cuando un proceso termina de usarla. 34. Las computadoras CDC 6600 podían manejar hasta 10 procesos de E/S en forma simultánea utilizan­ do una forma interesante de calendarización por tumo circular, llamada compartímiento de proce­ sador. Se efectuaba una conmutación de procesos después de cada instrucción, así que la instrucción 1 provenía del proceso 1; la instrucción 2, del proceso 2, etc. La conmutación de procesos se efec-

RkJQdWJsaXNoZXIy MjI4NDcx