t4 concurrencia Flashcards

1
Q
  1. En un sistema en el que N procesos compiten por M recursos, uno de los
    procesos necesita utilizar simultáneamente 2 recursos y el resto siempre los usa
    de uno en uno. Todos los procesos usan los recursos durante un tiempo finito.
    En esta situación:
    (a) Puede producirse interbloqueo si la reserva de los 2 recursos no se realiza
    en una operación indivisible.
    (b) No se puede producir interbloqueo en ningún caso.
    (c) Puede producirse interbloqueo si N>M.
    (d) Tarde o temprano se llegará irremisiblemente a un interbloqueo.
A

(b) No se puede producir interbloqueo en ningún caso

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Sean tres procesos A, B y C y dos recursos compartidos R1 y R2. ¿Cual de las siguientes secuencias de acciones llevaría a un interbloqueo? Nota: “bloquea”significa que el proceso intenta bloquear el recurso y se queda parado
    estaba bloqueado previamente. Cuando sea desbloqueado, entonces podrá continuar adelante con el recurso bloqueado.
    (a) A bloquea R1, C bloquea R2, B bloquea R1, C bloquea R1.
    (b) A bloquea R1, B bloquea R1, C bloquea R1
    (c) A bloquea R1, B bloquea R2, C bloquea R2, A bloquea R2, B bloquea a R1
    (d) Ninguna de las secuencias anteriores llevarían a un interbloqueo
A

(c) A bloquea R1, B bloquea R2, C bloquea R2, A bloquea R2, B bloquea a R1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Un programador escribe un programa que utiliza hilos Java en el que todos los accesos a una determinada estructura de datos compartida ha de hacerse dentro
de una región crítica de lectores/escritores. Por error, el programador olvida poner las llamadas para entrar y salir de la región crítica en una cierta parte del
programa que utiliza dicha estructura de datos. Cuando el programa se esté
ejecutando y se llegue a dicha parte del programa:
(a) Se generará una excepción de acceso concurrente, ya que no se ha
bloqueado previamente la estructura de datos.
(b) Se producirá una excepción de acceso concurrente, pero sólo si algún otro
hilo tiene bloqueada la estructura de datos como escritor en ese momento.
(c) Se producirá una excepción de acceso concurrente, pero sólo si algún otro
hilo tiene bloqueada la estructura de datos, bien como lector o bien como
escritor en ese momento.
(d) Ninguna de las respuestas anteriores es cierta.

A

D
Ninguna de las respuestas anteriores es cierta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

10.Si una solución al problema de la sección critica cumple la propiedad de espera
limitada:
(a) Cumplirá también la propiedad de progresión, ya que al garantizarse que
la espera es limitada, el proceso permanecerá en la sección critica un
tiempo finito.
(b) Cumplirá tanto la de progresión como la propiedad de exclusión muta.
(c) Indica que la decisión sobre el proceso que entra se toma en un tiempo
finito.
(d) Ninguna de las anteriores es cierta.

A

D Ninguna de las anteriores es cierta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cuando un proceso ejecuta un c.wait sobre una variable de condicion asociada a un cerrojo:
(a)
Si anteriormente otro proceso había ejecutado un c_signal sobre
ella, este proceso podrá continuar normalmente, consumiendo C_signal anterior.
(b)
Podría pasar al estado bloqueado.
(c)
Se decrementará el valor del contador asociado a la variable
condición, pasando el proceso a un estado bloqueado y sacando
otro proceso de la cola de procesos asociada a la variable
condición.
(d) Las afirmaciones son absurdas puesto que
se refieren
semáforos.

A

(b) Podría pasar al estado bloqueado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Si una solución al problema de la sección crítica cumple la propiedad de espera
    limitada:
    (a) Cumplirá también la propiedad de progresión, ya que al garantizarse que la
    espera es limitada, el proceso permanecerá en la sección critica un tiempo
    finito.
    (b) Cumplirá tanto la de progresión como la propiedad de exclusión muta.
    (c) Indica que la decisión sobre el proceso que entra se toma en un tiempo
    finito.
    (d) Ninguna de las anteriores es cierta
A

Si una solución al problema de la sección crítica cumple la propiedad de espera
limitada:
(d) Ninguna de las anteriores es cierta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

10.¿Qué condición de interbloqueo se deja de cumplir al obligar a los procesos a
solicitar los recursos en un orden jerárquico preestablecido?
(a) Espera Circular.
(b) Los recursos sólo los libera quien los tiene.
(c) Posesión y espera (asignación parcial ó hold and Wait)
(d) Exclusión mutua en el uso de los recursos.

A

¿Qué condición de interbloqueo se deja de cumplir al obligar a los procesos a
solicitar los recursos en un orden jerárquico preestablecido?
(a) Espera Circular.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. En un sistema en el que N procesos compiten por M recursos, uno de los procesos necesita utilizar simultáneamente 2 recursos y el resto siempre los usa de uno en uno. Todos los procesos usan los recursos durante un tiempo finito. En esta situación:
    (a) Puede producirse interbloqueo si la reserva de los 2 recursos no se realiza en
    una operación indivisible.
    (b) No se puede producir interbloqueo en ningún caso.
    (c) Puede producirse interbloqueo si N>M.
    (d) Tarde o temprano se llegará irremisiblemente a un interbloqueo.
A

(b) No se puede producir interbloqueo en ningún caso.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. En un sistema monoprocesador, indicar qué mecanismo de exclusión mutua es
    MENOS eficiente en cuanto al uso de CPU:
    (a) Mutex.
    (b) Espera activa hasta que cambie el valor de una variable.
    (c) Semáforos.
    (d) Todos los mecanismos anteriores son igual de ineficientes. La exclusión
    mutua no permite la concurrencia, con lo que la eficiencia se minimiza en
    todos los casos.
A

(b) Espera activa hasta que cambie el valor de una variable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Un programador escribe un programa Java que utiliza hilos en el que todos los
accesos a una determinada estructura de datos compartida han de hacerse dentro de una región critica de lectores/escritores. Por error, el programador olvida poner la
invocación a los métodos necesarios para entrar y salir de la región critica en una
cierta parte del programa que utiliza dicha estructura de datos. Cuando el programa
se esté ejecutando y se llegue a dicha parte del programa:
(a) El sistema operativo producirá una excepción, ya que no se ha bloqueado
previamente la estructura de datos.
(b) El sistema operativo producirá una excepción sólo si algún otro hilo tiene
bloqueada la estructura de datos como escritor en ese momento.
(c) El sistema operativo producirá una excepción sólo si algún otro hilo tiene
bloqueada la estructura de datos, bien como lector o bien como escritor en
ese momento.
(d) Ninguna de las respuestas anteriores es cierta.

A

(d) Ninguna de las respuestas anteriores es cierta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

La región crítica condicional es una herramienta de sincronización entre procesos
que..
(a) Está disponible en cualquier lenguaje de programación concurrente.
(b) Permite a un proceso salir de la región crítica temporalmente hasta que se
cumpla una determinada condición.
(c) Permite implementar exclusión mutua condicional (que algunas veces se
haga y otras no).
(d) Tiende a favorecer a los procesos que no evalúan la condición.

A

(b) Permite a un proceso salir de la región crítica temporalmente hasta que se
cumpla una determinada condición.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Una sección crítica es:
    (a) Una zona de memoria donde hay almacenadas variables compartidas.
    (b) Una secuencia de instrucciones.
    (c) Una herramienta de comunicación entre procesos.
    (d) Una variable que permite sincronizar un proceso.
A

(b) Una secuencia de instrucciones.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cual de las siguientes afirmaciones es correcta?
(a) La operación signal sobre un semáforo duerme al proceso/hilo llamante.
(b) Si se ejecutan consecutivamente dos operaciones signal sobre un semáfor
cuyo contador asociado tiene un valor inicial de 2, el valor final de dich
contador podria ser 3 o 4, dependiendo de cómo se produzcan los cambio
de contexto durante la modifiención del contador.
(c) Los semáforos son herramientas cuya única funcionalidad es resolver el
problema de la exclusión mutua y, por ello, el contador asociado al
semáforo siempre tiene inicialmente el valor 1.
(d) Una operación signal sobre un semáforo puede despertar a un proceso/hilo
que previamente haya quedado bloqueado en dicho semáforo, y esta
operación es atómica.

A

(d) Una operación signal sobre un semáforo puede despertar a un proceso/hilo
que previamente haya quedado bloqueado en dicho semáforo, y esta
operación es atómica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Un hilo ejecuta una operación wait sobre un semáforo, y se queda bloqueado. ¿Qué
conclusión podemos sacar con respecto al contador del semáforo?
(a) El contador del semáforo tenía valor O cuando ejecutó la operación.
(b) El contador del semáforo tenia valor 1 cuando ejecutó la operación.
(c) El contador del semáforo tenia un valor distinto de O cuando ejecutó la
operación.
(d) No podemos concluir nada, ya que dependerá de cuál fue la operación que se
ejecutó justo antes: signal o wait.

A

(a) El contador del semáforo tenía valor O cuando ejecutó la operación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Cuando dos secciones críticas no deben ejecutarse concurrentemente:
(a) Es suficiente con un cerrojo para garantizar que no se produzcan problemas de concurrencia entre ellas.
(b) Hacen falta dos cerrojos, uno para cada sección crítica, para
produzcan problemas de concurrencia entre ellas.
(c) Será necesario rediseñar el algoritmo para que sólo haya un
crítica y no dos.
(d) Todas las demás respuestas son falsas.

A

(a) Es suficiente con un cerrojo para garantizar que no se produzcan problemas de concurrencia entre ellas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. La llamada al sistema mmap de Unix:
    (a) Se puede utilizar para compartir datos en memoria entre varios procesos.
    (b) Se puede utilizar para incrementar el tamaño del área de intercambio (swap) del
    sistema.
    (c) Se puede utilizar para asignar más marcos de página a un proceso.
    (d) Todas las respuestas anteriores son falsas.
A

(a) Se puede utilizar para compartir datos en memoria entre varios procesos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Supongamos que para resolver cierto problema de concurrencia en java empleamos un monitor
(a) Una operación notify provocará el desbloqueo de otro hilo que haya realizado
operación wait del monitor y ambos continuarán su ejecución dentro del monitor.
(b) Una operación notify despierta a un hilo bloqueado por haber realizado una operac
wait y provoca el bloqueo del hilo que realiza el notify.
(c) Una operación wait provocará que el hilo que la realice se bloquee y libere el monitor.
(d) Todas las respuestas anteriores son falsas.

A

c) Una operación wait provocará que el hilo que la realice se bloquee y libere el monitor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q
  1. Dos hilos tienen dos secciones críticas independientes A y B. Entonces:
    (a) Un hilo puede estar dentro de A a la vez que el otro está dentro de B.
    (b) Si un hilo está dentro de A, el otro no puede estar dentro de B.
    (c) Un hilo puede estar dentro de A a la vez que el otro está dentro de B sólo si se utilizan
    semáforos binarios.
    (d) Un hilo puede estar dentro de A a la vez que el otro está dentro de B sólo si se establece
    comunicación entre los dos hilos.
A

(a) Un hilo puede estar dentro de A a la vez que el otro está dentro de B.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q
  1. Sean N hilos que comparten un semáforo binario. Entonces el número máximo de hilos que
    pueden estar bloqueados en dicho semáforo es:
    (a) 1.
    (6) 2.
    (c) N-1.
    (d) N.
A

(d) N.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q
  1. Con respecto a las operaciones de los semáforos P/wait/acquire o V/signal/release:
    (a) Son atómicas en todos los sistemas operativos.
    (b) En unos sistemas operativos son atómicas y en otros no.
    (c) Las aplicaciones que las usen deben encargarse de que sean atómicas.
    (d) No, nunca son atómicas.
A

(a) Son atómicas en todos los sistemas operativos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q
  1. La región critica condicional es una herramienta de sincronización entre procesos que.
    (a) Está disponible en cualquier lenguaje de programación concurrente.
    (b) Permite a un proceso salir de la región critica temporalmente hasta que se cum
    una determinada condición.
    (c) Permite implementar exclusión mutua condicional (que algunas veces se haga
    otras no).
    (d) Tiende a favorecer a los procesos que no evalúan la condición.
A

(b) Permite a un proceso salir de la región critica temporalmente hasta que se cum
una determinada condición.

22
Q

Cuando un proceso ejecuta un c wait sobre una variable de condición
asociada a un mutex:
(a) Si anteriormente otro proceso había ejecutado un c signal sobre
ella, este proceso podrá continuar normalmente, consumiendo el
c signal anterior.
(b)Podría pasar al estado bloqueado.
(C)Se decrementará el valor del contador asociado a la variable de
condición, pasando el proceso a un estado bloqueado y sacando a
otro proceso de la cola de procesos asociada a la variable de
condición.
(d) Las afirmaciones
son
absurdas puesto
que se refieren
a
semáforos.

A

(b) Podría pasar al estado bloqueado.

23
Q
  1. Varios hilos sincronizan el acceso a una región critica con el siguiente fragmento de
    código (m es un mutex ya inicializado y c es una variable de condición ya inicializada):
    while(1)
    … Otras cosas
    pthread mutex lock (&m) ;
    while (pthread cond wait (&c, &m) )
    .-
    • Región crítica
    pthread cond signal (&c) ;
    pthread mutex unlock (&m) ;
    Otras
    cosas
    Indiqué cuál de las siguientes afirmaciones relativas al fragmento de código anterior es
    cierta:
    (a) No tiene ningún problema de concurrencia.
    (b) Dos o más hilos podrían acceder simultáneamente a la región critica.
    (c) Ningún hilo podrá entrar en la región critica.
    (d) El primer hilo que llegue a este fragmento de código podrá acceder a la región
    crítica, pero luego ningún hilo más será capaz de entrar en la región critica.
A

(c) Ningún hilo podrá entrar en la región critica.

24
Q
  1. La región critica condicional es una herramienta de sincronización entre procesos que…
    (a) Está disponible en cualquier lenguaje de programación concurrente.
    (b) Permite a un proceso salir de la región critica temporalmente hasta que se cumpla una determinada condición.
    (c) Permite implementar exclusión mutua condicional (que algunas veces se haga y
    otras no).
    (d) Tiende a favorecer a los procesos que no evalúan la condición.
A

(b) Permite a un proceso salir de la región critica temporalmente hasta que se cumpla
una determinada condición.

25
Q

19.¿Qué condición de interbloqueo se deja de cumplir al obligar a los procesos a solicitar los
recursos en un orden jerárquico preestablecido?
(a) Espera Circular.
(b) Los recursos sólo los libera quien los tiene.
(c) Posesión y espera (asignación parcial ó hold and Wait)
(d) Exclusión mutua en el uso de los recursos.

A

(a) Espera Circular.

26
Q
  1. En relación con los mutex y las variables de condición de Pthread:
    (a) Dos hilos no pueden esperar simultáneamente a que se active una variable
    de condición, ya que ello implicaría que ambos tienen bloqueado a la vez
    el mutex asociado a la variable de condición, lo cual es imposible.
    (b) Si un hilo hace signal sobre una variable de condición y en ese momento
    no hay ningún hilo esperando en ella, dicho signal queda memorizado y
    despertará inmediatamente al próximo hilo que haga wait sobre la variable
    de condición.
    (c)
    Dos hilos que se ejecutan en procesos diferentes pueden compartir un
    mutex siempre que lo almacenen en una variable ubicada en una zona de
    memoria compartida obtenida mediante mmap().
    (d) Las respuestas anteriores son falsas.
A

(d) Las respuestas anteriores son falsas.

27
Q

Cuál de las siguientes afirmaciones acerca de las herramientas de comunicación y
sincronización de procesos es falsa?:
(a) Si un problema se puede resolver usando semáforos, entonces se puede
resolver usando regiones criticas condicionales.
(b) Si un problema se puede resolver mediante regiones criticas condicionales,
puede resolverse con las herramientas de hilos POSIX (mutex y variables
de condición asociadas).
(c) Si un problema se puede resolver usando regiones criticas, puede
resolverse con semáforos.
(d) Si un problema se puede resolver con regiones criticas condicionales, se
puede resolver con semáforos.

A

(d) Si un problema se puede resolver con regiones criticas condicionales, se
puede resolver con semáforos.

28
Q

17.¿ Cuál de las siguientes técnicas no ofrece tolerancia a fallos del dispositivo de
disco?:
(a) Raid 0.
(b) Raid 1.
(c) Raid 5.
(d) Conectar el disco a través de dos controladores.

A

A Raid 0

29
Q

18.En un sistema monoprocesador el contador asociado a un semáforo tiene el valor 0 En un cierto instante, hay dos procesos que están preparados, de forma que un …….. está a punto de ejecutar un SIGNAL sobre el semáforo, mientras que el otro está
punto de ejecutar un WAIT sobre el semáforo. Entonces:
(a) Si pasa a ejecución primero el proceso del SIGNAL y después el del
WAIT, el semáforo acabará teniendo el valor 1.
(b) Si pasa a ejecución primero el proceso del SIGNAL, el proceso del WAI
se bloqueará.
(c) En cualquiera de los posibles órdenes de ejecución, el valor final del
semáforo seguirá siendo el mismo.
(d) En cualquiera de los posibles órdenes de ejecución, alguno de los dos
procesos se bloqueará.

A

(c) En cualquiera de los posibles órdenes de ejecución, el valor final del
semáforo seguirá siendo el mismo.

30
Q

16.Cuando un proceso ejecuta un WAIT sobre una variable de condición asociada a un
mutex:
(a) Si anteriormente otro proceso habia ejecutado un SIGNAL sobre ella, este
proceso podrá continuar normalmente, consumiendo el SIGNAL anterior.
(b) Podría pasar al estado bloqueado.
(c) Se decrementará el valor del contador asociado a la variable de condición,
pasando el proceso a un estado bloqueado y sacando a otro proceso de la cola de
procesos asociada a la variable de condición.
(d) Las afirmaciones son absurdas puesto que se refieren a semáforos.

A

(b) Podría pasar al estado bloqueado.

31
Q

17.En un sistema en el que N procesos compiten por M recursos, uno de los procesos
necesita utilizar simultáneamente 2 recursos y el resto siempre los usa de uno en uno.
Todos los procesos usan los recursos durante un tiempo finito. En esta situación:
(a) Puede producirse interbloqueo si la reserva de los 2 recursos no se realiza en una
operación indivisible.
(b) No se puede producir interbloqueo en ningún caso.
(c) Puede producirse interbloqueo si N>M.
(d) Tarde o temprano se llegará irremisiblemente a un interbloqueo.

A

(b) No se puede producir interbloqueo en ningún caso.

32
Q

10.Considere un semáforo cuyo valor actual es 3. Una operación signal sobre el mismo….
(a) Deja un valor de 2 en el semáforo.
(b) Deja un valor de 4 en el semáforo.
(c) Deja un valor de 4 en el semáforo excepto si existen procesos en espera por el mismo, en cuyo caso queda con 3.
(d) Deja un valor de 4 en el semáforo y despierta a uno de los procesos en espera si
lo hay, en cuyo caso queda con 3.

A

(b) Deja un valor de 4 en el semáforo.

33
Q

16.En un programa que cuenta con N hilos se comparten M instancias de un cierto recurso
entre todos los hilos. El acceso a cada una de esas instancias ha de hacerse en exclusión
mutua y cualquiera de esas instancias es igualmente válida para el uso que le dan los hilos. Entonces:
(a) SiN>= M, nunca puede haber interbloqueo.
(b) Si cada hilo utiliza una sola instancia del recurso, nunca puede haber
interbloqueo.
(c)
Si los hilos reservan al principio todas las instancias que necesitan de una en
una y luego las liberan todas al final, nunca puede haber interbloqueo.
(d) Si en vez de acceder en exclusión mutua, los hilos acceden dentro de una región
critica de lectores/escritores como escritores, nunca puede haber interbloqueo.

A

(b) Si cada hilo utiliza una sola instancia del recurso, nunca puede haber
interbloqueo.

34
Q

17.En un sistema monoprocesador el contador asociado a un semáforo tiene el valor O. En
un cierto instante, hay dos procesos que están preparados, de forma que uno está a
punto de ejecutar un SIGNAL sobre el semáforo, mientras que el otro está a punto de
ejecutar un WAIT sobre el semáforo. Entonces:
(a) Si pasa a ejecución primero el proceso del SIGNAL y después el del WAIT, el
semáforo acabará teniendo el valor 1.
(b) Si pasa a ejecución primero el proceso del SIGNAL, el proceso del WAIT se
bloqueará.
(c) En cualquiera de los posibles órdenes de ejecución, el valor final del semáforo
seguirá siendo el mismo.
(d) En cualquiera de los posibles órdenes de ejecución, alguno de los dos procesos
se bloqueará.

A

(c) En cualquiera de los posibles órdenes de ejecución, el valor final del semáforo
seguirá siendo el mismo.

35
Q
  1. En relación con los mutex y las variables de condición de Pthread:
    (a) Dos hilos no pueden esperar simultáneamente a que se active una variable de
    condición, ya que ello implicaría que ambos tienen bloqueado a la vez el muter
    asociado a la variable de condición, lo cual es imposible.
    (b) Si un hilo hace signal sobre una variable de condición y en ese momento no hay
    ningún hilo esperando en ella, dicho signal queda memorizado y despertará
    inmediatamente al próximo hilo que haga wait sobre la variable de condición.
    (c)
    Dos hilos que se ejecutan en procesos diferentes pueden compartir un muter siempre
    que lo almacenen en una variable ubicada en una zona de memoria compartida
    obtenida mediante mmap().
    (d) Las respuestas anteriores son falsas.
A

(d) Las respuestas anteriores son falsas.

36
Q
  1. Una sección crítica es:
    (a) Una zona de memoria donde hay almacenadas variables compartidas.
    (b) Una secuencia de instrucciones.
    (c) Una herramienta de comunicación entre procesos.
    (d) Una variable que permite sincronizar un proceso.
A

(b) Una secuencia de instrucciones.

37
Q

¿Cuál de las siguientes afirmaciones acerca de las herramientas de comunicación y
sincronización de procesos es falsa?:
(a) Si un problema se puede resolver usando semáforos, entonces se puede
resolver usando regiones criticas condicionales.
(b) Si un problema se puede resolver mediante regiones criticas condicionales,
puede resolverse con las herramientas de hilos POSIX (mutex y variables
de condición asociadas).
(c) Si un problema se puede resolver usando regiones críticas, puede
resolverse con semáforos.
(d) Si un problema se puede resolver con regiones críticas condicionales, se
puede resolver con semáforos.

A

(d) Si un problema se puede resolver con regiones críticas condicionales, se
puede resolver con semáforos.

38
Q

Cuando desde el programa principal de una aplicación se crea un hilo nuevo
mediante la función pthread create0:
(a) El programa principal se queda detenido hasta que el hilo en cuestión finalice
su ejecución.
(b) El programa principal prosigue su ejecución en paralelo con el nuevo hilo.
(c) El programa principal finaliza su ejecución.
(d) El nuevo hilo comienza su ejecución en cuanto el programa principal llame a
la función pthread joinO.

A

(b) El programa principal prosigue su ejecución en paralelo con el nuevo hilo.

39
Q

14.En un sistema monoprocesador, indicar qué mecanismo de exclusión mutua es
MENOS eficiente en cuanto al uso de CPU:
(a) Mutex.
(b) Espera activa hasta que cambie el valor de una variable.
(c)Semáforos.
(d) Todos los mecanismos anteriores son igual de ineficientes. La exclusión
mutua no permite la concurrencia, con lo que la eficiencia se minimiza en
todos los casos.

A

(b) Espera activa hasta que cambie el valor de una variable.

40
Q

15.La región critica condicional es una herramienta de sincronización entre procesos
que..
(a) Está disponible en cualquier lenguaje de programación concurrente.
(b) Permite a un proceso salir de la región critica temporalmente hasta que se
cumpla una determinada condición.
(c) Permite implementar exclusión mutua condicional (que algunas veces se
haga y otras NO).
(d) Tiende a favorecer a los procesos que no evalúan la condición.

A

(b) Permite a un proceso salir de la región critica temporalmente hasta que se
cumpla una determinada condición.

41
Q

16.Una sección crítica es:
(a) Una zona de memoria donde hay almacenadas variables compartidas.
(b) Una secuencia de instrucciones.
(c) Una herramienta de comunicación entre procesos.
(d) Una variable que permite sincronizar un proceso.

A

(b) Una secuencia de instrucciones.

42
Q

Indique que afirmación es verdadera respecto al uso de la herramienta de región crítica:

Seleccione una:

Una vez que un hilo entre dentro de una región crítica puede realizar cualquier operación bloqueante, pues en cuando lo hace es expulsado de la región crítica.

La región crítica debe abarcar la mínima cantidad de instrucciones que sean suficientes para realizar el trabajo necesario.

Cuando un hilo quiere entrar en una región crítica que ya está ocupada, esperará un tiempo finito, y pasado ese tiempo se expulsa al hilo que ocupa la región crítica para que pueda entrar el siguiente.

Cuantas más instrucciones haya dentro de una región crítica, menos probabilidades hay de tener problemas de concurrencia.

A

La región crítica debe abarcar la mínima cantidad de instrucciones que sean suficientes para realizar el trabajo necesario.

Correcto: Cuantas menos instrucciones se ejecuten dentro de la región crítica, menos tiempo permanecen bloqueados los hilos que están intentando entrar cuando ya hay otro hilo dentro.

43
Q

¿Qué aporta la herramienta región crítica condicional a la herramienta región crítica?

Seleccione una:

La posibilidad de que varios hilos puedan estar evaluando una condición de forma simultánea dentro de la región crítica.

La posibilidad incluir, entre las instrucciones que forman parte de la región crítica, una operación de espera que dejaría al hilo bloqueado.

La posibilidad de entrar en la región crítica solo si se cumple una condición.

Que exista más concurrencia, pues cuando se cumple la condición varios hilos pueden estar dentro de la región crítica

A

La posibilidad incluir, entre las instrucciones que forman parte de la región crítica, una operación de espera que dejaría al hilo bloqueado.

Correcto. En java esa operación es el método wait() sobre el objeto que se usa para definir la región crítica con la sentencia synchronized, o bien el método await() si se usan cerrojos y variables de condición.

44
Q

Dada la siguiente secuencia de operaciones, en java, sobre un semáforo s:
P1 ejecuta s.acquire()
P2 ejecuta s.release()
P3 ejecuta s.release()
P2 ejecuta s.acquire()
P3 ejecuta s.acquire().
¿Cuántos procesos pueden llegar a quedarse bloqueados?
Seleccione una:

Esa secuencia de ejecución es imposible puesto que lleva a interbloqueo.

Al menos un proceso se quedará bloqueado en algún momento, al haber un acquire más que release.

No tenemos suficientes datos para poder determinar cuántos procesos pueden quedarse bloqueados, puesto que no sabemos el estado inicial del semáforo.

Como mucho, un proceso se quedará bloqueado, al haber únicamente un acquire más que release.

A

No tenemos suficientes datos para poder determinar cuántos procesos pueden quedarse bloqueados, puesto que no sabemos el estado inicial del semáforo.
Correcto. Sin saber cómo están el contador y la cola de procesos asociados al semáforo en el momento que se ejecuta esa secuencia de operaciones, no es posible determinar lo que va a pasar.

45
Q

En un sistema monoprocesador, el contador asociado a un semáforo tiene el valor 0. En ese instante, hay dos procesos que están preparados, de forma que uno está a punto de ejecutar un SIGNAL sobre el semáforo, mientras que el otro está a punto de ejecutar un WAIT sobre el semáforo. Entonces:
Seleccione una:

Si pasa a ejecución primero el proceso del SIGNAL, el proceso del WAIT se bloqueará.

Si pasa a ejecución primero el proceso del SIGNAL y después el del WAIT, el contador asociado al semáforo acabará teniendo el valor 1.

En cualquiera de los posibles órdenes de ejecución, el valor final del semáforo seguirá siendo el mismo.

En cualquiera de los posibles órdenes de ejecución, alguno de los dos procesos permanecerá bloqueado después de que se hayan ejecutado las dos acciones.

A

En cualquiera de los posibles órdenes de ejecución, el valor final del semáforo seguirá siendo el mismo.
Correcto. Si primero se ejecuta el SIGNAL, el semáforo pasará a 1, y luego el WAIT lo devolverá a 0 (además, sin bloquear al proceso). Si primero se ejecuta el WAIT, el proceso se bloqueará (pero el semáforo se mantendrá a 0) y el posterior SIGNAL desbloqueará al primer proceso (sin alterar el valor del semáforo).

46
Q

En relación con los cerrojos y las variables de condición de java, ¿cuál de las siguientes afirmaciones es verdadera?
Seleccione una:

Las demás afirmaciones son falsas.

Cuando se ejecuta el método signalAll sobre una variable de condición, despiertan todos los hilos que hubieran ejecutado un await sobre ella, pero sólo uno de ellos conseguirá bloquear el cerrojo correspondiente a dicha variable de condición y, por tanto, es el único que podrá progresar.

Dos hilos no pueden esperar simultáneamente a que se active una variable de condición, ya que ello implicaría que ambos tienen bloqueado a la vez el cerrojo correspondiente a la variable de condición, lo cual es imposible.

Si un hilo ejecuta el método signal sobre una variable de condición y en ese momento no hay ningún hilo esperando en ella, dicho signal queda memorizado y despertará inmediatamente al próximo hilo que ejecute el método await sobre la variable de condición.

A

Cuando se ejecuta el método signalAll sobre una variable de condición, despiertan todos los hilos que hubieran ejecutado un await sobre ella, pero sólo uno de ellos conseguirá bloquear el cerrojo correspondiente a dicha variable de condición y, por tanto, es el único que podrá progresar.
Correcto. Al despertar, todos ellos vuelven a competir por bloquear el cerrojo. Uno de ellos podrá conseguirlo para seguir adelante, pero los demás se quedarán bloqueados en el cerrojo, hasta que este sea liberado, continuando después alguno de los que están esperando.

47
Q

Cuando un hilo de java ejecuta await sobre una variable de condición asociada a un cerrojo:
Seleccione una:

Todas las demás afirmaciones son absurdas puesto que se refieren a semáforos.

Se decrementará el valor del contador asociado a la variable de condición, pasando el hilo a un estado bloqueado y sacando a otro hilo de la cola asociada a la variable de condición.

Podría pasar al estado bloqueado.

Si anteriormente otro proceso había ejecutado un signal sobre ella, este hilo podrá continuar normalmente, consumiendo el signal anterior.

A

Podría pasar al estado bloqueado.
Correcto. De hecho, lo hará.

48
Q

¿Cuál de las siguientes afirmaciones acerca de las herramientas de comunicación y sincronización de procesos es falsa?
Seleccione una:

Si un problema se puede resolver mediante regiones críticas condicionales, puede resolverse mediante los cerrojos y variables de condición asociadas de java.

Si un problema se puede resolver usando semáforos, entonces se puede resolver usando regiones críticas condicionales.

Si un problema se puede resolver con regiones críticas condicionales, se puede resolver con semáforos.

Si un problema se puede resolver usando regiones críticas, puede resolverse con semáforos.

A

Si un problema se puede resolver con regiones críticas condicionales, se puede resolver con semáforos.
Correcto, esta afirmación es falsa. El semáforo no es tan potente como la región crítica condicional, si bien en algunos casos permite llegar a una solución que puede ser más eficiente.

49
Q

Sea un cerrojo de lectores/escritores en java sobre el que aún no se ha ejecutado ninguna operación previa. Sobre él se ejecutan las siguientes operaciones:
el hilo H1 ejecuta cerrojo.readLock().lock()
el hilo H2 ejecuta cerrojo.readLock().lock()
el hilo H3 ejecuta cerrojo.writeLock().lock()
el hilo H2 ejecuta cerrojo.readLock().unlock()
el hilo H3 ejecuta cerrojo.writeLock().unlock()
Indique cuál de las siguientes afirmaciones es correcta
Seleccione una:

El hilo H3 no puede ejecutar cerrojo.writeLock().unlock() en ese momento porque se habrá quedado bloqueado cuando ejecutó cerrojo.writeLock().lock().

El hilo H3 no se quedará bloqueado al ejecutar cerrojo.writeLock().lock(), puesto que es el primero en bloquear el cerrojo de escritores, ya que H1 y H2 han bloqueado el cerrojo de lectores (que es distinto).

El hilo H3 continuará su ejecución cuando H2 ejecute cerrojo.writeLock().unlock(), puesto que al haber sido H2 el último hilo en bloquear el cerrojo como lector, es él el que lo libera.

Cuando el hilo H2 ejecute cerrojo.readLock().lock(), se quedará bloqueado, puesto que el cerrojo está bloqueado en ese momento por H1.

A

El hilo H3 no puede ejecutar cerrojo.writeLock().unlock() en ese momento porque se habrá quedado bloqueado cuando ejecutó cerrojo.writeLock().lock().
Correcto. H3 sólo podrá continuar su ejecución después de ejecutar cerrojo.writeLock().lock() cuando todos los lectores que hayan bloqueado el cerrojo, lo liberen, y sólo H2 lo ha liberado, no así H1.

50
Q

¿En cuál de las siguientes situaciones es posible que se produzca interbloqueo?
Seleccione una:

N procesos comparten M recursos a los que acceden en exclusión mutua, y nunca ocurre que un proceso intente obtener el recurso i teniendo bloqueado el recurso i + k, para cualesquiera valores de i y k entre 1 y M.

N procesos comparten 2 recursos a los que acceden en exclusión mutua. Hay un proceso que, cuando necesita usar los dos recursos al mismo tiempo, primero solicita el acceso al recurso 1 y luego al recurso 2, mientras que los demás solicitan primero el recurso 2 y luego el recurso 1.

N procesos comparten M recursos a los que acceden en exclusión mutua, pero nunca usan dos recursos al mismo tiempo.

Un proceso utiliza un recurso compartido en exclusión mutua con el resto, pero los demás pueden acceder concurrentemente a él.

A

N procesos comparten 2 recursos a los que acceden en exclusión mutua. Hay un proceso que, cuando necesita usar los dos recursos al mismo tiempo, primero solicita el acceso al recurso 1 y luego al recurso 2, mientras que los demás solicitan primero el recurso 2 y luego el recurso 1.
Correcto. Si el primer proceso toma el recurso 1 y luego otro proceso toma el recurso 2, cuando el primero intente obtener el recurso 2, se quedará bloqueado. Cuando el segundo proceso intente conseguir el recurso 1, lo encontrará bloqueado por el primer proceso y se quedará bloqueado también, dándose una espera circular y, por tanto, un interbloqueo entre esos dos procesos.

51
Q

Sean tres procesos A, B y C y dos recursos compartidos R1 y R2. ¿Cuál de las siguientes secuencias de acciones llevaría a un interbloqueo? Nota: “bloquea” significa que el proceso intenta bloquear el recurso y se queda parado si ya estaba bloqueado previamente. Cuando sea desbloqueado, entonces podrá continuar adelante con el recurso bloqueado.
Seleccione una:

A bloquea R1, B bloquea R2, C bloquea R2, A bloquea R2, B bloquea R1.

A bloquea R1, B bloquea R1, C bloquea R1.

A bloquea R1, C bloquea R2, B bloquea R1, C bloquea R1.

Ninguna de las secuencias propuestas llevarían a un interbloqueo.

A

A bloquea R1, B bloquea R2, C bloquea R2, A bloquea R2, B bloquea R1.
Correcto. Se produce una espera circular entre A y B y, por tanto, se puede producir interbloqueo.