option
Cuestiones
ayuda
daypo
buscar.php

SO - Preguntas clase T5

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
SO - Preguntas clase T5

Descripción:
Lunita lunera

Fecha de Creación: 2024/10/20

Categoría: Otros

Número Preguntas: 31

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

Sobre el siguiente código de implementación de semáforo, ¿Qué representa el campo bloqueados?. Una lista de procesos que están bloqueados esperando el semáforo. Los procesos que esperan que el contador del semáforo sea mayor que 0. Los procesos que han sido pausados temporalmente. Una cola FIFO que desbloquea procesos en orden de llegada. Un identificador único para cada proceso en espera.

En el siguiente fragmento de código de consumidor, ¿Cuáles de las siguientes afirmaciones son verdaderas?. El consumidor esperará si no hay elementos en el buffer. El semáforo vacias se incrementa cuando se retira un elemento del buffer. down(excmut) asegura que no haya otros consumidores en la sección crítica. up(excmut) desbloquea a otro proceso que necesita acceso exclusivo. consumir_elemento() forma parte de la sección crítica.

En el siguiente código de productor/consumidor, ¿Qué asegura este código?. La exclusión mutua está garantizada por el semáforo excmut. El productor esperará si no hay espacio disponible (semáforo vacías). El productor almacena un elemento antes de liberar el semáforo excmut. up(llenas) indica que hay al menos un elemento en el buffer. down(excmut) garantiza que no hay otros productores en la sección crítica.

Considera el siguiente fragmento. ¿Qué acciones realiza la función up() del semáforo?. Incrementa el contador si no hay procesos bloqueados. Desbloquea un proceso de la lista de bloqueados. Reanuda el proceso cuyo PID es obtenido de la lista de bloqueados. Si la lista de bloqueados está vacía, se reduce el valor del contador. Nunca desbloquea más de un proceso en cada ejecución.

¿Cuál es el problema principal de un sistema productor/consumidor con mensajes si no se gestiona el control de flujo?. El productor puede sobrecargar el buzón con demasiados mensajes. El consumidor puede quedarse bloqueado indefinidamente. El buzón puede ser llenado antes de que el consumidor reciba un mensaje. La capacidad del buzón no afecta el rendimiento del sistema. Se pierde paralelismo entre los procesos productor y consumidor.

¿Qué características describe mejor a un sistema que utiliza control pesimista?. Fuerza la exclusión mutua para evitar condiciones de carrera. Permite más paralelismo que el control optimista. Es preferible cuando los conflictos son frecuentes. Detecta y corrige condiciones de carrera una vez ocurridas. Obliga a los procesos a esperar, incluso si no es necesario.

¿Cuál es la principal ventaja de la implementación de monitores sobre semáforos?. La encapsulación de la lógica de coordinación. La garantía de exclusión mutua en métodos sin necesidad de semáforos. La capacidad de manejar variables de condición. La reanudación automática de procesos cuando una condición cambia. Menor complejidad en sistemas distribuidos.

En el siguiente fragmento de código, ¿cuáles de las siguientes afirmaciones son correctas?. El contador del semáforo se decrementa sólo si es mayor que 0. Si el contador es 0, el proceso actual se bloquea y se inserta en la lista de bloqueados. getpid() devuelve el ID del proceso actual. Esta función no es atómica, requiere mecanismos adicionales de sincronización. El proceso se desbloquea automáticamente una vez se incrementa el contador.

¿Cuál es el propósito de las variables de condición en los monitores?. Sincronizar procesos en espera de una condición específica. Reemplazar semáforos en el control de concurrencia. Garantizar la exclusión mutua entre procesos. Encapsular los métodos que acceden a recursos compartidos. Gestionar las señales emitidas entre procesos.

¿Cuál de las siguientes afirmaciones sobre la coordinación mediante mensajes es correcta?. Los mensajes actúan como un buzón entre procesos. Un buzón puede contener varios mensajes. Los procesos nunca se bloquean durante la operación send(). La capacidad de los buzones es ilimitada. La operación receive() se bloquea si el buzón está vacío.

¿Cuáles son los riesgos de no utilizar semáforos en la práctica de un productor/consumidor?. El productor podría sobrescribir datos no consumidos. El consumidor podría intentar leer un dato antes de que sea producido. Se podría generar un interbloqueo si se invierte el orden de operaciones. Los procesos podrían ejecutarse en paralelo sin coordinación. No se garantizaría la exclusión mutua en la sección crítica.

¿Cuáles son las principales diferencias entre semáforos contadores y semáforos binarios?. Los semáforos binarios solo permiten dos estados: abierto y cerrado. Los semáforos contadores permiten más de un proceso en espera. Los semáforos binarios no pueden manejar múltiples procesos. Ambos permiten operaciones up() y down() atómicas. Los semáforos binarios son más eficientes en entornos multiprocesador.

¿Cuáles son los principales inconvenientes de la implementación de monitores en Java?. notifyAll() reanuda todos los hilos, lo cual puede ser ineficiente. La necesidad de utilizar explícitamente synchronized en los métodos. No hay soporte para variables de condición como en otros lenguajes. La política de reanudación puede causar condiciones de carrera. Los monitores no son capaces de encapsular los recursos compartidos.

¿Qué solución propone el modelo de mensajes para garantizar la exclusión mutua?. Asociar un buzón a cada recurso compartido. Utilizar semáforos en combinación con mensajes. Limitar el número de mensajes en el buzón. Eliminar la necesidad de un buffer intermedio. Rechazar nuevos mensajes cuando el buzón esté lleno.

¿Cuál es la función principal de un monitor en la concurrencia?. Garantizar la exclusión mutua de los procesos que interactúan con el recurso. Gestionar variables de condución. Proporcionar exclusión mutua y lógica de coordinación en los métodos. Ser un mecanismo del sistema operativo. Reemplazar completamente el uso de semáforos.

¿Qué problema potencial surge si se invierte el orden de los siguientes semáforos en un productor/consumidor?. Interbloqueo entre procesos. Pérdida de sincronización entre productor y consumidor. Consumo de elementos sin haber sido producidos. Bloqueo del productor aunque haya espacio disponible. El sistema podría continuar sin errores aparentes.

¿Qué ventaja presenta la granularidad fina en el control de recursos mediante semáforos?. Mayor grado de paralelismo. Menor posibilidad de interbloqueo. Menor número de semáforos necesarios. Gestión más sencilla en sistemas multiprocesador. Evitar la espera ocupada.

¿Qué asegura que solo un proceso esté activo dentro de un método monitor?. El uso de semáforos binarios internos. La estructura de datos local. El monitor encapsula los mecanismos de exclusión. El uso de variables de condición en el monitor. El soporte del lenguaje de programación.

¿Qué soluciones pueden aplicarse para evitar condiciones de carrera en los métodos de bajo nivel?. Uso de semáforos binarios. Enmascarado de interrupciones. Suspensión de la conmutación de procesos. Instrucciones Test-and-Set (TS). Cerrojos sin planificación apropiativa.

¿Cuáles son los principales problemas de la espera ocupada cuando no hay exclusión mutua?. Violación de la exclusión mutua. Incremento en el uso de la CPU. Posible interbloqueo entre procesos. No afecta la eficiencia en sistemas monoprocesador. Las condiciones de carrera no son detectadas automáticamente.

¿Qué situaciones pueden hacer que una espera ocupada (busy waiting) sea aceptable?. En procesadores dedicados (microcontroladores). En sistemas monoprogramados con rutinas de interrupción. Cuando los tiempos de espera son significativamente inferiores a los de conmutación. Para evitar el uso de semáforos. En sistemas multiprocesadores con tiempos de espera altos.

¿Qué diferencia clave existe entre los métodos de control optimista y pesimista?. El control optimista asume la posibilidad de una condición de carrera y la corrige después. El control pesimista evita condiciones de carrera desde el principio. El control optimista permite más paralelismo. El control pesimista requiere menor intervención en el sistema operativo. Ambos métodos siempre requieren semáforos.

¿Cuáles son las características de los semáforos contadores?. Pueden manejar cualquier número de procesos bloqueados. Sólo permiten la exclusión mutua de un único proceso. Los semáforos up() y down() son operaciones atómicas. Se bloquea un proceso cuando el contador del semáforo es mayor a 0. No requieren soporte del sistema operativo para funcionar correctamente.

¿Cuál es la principal causa de una condición de carrera?. Actualización concurrente de un recurso compartido. Exclusión mutua forzada en la sección crítica. Utilización de un solo hilo de ejecución. Sincronización ineficaz entre procesos. Uso de semáforos binarios en lugar de contadores.

¿Cuáles son las características de la exclusión mutua?. Permitir que múltiples procesos accedan simultáneamente a un recurso compartido. Garantizar que solo un proceso esté en la sección crítica la vez. Introducir interrupciones durante la ejecución de la sección crítica. Aplicarse únicamente a procesos cooperativos. Puede ser gestionada mediante semáforos y monitores.

Considera el siguiente código de productor/consumidor con mensajes y semáforos. ¿Cómo se comporta este sistema en un entorno multiprocesador con múltiples productores y consumidores y qué optimizaciones podrían aplicarse?. Si el productor es más rápido que el consumidor, los mensajes podrían llenarse rápidamente y provocar la pérdida de mensajes. La operación down(vacias) asegura que el productor no sobrescriba datos en el buffer si está lleno. La instrucción send() podría ser no bloqueante, lo que permitiría al productor continuar enviando sin esperar confirmación. Las operaciones down(llenas) y up(vacias) aseguran que el consumidor no intente consumir mensajes si no hay disponibles. Se podría optimizar el paralelismo asignando diferentes buzones para cada productor y consumidor.

Analiza el siguiente código que utiliza monitores con múltiples variables de condición para un sistema productor/consumidor. ¿Qué problemas podrían surgir en un sistema con múltiples productores y consumidores y cómo se podrían solucionar?. Si varios productores intentan almacenar al mismo tiempo cuando el buffer está lleno, podría producirse una condición de carrera. Si varios consumidores llaman a wait(vacio) simultáneamente, todos podrían quedar bloqueados indefinidamente. Se podría mejorar el paralelismo permitiendo que múltiples productores y consumidores actúen sobre diferentes partes del buffer. El uso de múltiples señales signal() en almacenar() y extraer() puede causar que procesos se reanuden incorrectamente, generando condiciones de carrera. La sincronización entre wait() y signal() podría romperse si los procesos son interrumpidos en momentos críticos.

Considera el siguiente código que implementa un sistema de semáforos y una lista de procesos bloqueados. ¿Qué condiciones pueden causar un interbloqueo en este sistema de semáforos y cómo se podría resolver?. Si los procesos reanudados por up() intentan acceder simultáneamente al mismo semáforo. Si un proceso reanudado entra inmediatamente en la sección crítica y vuelve a bloquearse antes de liberar el semáforo. El interbloqueo podría ocurrir si los procesos se insertan en la lista de bloqueados de manera no ordenada. Se podría resolver utilizando prioridades para desbloquear primero a los procesos de mayor importancia. El uso de semáforos binarios en lugar de contadores reduciría la probabilidad de interbloqueo.

En el siguiente fragmento de código relacionado con monitores. ¿Cuáles de las siguientes afirmaciones son correctas?. El método espera hasta que se cumpla la condición. La sección sincronizada garantiza la exclusión mutua. wait() suspende el proceso hasta que se notifique un cambio. La condición debe comprobarse nuevamente después de reanudarse el proceso. La acción se ejecuta en paralelo con otros procesos.

En el siguiente fragmento de código de un productor/consumidor con mensajes. ¿Qué características tiene el comportamiento de este productor?. El productor genera un mensaje y lo envía al buzón. Si el buzón está lleno, el mensaje será rechazado. No hay control de flujo, por lo que el buzón puede sobrecargarse. send() es no bloqueante, lo que permite al productor continuar sin esperar. El productor también puede consumir los mensajes del buzón.

¿Qué asegura el uso de la instrucción wait() en los métodos sincronizados en Java?. Que un hilo espere hasta que se cumpla una condición guardada. Que el objeto asociado permanezca bloqueado durante la espera. Que todos los hilos en espera sean reanudados al mismo tiempo. Que la condición de espera se evalúe constantemente. Que solo un hilo pueda acceder al método a la vez.

Denunciar Test