TestConculentes3
|
|
Título del Test:
![]() TestConculentes3 Descripción: Examen 23-24 Ordinaria |



| Comentarios |
|---|
NO HAY REGISTROS |
|
Para que un programa concurrente sea correcto, deben cumplirse las siguientes propiedades: Seguridad e inanición. Viveza y seguridad. Interbloqueo e inanición. Exlusión mútua y viveza. La exclusión mutua mediante inhibición de interrupciones: Garantiza la ausencia de inanición. Mejora el rendimiento de las aplicaciones. No puede utilizarse en sistemas multiprocesador. Únicamente garantiza la exclusión mutua en operaciones de E/S. El algoritmo de exclusión mutua de Dekker: Está orienado a entornos distribuidos. Está orientado a entornos centralizados. Es válido para n procesos con apenas modificaciones. Presenta situaciones en las que puede no garantizar las propiedades de viveza. El problema de interbloqueo: Solo tiene solución si se resuelve mediante el uso de semáforos. Solo tiene solución si se resuelve mediante el uso de monitores. Solo tiene solución si se resuelve mediante el uso de algoritmos de espera ocupada. El resto de respuestas son falsas. En términos de eficiencia: Los algoritmos de espera ocupada son más eficientes que los semáforos. Los monitores son más eficientes que los semáforos. A priori, no puede determinarse qué técnica de sincronización es la más eficiente. La eficiencia de los semáforos depende exclusivamente de la CPU. La operación wait(s): Bloquea el proceso que la ejecuta si s=1. Bloquea el proceso que la ejecuta si s=0;. Decrementa el valor de s y entonces bloquea el proceso si s=0. Si s=0 decrementa el valor de s y bloquea el proceso. La gestión de los procesos bloqueados en un semáforo: Debe ser siempre FIFO para evitar la inanición. Puede ser FIFO o LIFO. El Sistema Operativo desbloqueará los procesos en función de la prioridad. Mediante el uso de semáforos, los procesos no pasan a estado bloqueado. Un semáforo “s” inicializado al valor 2: Permite que dos procesos estén simultáneamente en su sección crítica. Dos procesos podrán ejecutar wait(s) sin bloquearse. Los semáforos se inicializan siempre a valor 1. El primer proceso que alcance la sentencia wait podrá acceder a su sección crítica. Los monitores requieren de la utilización y definición de dos tipos de procesos: Procesos bloqueados y procesos bloqueantes. Procesos activos y procesos pasivos. Procesos padre y procesos hijo. Proceso monitor y proceso principal. Un interbloqueo (deadlock) se produce: cuando todos los procesos están esperando que ocurra un evento que nunca se producirá. si el resultado de la secuencia depende de la llegada relativa a algún punto crítico en la secuencia. cuando existe un grupo de procesos que nunca progresan pues no se les otorga tiempo de procesador para avanzar. Cuando los procesos se ceden el turno el uno al otro, mediante espera ocupada. En la semántica resume & exit, el proceso desbloqueado por resume(v) es: El primer proceso que estuviera bloqueado en la cola de la variable de condición v. El primer proceso que estuviera esperando para acceder al monitor. El sistema elige aleatoriamente entre los procesos bloqueados en la variable condición v y el acceso al monitor. Depende de como se haya implementado dicha semántica por el lenguaje de programación. ¿Qué es una condición de carrera en la programación concurrente?. Es cuando dos procesos se bloquean mutuamente al esperar un recurso que el otro proceso tiene. Es cuando un proceso se mantiene esperando indefinidamente por un recurso. Es cuando el resultado de la ejecución depende del orden específico en el que se ejecutan las instrucciones. Es cuando un proceso no recibe suficiente tiempo de CPU para realizar su trabajo. En la instrucción de espera selectiva select, el proceso que la ejecuta se bloquea si: No se cumple ninguna de las guardas, si las tuviera. No disponga de alternativa else. No existe ningún mensaje en los buzones/canales que se manejan. La instrucción select no genera bloqueo del proceso. El paso de mensajes síncrono permite la comunicación: Uno a uno. Uno a muchos. Muchos a muchos. Muchos a uno. En las llamadas a procedimiento remoto (RPC), la invocación al resguardo del cliente: Siempre genera el bloqueo del proceso que realiza la invocación. Debe garantizar que existe concordancia entre los parámetros. No requiere de conexión entre cliente y servidor. La invocación se realiza siempre a un módulo que se encuentra en otro sistema. |





