Cuestiones
ayuda
option
Mi Daypo

TEST BORRADO, QUIZÁS LE INTERESEOk

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del test:
Ok

Descripción:
practica para examen

Autor:
k
(Otros tests del mismo autor)

Fecha de Creación:
15/06/2020

Categoría:
Otros

Número preguntas: 121
Comparte el test:
Facebook
Twitter
Whatsapp
Comparte el test:
Facebook
Twitter
Whatsapp
Últimos Comentarios
No hay ningún comentario sobre este test.
Temario:
¿Cuáles de las siguientes situaciones se asemejaría a un problema de inanición en un partido de fútbol? Un jugador saca de banda antes de que se lo indique el árbitro. El balón se marcha a las gradas, pero nadie lo devuelve y el partido no puede continuar. Hay un jugador al que nunca se le pasa el balón, por lo que no puede participar. El portero tiene el balón en sus manos y un jugador del equipo rival intenta quitárselo para meter gol.
¿A qué clase de problemas corresponden los términos exclusión mutua, interbloqueo activo e interbloqueo pasivo? La exclusión mutua es un problema de seguridad, el interbloqueo activo es un problema de seguridad y el interbloqueo pasivo es un problema de viveza. La exclusión mutua es un problema de seguridad, el interbloqueo pasivo es un problema de seguridad y el interbloqueo activo es un problema de viveza. La exclusión mutua es un problema de viveza, el interbloqueo activo es un problema de seguridad y el interbloqueo pasivo es un problema de viveza. La exclusión mutua es un problema de viveza, el interbloqueo activo es un problema de viveza y el interbloqueo pasivo es un problema de seguridad.
Un sistema monoprocesador... Es un sistema en el que los procesos se ejecutan de manera paralela y donde cada procesador puede acceder a una memoria común y procesamiento distribuido. Es un sistema en el que los procesos se ejecutan de manera concurrente y en la que todos que estos comparten la misma memoria. Es un sistema en el que los procesos se ejecutan de manera concurrente y en la que todos que estos pueden acceder a una memoria distinta. Es un sistema en el que los procesos se ejecutan de manera concurrente y donde cada procesador puede acceder a una memoria común y procesamiento distribuido.
Supongamos que disponemos del siguiente conjunto de instrucciones: S1-> a = a +b S2-> b = a +1 S3-> y = b -2 Aplicando las condiciones de Bernstein, seleccione la respuesta correcta: Las instrucciones S1 y S2 se pueden ejecutar concurrentemente. Las instrucciones S1 y S3 se pueden ejecutar concurrentemente. Las instrucciones S2 y S3 se pueden ejecutar concurrentemente Ninguna instrucción puede ejecutarse concurrentemente debido a que no se cumplen las condiciones de Bernstein.
¿Cuál de las siguientes definiciones NO corresponde a una propiedad de seguridad en la corrección de programas concurrentes? El sistema hace progresos, pero existen procesos que no obtienen tiempo de CPU para avanzar. Si un proceso adquiere un recurso, otros procesos que quieran utilizarlo esperarán a que sea liberado. Espera infinita de los procesos a un evento que no ocurrirá. Garantizar la espera de un proceso a la ocurrencia de un evento necesario para continuar su ejecución.
En base a la definición de proceso, señale la correcta: Proceso es una actividad asíncrona susceptible de ser asignada a un procesador. Proceso es una actividad síncrona susceptible de ser asignada a un procesador. Proceso es una actividad estática susceptible de ser asignada a un procesador. Ninguna es correcta.
Un programa paralelo es: Un conjunto de acciones que pueden ser ejecutadas simultáneamente. Un tipo de programa concurrente diseñado para ejecutarse en un sistema multiprocesador. Un tipo de programa que está diseñado para ejecutarse en un sistema distribuido. Un conjunto de acciones que pueden ser ejecutadas paralelamente.
Para que dos conjuntos de instrucciones Si y Sj se puedan ejecutar concurrentemente, se tiene que cumplir que: L(Si) ∧ E(Sj) = Ø E(Si) ∧ L(Sj) = Ø E(Si) ∧ E(Sj) = Ø L(Si) ∧ E(Sj) = Ø L(Si) ∧ L(Sj) = Ø E(Si) ∧ E(Sj) = Ø L(Si) ∧ E(Sj) = Ø E(Si) ∧ L(Sj) = Ø L(Si) ∧ L(Sj) = Ø L(Si) ∧ E(Sj) = Ø E(Si) ∧ L(Sj) = Ø E(Si) ∧ E(Sj) != Ø.
¿Por qué los algoritmos de Peterson y Dekker no funcionarían en un ordenador moderno? Debido a que los ordenadores modernos utilizan arquitectura ARM6. Porque estos algoritmos tienen fallos en su estructura, por lo que no funcionarían para ordenadores antiguos tampoco. Debido a que los procesadores modernos no garantizan que las instrucciones se ejecuten en orden. Debido a que estos algoritmos son una solución hardware que no se implementa en los procesadores modernos.
¿Qué algoritmo elimina el problema de la espera ocupada? Algoritmo de Peterson. Algoritmo de Lamport. Algoritmo de Dekker. Ninguno de ellos.
¿Cuál de las siguientes NO es una propiedad de seguridad? Exclusión mutua. Inanición. Interbloqueo pasivo. Condición de sincronización.
Las propiedades de seguridad en programas concurrentes son: Exclusión mutua, interbloqueo activo e inanición. Exclusión mutua, interbloqueo pasivo y condición de sincronización. Exclusión mutua, inexistencia de interbloqueos e interbloqueo pasivo. Orden parcial de ejecución de instrucciones e indeterminismo.
¿Cuales son las propiedades de viveza? Interbloqueo activo, inanición y exclusión. Condición de sincronización e interbloqueo pasivo. Interbloqueo activo e inanición. Interbloqueo activo e interbloqueo pasivo.
Un programa diseñado para ejecutarse en una red de procesadores autónomos que no comparten memoria común es: Un programa paralelo. Un programa distribuido. Un programa concurrente. Un programa multiprocesador.
¿Qué significa que un programa sea concurrente? Un programa concurrente es aquel que define un conjunto de acciones que pueden ser ejecutadas simultáneamente. Un programa concurrente es un programa diseñado para ejecutarse en un sistema multiprocesador. Un programa concurrente es un tipo de programa paralelo que está diseñado para ejecutarse en un sistema distribuido, es decir, en una red de procesadores autónomos que no comparten una memoria común. Un programa concurrente no puede ser distribuido.
Un programa concurrente Está diseñado específicamente para ejecutar dos acciones simultáneas. Está diseñado específicamente para ejecutarse en un sistema distribuido. Está diseñado para ejecutar un conjunto de acciones simultáneamente. Ninguna de las anteriores es correcta.
Para saber si un programa se puede ejecutar concurrentemente se emplea: Las condiciones de Bernstein . El algoritmo de Peterson. El algoritmo de Dekker. TestAndSet.
Cuál de estas no es una condición para que se produzca la exclusión mutua: Un proceso que quiera entrar en la sección crítica, si no hay pugna por entrar a ella, debe poder entrar. Un proceso, siempre que quiera, podrá entrar en la sección crítica. No se debe producir una situación de interbloqueo pasivo. El tiempo que un esta un proceso en la sección crítica lo hará en un tiempo finito.
En el desarrollo de la ejecución de un programa concurrente, ¿Cuándo se produce una situación de interbloqueo? Cuando un proceso debe esperar por la ocurrencia de un evento para poder seguir ejecutándose. Cuando el sistema en su conjunto hace progresos, pero existe un grupo de procesos que nunca progresan pues no se les otorga tiempo de procesador para avanzar. Cuando un proceso adquiere un recurso y otros procesos deben esperar a que sea liberado. Cuando todos los procesos están esperando porque ocurra un evento que nunca se producirá.
Un proceso que está accediendo a un recurso que no puede ser accedido por nadie más de forma concurrente se dice que se encuentra... En su sección condicional. En el estado listo. En su sección crítica. En espera ocupada.
¿Cuál de estas NO es una de las razones por las que los algoritmos de Dekker o Peterson pueden no funcionar en un ordenador con un procesador moderno? Incoherencia de caché. Deshabilitación de interrupciones.test Ejecución fuera de orden. Optimizaciones del compilador.
¿A quién se le debe de dar la prioridad para ejecutar la sección crítica cuando acabe la actual? Da igual a quien se dé la prioridad, por lo tanto de forma aleatoria. Según el número que proporciona el reloj lógico de Lamport, cuanto mayor, más prioridad. Según el número que proporciona el reloj lógico de Lamport, cuanto menor, más prioridad. Ninguna de las otras respuestas es correcta.
La instrucción testAndSet (a, b)... Es propia de lenguajes de alto nivel y se emplea para solucionar problemas de exclusión mutua. Es una instrucción propia de Java, usada para impedir problemas de inanición. Es una instrucción de bajo nivel para construir soluciones a la exclusión mutua. Es una instrucción propia de Java, usada para solucionar el problema de la exclusión mutua.
¿A qué nos referimos con “spinlocks”? Es un tipo de algoritmo que contiene espera ocupada . Es un tipo de algoritmo caracterizado por no tener espera ocupada. Es una técnica software capaz de solucionar los problemas de espera ocupada. Es una técnica hardware capaz de solucionar los problemas de espera ocupada.
¿Qué problema presentan los siguientes procesos si se ejecutan concurrentemente? Se produce un interbloqueo pasivo. Se produce una violación de la exclusión mutua (pueden estar los dos en la sección crítica al mismo tiempo). Estos procesos tienen el problema de la espera ocupada. No ocurre ningún problema de los descritos entre ellos.
¿Cuál de las siguientes afirmaciones es correcta según el código mostrado? (La variable “sc” está inicializada a “libre”). Se puede producir un interbloqueo. Ambos procesos puede que accedan al mismo tiempo a la sección crítica. Hasta que uno de los procesos no salga de la sección crítica, el proceso restante nunca podrá ejecutarla. Ninguna de las otras respuestas.
Cuántos hilos se ejecutan en el siguiente código: 1 hilo de ejecución. 2 hilos de ejecución. 3 hilos de ejecución. 4 hilos de ejecución.
¿Qué instrucciones pueden ser ejecutadas por 2 threads al mismo tiempo? s3 y s4. s2 y s5. s2 y s4. s3 y s5.
¿Cuáles de las siguientes líneas NO se pueden ejecutar concurrentemente suponiendo que e1 y e2 son instancias de Example y o1 es el mismo para ambas? e1.s1 y e1.s1 e1.s5 y e2.s5 e1.s2 y e2.s2 e1.s4 y e1.s2.
¿Qué afirmación es cierta con respecto al siguiente fragmento de código? El thread nunca pasará a formar parte del conjunto de espera ya que la condición siempre se inicializa a cierta. Es posible que se produzca un interbloqueo. Si la condición no es cierta, el thread pasará a formar parte del conjunto de espera, abandonando el cerrojo adquirido sobre el objeto. Cuando le despierten, volverá a evaluar la condición. Al estar los dos métodos sincronizados, el thread que hace que la variable condición obtenga el valor true mediante el método hacerCondicionVerdadera() nunca podrá despertar al thread encargado de evaluar la condición.
Si un thread ha sido liberado por ejecución de notify(), ¿en qué estado se encontraba previamente?: Bloqueado. Dormido. Espera por wait(). Espera por synchronized.
Indica cuál de estas características de los Threads Daemon es falsa: Tienen la más baja prioridad y se ejecuta cuando ningún otro thread se está ejecutando. Algunos thread Daemon son ejecutados automáticamente cuando un programa está en ejecución. Tienen la más baja prioridad y se ejecutan cuando algunos threads se están ejecutando en segundo plano. El thread Daemon hereda del thread que lo crea, por lo que no puede cambiarse una vez que se ejecuta.
¿Es obligatorio que el método wait() esté dentro de un bucle while? Da igual poner while o if. No, porque entonces sería espera ocupada. No siempre, ya que algunas aplicaciones no necesitan reevaluar la condición y bastaría con un simple if, aunque se recomienda el uso del while. Si, porque no siempre se cumple la condición y hay que volver a evaluarla. .
Dado el siguiente código:¿Cuál de las siguientes respuestas es correcta? La “e” se puede imprimir con la “b” de manera concurrente, es decir, sin exclusión mutua. Se puede imprimir de manera concurrente la “e” con la “a”, es decir, sin exclusión mutua. La “a” se puede imprimir de manera concurrente con la “c”, es decir, sin exclusión mutua. Se puede dar el caso de imprimir “cbd” (en este orden).
¿Cuál es la diferencia principal entre una estructura de datos bloqueantes y no bloqueantes? Las estructuras bloqueantes no permiten su uso en programas de más de un hilo, mientras que las no bloqueantes sí lo permiten. Las estructuras no bloqueantes permiten la acción simultánea sobre ellas de varios hilos al mismo tiempo, mientras que las bloqueantes se bloquean ante esta circunstancia, para proteger la integridad de los datos. Una estructura será bloqueante o no en función de los hilos que actúen sobre ellas, inicialmente no hay diferencias. Las estructuras bloqueantes bloquean los hilos cuyas operaciones no pueden realizarse inmediatamente, mientras que las no bloqueantes lanzan una excepción o valor especial en esos casos.
¿Cuál de las siguientes ejecuciones podría ser una salida en pantalla para este código? (Los semáforos se inicializan a 0) “ACBDFEG” CDABFEG” “CFGDABE” “ABCDEFG”.
Al realizar la operación c.await() en un monitor: El thread pasa al final del wait set del monitor. El thread pasa al final del entry set del monitor. El thread pasa al wait set de la variable condición c. El thread pasa al entry set de la variable condición c.
¿Qué tipo de semántica de la operación signal tiene un mayor esfuerzo de programación para el programador? Retorno Forzado (DR). Desbloquear y Esperar (DE). Desbloquear y Espera urgente (DU). Desbloquear y Continuar (DC).
¿Cómo se garantiza la exclusión mutua en los monitores? Mediante una variable de tipo Condition (Condición). Mediante el uso de Locks. Mediante el uso de la palabra clave synchronized. Mediante el uso del await y signal, poniendo entre ambas instrucciones el código que se desee ejecutar en exclusión mutua.
La operación signal en Java utiliza una semántica: Desbloquear y Continuar (DC). Retorno forzado (DR). Desbloquear y espera urgente (DU). Desbloquear y esperar (DE).
Los problemas solucionados con semáforos también se pueden resolver con... Streams. Sockets. Monitores. JavaRMI.
Los monitores en relación con los semáforos: Son más óptimos que los semáforos. Son herramientas de más bajo nivel de programación. Son herramientas de más alto nivel con una estructura que ayuda a la corrección del programa. Permiten resolver más problemas que los semáforos.
¿Cuál de las siguientes afirmaciones es FALSA? Los semáforos son mecanismos de bajo nivel, no estructurados y que pueden dar lugar a errores transitorios. El Sistema Operativo garantiza que las operaciones ‘acquire’ y al ‘release’ se ejecutan de forma indivisible. Los monitores tienen distinta capacidad de expresión que los semáforos, es decir, cualquier problema de semáforos no puede ser resuelto con monitores. Todos los métodos de los monitores se ejecutan en exclusión mutua para garantizar la integridad del programa.
¿Cuándo puede ejecutarse d en P2? Nunca, ya que no tienen ninguna relación los algoritmos. Sólo si P3 ha ejecutado a o P1 ha ejecutado e. Sólo si P3 ha ejecutado f y P1 ha ejecutado b. Cuando P2 ha ejecutado c.
Para que el proceso P1 no pueda ejecutar b hasta que P2 haya ejecutado c, ¿Qué han de valer inicialmente t y s? t = 0; s = 1 t = 1; s = x t = 1; s = 0 t = 0; s = x.
Escoge la respuesta correcta que define el comportamiento de la instrucción acquire(s): if s>0 then s=s-1 else bloquear proceso; if s>=0 then s=s-1 else bloquear proceso; if s>=0 then s=s+1 else bloquear proceso; if s<0 then s=s-1 else bloquear proceso;.
Cuando hablamos de “Desbloquear y Continuar” en la operación signal, nos referimos a: Se desbloquea a un proceso de la cola condición y el desbloqueador sale inmediatamente del monitor, terminando la ejecución del método. Nos aseguramos que la condición no cambia. El desbloqueador cede el monitor al proceso desbloqueado. El desbloqueador se bloquea en la cola del monitor. Nos aseguramos que la condición no cambia. Se desbloquea a un proceso de la cola de condición, el desbloqueador sale inmediatamente del monitor y se sigue ejecutando el método del proceso desbloqueador. Se desbloquea a un proceso de la cola de condición, pero se sigue ejecutando el método del proceso desbloqueador.
Señala la respuesta correcta sobre los semáforos: Es un mecanismo estructurado. Tanto la exclusión mutua como la sincronización se implementan usando el mismo par de primitivas. Los programas que utilizan semáforos son fáciles de mantener. No todos los problemas solucionados con semáforos pueden ser solucionados también con monitores.
¿Cuál de las siguientes opciones NO es un mecanismo de sincronización de threads? CyclicBarrier Fork/Join Phaser Exchanger.
¿El mecanismo que nos permite sincronizar los hilos al final de cada una de los pasos en las que está dividida una tarea es? Fork/Join Exchanger CyclicBarrier Phaser.
CountDownLatch es un mecanismo de sincronización avanzada donde: Todos los hilos se esperan mutuamente hasta llegar a un punto en común. Uno o más hilos esperan hasta que otro u otros hilos finalicen sus operaciones. Los hilos pueden intercambiar elementos entre ellos. Sólo funciona cuando los hilos son del mismo tipo (pertenecen a la misma clase).
En el siguiente código, indique cuál de las siguientes afirmaciones es verdadera: Si se ejecuta el metodo2, no se puede ejecutar el metodo1. Hasta que 5 threads no hayan ejecutado c1.await no se imprimirá por pantalla el mensaje “c1 ejecutándose”. Hasta que 7 threads no hayan ejecutado c1.await no se imprimirá por pantalla el mensaje “c1 ejecutándose”. Falta synchronized en los dos métodos para que funcione.
¿Qué sucede en la clase CyclicBarrier? Un conjunto de threads reutilizables arrancan a la vez o se esperan entre sí en un punto concreto para conseguir un objetivo determinado. Los threads de la clase se emparejan e intercambian elementos entre pares de hilos. Un conjunto de threads se esperan entre sí en un punto concreto hasta que una serie de operaciones hayan sido realizadas y el valor del contador haya llegado a 0. Ninguna es correcta.
Cual no es una característica de las operaciones sobre streams: Se puede encadenar su uso. La iteración sobre los elementos de un stream es externa a través de iteradores. Son fácilmente paralelizables. Si intentamos recorrer un stream dos veces obtendremos un error.
¿En qué situación es muy aconsejable utilizar la clase CyclicBarrier? Cuando queremos que un conjunto de threads o hilos (esclavos) esperen hasta que otro thread (jefe) realice un proceso o se lo indique, sin poderse ejecutar hasta entonces. Cuando queremos que dos threads o hilos se sincronicen en un punto y, cuando ambos lleguen a dicho punto intercambien un objeto. Cuando queremos que un número predeterminado de threads “se esperen” los unos a los otros en un determinado punto para continuar con su ejecución. Cuando queremos que un máximo de cinco y un mínimo de dos threads o hilos “se esperen” los unos a los otros en un determinado punto para continuar con su ejecución.
¿Qué hace el siguiente código? (suponga que films es una colección no vacía): Almacena en una lista los títulos de todas las películas que duren menos de 2 minutos. Almacena en una lista los títulos de las películas que duren menos de 2 minutos, saltándose 5 de esas películas. Almacena en una lista toda la información de las películas que duren menos de 2 minutos saltándose 5 de esas películas. Almacena en una lista los títulos de las películas que duran menos de 2 minutos después de pasados 5 segundos.
Señala la respuesta correcta con respecto a Fork/Join: Invocando execute (Task) sobre un ForkJoinPool tiene un comportamiento asíncrono, es decir, el hilo que lo invoca sigue ejecutándose sin esperar a que termine la tarea Task. Invocando execute (Task) sobre un ForkJoinPool tiene un comportamiento síncrono, es decir, el hilo que lo invoca no se sigue ejecutando hasta que no termine la tarea Task. Invocando execute (Task) sólo se podrá hacer sobre un ForkJoinTask, ya que la utilización de ForkJoinPool provocaría errores en la ejecución Invocando execute (Task) sobre un ForkJoinPool puede tener un comportamiento asíncrono o síncrono, depende de si Task implementa RecursiveTask ó ActionTask.
¿Cuál de los siguientes mecanismos NO es un mecanismo de sincronización avanzado? Exchanger. Phaser. CountDownLatch. Executor.
Si estamos usando threads que usan Executor, y queremos que devuelvan un resultado. Tenemos que usar: La clase Future y la clase Phaser. Las interfaces Future y Runnable. Las interfaces Runnable y Callable. Las interfaces Callable y Future.
¿Qué pool de threads realiza el famoso algoritmo de “Divide y vencerás”? ThreadPoolExecutor. ScheduledThreadPoolExecutor. ForkJoinPool. SynchronousQueue.
Consideremos un jefe de equipo con varios subordinados. Los subordinados no pueden empezar hasta que el jefe de equipo se lo permita. Por otra parte, el jefe de equipo tiene que esperar a que sus subordinados hayan terminado. ¿Qué clase de Java sería la más idónea para su sincronización? CyclicBarrier. ForkJoin. SynchronousQueue. CountDownLatch.
¿Cuál de las siguientes afirmaciones acerca de las operaciones sobre streams es incorrecta? Pueden encadenarse las operaciones. Es fácil paralelizar las operaciones. Los elementos de un stream reciben una iteración interna. Pueden ser recorridos varias veces.
¿Qué función tiene el siguiente código? (Suponemos un código escrito en java): (int a, int b) -> a + b; Se trata de una función lambda que suma dos valores (a y b). Suma dos valores (a y b) pero no se trata de una función lambda. Se trata de un stream que suma dos valores (a y b). Se trata de una función lambda concurrente.
Señala la correcta: Una interfaz funcional es aquella que sólo tiene un método. El método filter de la interfaz Predicate en el siguiente código elimina de la lista aquellos elementos que son igual a 2: List <Integer> listaNumeros = filter (Arrays.asList (1,2,3), a->a.equals(2)); Ninguna de las otras opciones es correcta. Una interfaz funcional es aquella que tiene más de un método.
Partiendo el ejemplo del proyecto BooksAlumnos y de que tenemos el siguiente código, queremos formar otra nueva lista que contenga los títulos de aquellos de tal forma que sus precios sean mayores de 20. También deseamos ignorar los 3 primeros libros y queremos hacer uso de la utilidad que presentan los streams. ¿Cuál de los siguientes fragmentos de códigos tendríamos que usar para ello? List<String> listaLibros = books.stream().filter(l -> l.getPrecio() > 20).map(Book::getTitulo).collect(collectors.toList()); List<String> listaLibros = books.stream().skip(2).filter(l -> l.getPrecio() > 20).map(Book::getTitulo).collect(Collectors.toList()); List<String> listaLibros = books.stream().skip(3).filter(l -> l.getPrecio() > 20).map(Book::getTitulo).collect(Collectors.toList()); List<String> listaLibros = books.stream().skip(3).filter(l -> l.getPrecio() > 20).collect(collectors.toList());.
Señala la respuesta correcta: “En los sockets UDP...” la clase DatagramPacket nos permite empaquetar datos para enviarlos y la clase ServerSocket establecerá la conexión cliente/servidor. la clase Socket establecerá la conexión al servidor desde la parte del cliente y la clase ServerSocket será la encargada de establecer la conexión servidor/clientes (conexión pasiva). la clase DatagramPacket será la encargada del envío y recepción de paquetes (datagramas) y la clase DatagramSocket será la que se ocupe de gestionar los sockets para que sea posible enviar y recibir datagramas. la clase ServerSocket establecerá la conexión al cliente desde la parte del servidor y la clase Datagram será la que se encargue de gestionar los paquetes de envío y recepción.
En la comunicación directa simétrica: El receptor no indica explícitamente de quién espera recibir el mensaje pero el emisor si indica a quién desea enviar el mensaje. Ni el emisor ni el receptor indican explícitamente a quién o de quién desea enviar o recibir el mensaje. El emisor y el receptor indican explícitamente a quién o de quién desea enviar o recibir el mensaje. Ninguna de las otras opciones es correcta.
Un Socket es: Una abstracción software para representar puntos finales de conexión entre dos máquinas. Una abstracción hardware para representar puntos finales de conexión entre más de dos máquinas. El cable que une dos máquinas entre las que me quiero conectar y a través del cual fluyen los bits en forma de paso de mensaje. Ninguna de las anteriores.
Indica la respuesta correcta sobre las comunicaciones asimétricas: Los procesos se tienen que nombrar explícitamente, tanto emisor como receptor. Este modelo no se adapta bien al paradigma Cliente/Servidor. Una de las ventajas con respecto a las comunicaciones simétricas es la seguridad. El receptor recibe un mensaje formado por el contenido y un identificador.
¿Que tienen en común invocación remota y RPC? Es síncrono, bidireccional y bueno para aplicaciones cliente/servidor. Es síncrono, bidireccional y malo para aplicaciones cliente/servidor. Es asíncrono, unidireccional y bueno para aplicaciones cliente/servidor. Es asíncrono, bidireccional y bueno para aplicaciones cliente/servidor.
Indique la afirmación correcta: En el paso de mensaje asíncrono cuando un proceso A quiere enviar un mensaje a un proceso B, el proceso A se bloquea a la espera de que el proceso B esté listo a recibir. En el paso de mensaje síncrono existe un buzón donde un proceso A puede enviar un mensaje a un proceso B y el proceso A deja el mensaje en dicho buzón para que B lo reciba. En el paso de mensaje asíncrono si no existe un mensaje en el buzón, el proceso que recibe los mensajes no se bloquea. En el paso de mensaje síncrono si un proceso A envía un mensaje, pero el proceso B no está aún listo para recibirlo, el proceso A se bloquea a la espera de que el proceso B esté listo.
Seleccione la respuesta correcta: La invocación remota es un modelo de comunicación asíncrona que se basa en intercambio de mensajes y bidireccional. La invocación remota es un modelo de comunicación síncrona que se basa en intercambio de mensajes y bidireccional. La invocación remota es un modelo de comunicación síncrona que se basa en intercambio de mensajes y unidireccional. La invocación remota es un modelo de comunicación asíncrona que se basa en intercambio de mensajes y unidireccional.
La invocación remota, a diferencia de RPC(Remote Procedure Call): Con remoto se hace referencia la ejecución en diferente procesador. Con remoto se hace referencia a la ejecución de diferentes procesos. Solo puede implementarse si se realiza en diferentes ordenadores. Ninguna de las anteriores.
En los sockets UDP, el flujo de datos es: Aleatorio. Unidireccional. Síncrono. Responde a un modelo RPC.
¿En qué tipo de comunicación se usa una forma de comunicación request-reply? Invocación remota o rendezvous extendido o cita extendida. Comunicación asíncrona. Rendezvous o cita simple. Ninguna de las otras respuestas es correcta.
Generalmente si vamos a utilizar una aplicación de videoconferencias, está utilizará sockets TCP debido a: La mayor velocidad que tienen con respecto a los UDP. Su seguridad al enviar los mensajes y que estos lleguen con mayor fiabilidad. Generalmente se utilizarían sockets UDP en este tipo de aplicaciones. Que no es necesario que se asegure la integridad de los mensajes.
¿En qué tipo de sockets el flujo de datos es bidireccional? En los sockets TCP. En los sockets UDP. En los sockets UDP y TCP. Ni en los sockets TCP ni en los UDP.
Si lo que buscamos es envío de información integra y un orden de llegada de mensajes. ¿Qué utilizaremos? Sockets UDP. Tanto Sockets UDP como Sockets TCP. Sockets TCP. Ni en Sockets UDP ni en Sockets TCP.
Señala la opción que NO es una característica de los sockets TCP: Se garantiza la llegada de la información y, además, en orden. Su comportamiento se puede asemejar al de una llamada telefónica. Es posible que haya pérdidas de datagramas en el envío. Orientado a conexión y streams.
Si quisiéramos establecer una conexión fuertemente tipada y síncrona que utilizarías: Canal (Channel). Buzón (Mailbox). La dos anteriores son válidas. Ninguna de las dos.
¿Qué tipo de información transportan los sockets? Bytes Streams Sockbits Lambdas.
Seleccione la respuesta correcta: Los sockets TCP utilizan datagramas para el envío/recepción. Los sockets UDP garantizan más fiabilidad que los sockets TCP. En los sockets TCP no es necesario utilizar la operación close(). En los sockets UDP no se garantiza la llegada de todos los datagramas.
¿En una comunicación asíncrona, si el mailbox del receptor se encuentra vacío justo en el momento en que el emisor envía un mensaje, qué ocurrirá sabiendo que el receptor había utilizado el recibir anteriormente? Que el receptor se desbloquee y el emisor se bloquee. Que el emisor no se bloquee y el receptor se desbloquee. Que el receptor siga bloqueado y el emisor no se bloquee. Que el receptor siga bloqueado y el emisor se bloquee.
Cuál es una característica de los protocolos UDP: Orden en el envío de mensajes. Integridad de la información. La comunicación es muy rápida. Se garantiza la llegada de todos los paquetes.
¿Cuál de éstas es una característica de los sockets UDP? Los datos llegan en paquetes independientes. La entrega de datos está garantizada. Una vez la conexión se establece, se produce al intercambio de los datos. Los datos llegan en el mismo orden que se emitieron.
¿Cuál es estas afirmaciones NO ocurre en los protocolos de tipo TCP? Se asegura la llegada de los paquetes de datos, es decir, es más fiable pero más lento. La llegada de los bytes no debe ser necesariamente en orden. Primero se establece la conexión entre los sistemas y después se transmiten los datos. El protocolo TCP está orientado a la conexión.
Seleccione aquel conjunto de características propias de los sockets TCP: Llegada de todos los datos garantizada, llegada de los datos en orden, la conexión es establecida y los datos intercambiados. Llegada de todos los datos garantizada, llegada de los datos en orden, la información es intercambiada mediante datagramas o paquetes independientes. Llegada de todos los datos no garantizada, llegada de los datos no necesariamente en orden, la conexión es establecida y los datos intercambiados. Llegada de todos los datos garantizada, llegada de los datos no necesariamente en orden, la conexión es establecida y los datos intercambiados.
¿Cómo es la inicialización de un DatagramPacket y en dónde se usa un DatagramPacket? new Packet(datos, datos.length, clientIPAddress, clientPort); se usa en TCP. new DatagramPacket(datos, datos.length, clientIPAddress, clientPort); se usa en UDP. new DatagramPacket(datos, datos.length, clientIPAddress, clientPort); se usa en TCP. new Packet(datos, datos.length, serverIPAddress, serverPort); se usa en UDP.
¿Cuál de éstos no es un objetivo de Java RMI? Integrar el modelo concurrente en java. Mantener la semántica entre objetos locales y remotos. Preservar la seguridad otorgada por Java. Realizar callbacks entre servidor y cliente.
Registro es un servicio estático que está establecido en cada nodo en el cual: Los clientes se registran con un nombre al entrar en el servidor. El servidor registra los nombres de los clientes que han entrado en el servidor. Se encuentran las interfaces. Los servidores se registran con un nombre para que los clientes puedan localizarlo.
Cuales de estas características no son propias de los objetos migratorios: Son objetos que están en un host diferente de aquel en el que fueron creados. Nunca pueden ser serializables. Pueden moverse por la red. Todas las anteriores son propias de los objetos migratorios.
Continúe la frase: En migración de objetos en Java RMI los objetos migrantes... Se encuentran en el mismo host donde han sido creados. Se encuentran en un distinto host donde han sido creados, además han de ser serializables para poder “moverse por la red” y ser ejecutados en otro host. Son invocados remotamente. Se encuentran en un distinto host donde han sido creados, además han de ser no serializables para poder “moverse por la red” y ser ejecutados en otro host.
Se quiere localizar el servicio “virtualProcess” en una máquina remota cuya ip es 62.202.156.128. Suponemos que usa el registro RMI estándar, y que dicho registro escucha las peticiones en el puerto 1099. ¿Cuál de las siguientes opciones localizará el servicio correctamente? Naming.lookup(“//62.202.156.128:1099/virtualProcess”); Naming.lookup(“rmi://62.202.156.128:1099/virtualProcess”); Naming.lookup(“//62.202.156.128/virtualProcess”, 1099); Naming.lookup (virtualProccess,” 62.202.156.128”,1099);.
Imaginemos un objeto “O” (con sus atributos y métodos) el cual implementa una interfaz “IObjeto”, la cual extiende de la clase Serializable. Si migramos dicho objeto “O” de un Cliente a un Servidor, que parte de él se migra: Sólo sus atributos. Ninguna es correcta. Nada, se ejecuta en el Cliente. Tanto atributos como métodos.
¿Qué es un callback? Es un protocolo del nivel de transporte basado en el intercambio de datagramas. Es un método de comunicación asíncrona, que reenvía el mensaje si no recibe respuesta. Se produce cuando un método remoto recibe por parámetro un objeto local y hace una llamada a ese objeto local. Ninguna de las otras respuestas es correcta.
En JavaRMI llamamos “Triángulo Mágico” a: El conjunto de Cliente, Servidor y Registro. El conjunto de Cliente, Servidor e Interfaz. El conjunto de Cliente, Servidor y Aplicación. No existe ese concepto en JavaRMI.
En problema del acuerdo bizantino debe estar sujeto a las siguientes condiciones: Byzantine failure (debe de haber fallos en ciertos nodos para que se pueda resolver el problema), el Acuerdo (todos los procesos que no fallen deben tomar una decisión) e Inicialización (todos los procesos que no fallen deben volver a inicializarse con su mismo valor). Acuerdo (todos los procesos que no fallan deben estar de acuerdo en el mismo valor), Crash failure (si se producen fallos en algunos nodos debe de seguir funcionando) y Terminación (todo proceso que falle debe tomar ciertas decisiones). Acuerdo (todos los procesos que no fallan deben estar de acuerdo en el mismo valor), Validez (si el proceso líder no falla, entonces el valor acordado por el resto de los procesos debe ser el inicial del líder), Terminación (todo proceso que no falle debe tomar una decisión). Desacuerdo (si hay desacuerdo por parte de los procesos secundarios debe inicializarse de nuevo el proceso líder), Inicialización (una vez inicializado en caso de fallo, el proceso líder debe de emitir una decisión contraria) y Validez (los nodos han de evitar comportamientos anómalos).
En el algoritmo de los relojes lógicos de Lamport... Los relojes son contadores que asocian un determinado valor numérico C(x) a todos los eventos que se producen en el sistema, donde si X à Y, entonces C(X) < C(Y). Los relojes son contadores que asocian un determinado valor numérico C(x) a los eventos de envío de mensajes que se producen en el sistema, donde si X à Y, entonces C(X) <= C(Y). Los relojes son contadores que asocian un determinado valor numérico C(x) a los eventos que se producen en el sistema, donde si X à Y, entonces C(X) <= C(Y). Los relojes son contadores que asocian un determinado valor numérico C(x) a los eventos de recepción de mensajes que se producen en el sistema, donde si X à Y, entonces C(X) < C(Y).
¿Cuál de las siguientes NO es una propiedad que deba cumplir un algoritmo para ser descentralizado? Los nodos sólo toman decisiones en base a su información local. Ningún nodo debe mantener toda la información que necesita el algoritmo. El fallo de un nodo impide que el algoritmo progrese. No se debe asumir la existencia de ningún reloj físico global.
Dada la siguiente representación: Seleccione la respuesta correcta: b se ejecuta antes que f e se ejecuta antes que b Ninguna de las otras respuestas es correcta e y c tienen algún tipo de asociación.
Respecto a los relojes lógicos, señale la afirmación falsa: Podemos afirmar que a ocurre antes que b y por ello antes que g. Podemos afirmar que f ocurre antes que e y por ello e antes que c. Podemos afirmar que c ocurre ocurre después que f y por tanto antes que h. Podemos afirmar que b ocurre antes de e y por tanto antes que h.
El algoritmo del anillo es un algoritmo para conseguir exclusión mutua de carácter distribuido en el que... Los nodos se mandan mensajes entre sí para saber si pueden acceder a la sección crítica. Se elige un nodo líder que coordina el acceso a la entrada de la sección crítica mediante mensajes de solicitud y concesión. Los nodos acceden a la sección crítica haciendo uso de un token que “circula” entre los nodos. Los nodos pueden acceder a la sección crítica cuando consiguen un token que solicitan al resto de nodos que no quieren entrar en su sección crítica.
En el problema de “los generales bizantinos” (consenso), ¿qué significa la condición de Acuerdo? Todos los procesos que no fallan deben de estar de acuerdo en el mismo valor. Todos los procesos que fallan deben de estar de acuerdo en el mismo valor. Todos los mensajes deben de ir en la misma dirección para así evitar colapsar un nodo. En cuanto tres nodos estén de acuerdo, hay consenso.
Teniendo los siguientes relojes vectoriales (a[1,2,1], b[2,2,6], c[2,3,0], d[4,3,5]) podemos concluir que: a ocurrió antes que c b es concurrente con a c ocurrió antes que d b ocurrió antes que c.
En exclusión mutua distribuida... Descentralizada: el que tiene el token es el líder. En anillo: hay un líder en el medio de todos los nodos dictando quién entra en la sección crítica. Centralizada: el líder una vez libera a un nodo de la sección crítica, tiene que ir uno por uno para ver quien ha solicitado entrar en la sección crítica. Descentralizada: un nodo necesita el aprobado de todos los nodos para entrar en la sección crítica.
¿Es posible conseguir una sincronización perfecta en relojes físicos? Sí, y también en los relojes lógicos. No, ni tampoco en los relojes lógicos. Sí, pero no en los relojes lógicos No, pero sí en los relojes lógicos, al menos preservando el orden de los eventos.
¿Cuáles de los siguientes problemas no es relevante en la programación distribuida? Alternancia estricta. Exclusión Mutua. Detección de terminación. DEtección de Deadlock.
¿Qué propiedad debe cumplir un algoritmo para que se considere descentralizado? Se asume la existencia de un reloj físico común o alguna otra fuente precisa del tiempo global. El fallo de un nodo impide que el algoritmo progrese. Si se detecta que no llega el envío de un mensaje, el algoritmo para y no puede seguir enviando mensajes a los siguientes nodos de la lista. Los procesos toman las decisiones a partir de la información disponible en forma amplia y global, es decir, no hace falta que los sistemas se encuentren en la misma ubicación. Ningún nodo debe mantener toda la información que necesite el algoritmo, sino que se debe distribuir entre todas las máquinas.
¿A qué tipo de sistema dan solución los algoritmos de consenso? Sistemas síncronos. Sistemas asíncronos. Tanto a sistemas asíncronos como síncronos. No dan solución a ningún tipo.
Seleccione la respuesta correcta sobre Relojes lógicos: Indican el orden en que suceden ciertos eventos, no el instante real en que suceden. Resultan inútiles para muchos tipos de aplicaciones distribuidas. Marcan la hora de forma más precisa que los relojes físicos. Ninguna de las respuestas es correcta.
En los algoritmos de consenso: El problema de los fallos bizantinos no se puede resolver en los algoritmos de consenso. El problema de los fallos bizantinos se puede resolver cuando el número de nodos totales en el sistema >= 3t+1 siendo t el número de nodos que fallan. El problema de los fallos bizantinos se puede resolver cuando el número de nodos totales en el sistema < 3t+1 siendo t el número de nodos que fallan. No se puede resolver ese problema.
Seleccione la opción que es FALSA con respecto a la sincronización de relojes físicos mediante el Algoritmo de Cristian: Sirve para sincronizar el reloj local de un ordenador cliente con el reloj local de un ordenador servidor. El ordenador servidor dispone de un reloj muy preciso, incluso puede estar sincronizado con otros aún más precisos. En determinadas situaciones, ambos relojes pueden retroceder en el tiempo. La sincronización requiere intercambio de mensajes.
En los relojes lógicos (indique la falsa): Se relacionan en una relación “ocurre antes”. Todos los nodos están de acuerdo en que primero ven un evento a y después un evento b. No es una relación transitiva Establece un orden parcial entre eventos de un sistema.
Respecto a los llaveros o wallets de bitcoins, marque la correcta: Cada usuario puede tener todas las claves privadas que necesite, en cambio, sólo puede tener una clave pública para proteger sus bitcoins. Cada usuario puede tener una clave privada (que será su DNI) e infinitas claves públicas para proteger sus bitcoins. Cada usuario puede una clave privada e infinitas claves públicas para proteger sus bitcoins. Cada usuario puede tener una clave privada y una clave pública (que será su DNI) para proteger sus bitcoins.
En la solución descentralizada de la exclusión mutua: Un nodo que quiere entrar en la sección crítica debe pedir permiso al nodo coordinador. Un nodo que quiere entrar en la sección crítica debe pedir permiso al resto de nodos Un nodo que quiere entrar en la sección crítica sólo debe pedir permiso al nodo que está en la sección. Si un nodo quiere entrar en la sección crítica no pide permiso ya que sabe cuándo está ocupada y, por tanto, si puede o no usarla.
¿Qué es un crash failure? Cuando un nodo deja de funcionar. Cuando un nodo tiene un comportamiento anómalo. Cuando un nodo no para de mandar mensajes de forma aleatoria a todos los nodos. Cuando un nodo no para de mandar mensajes a otro nodo.
¿Qué solución es válida para el siguiente reloj vectorial? V(a)=[1,0], V(b)=[2,0], V(c)=[3,1], V(d)=[1,1], V(e)=[3,2], V(f)=[3,3] V(a)=[1,0], V(b)=[2,1], V(c)=[3,1], V(d)=[1,1], V(e)=[2,3], V(f)=[3,3] V(a)=[1,0], V(b)=[2,1], V(c)=[3,1], V(d)=[1,1], V(e)=[3,2], V(f)=[3,3] V(a)=[1,0], V(b)=[2,0], V(c)=[3,1], V(d)=[1,1], V(e)=[2,3], V(f)=[3,3].
En el algoritmo de exclusión mutua para anillos... El nodo que posee el token puede entregarlo al siguiente nodo antes de finalizar su sección crítica (SC). El nodo que obtenga el token podrá entrar en la sección crítica (SC). Si un nodo quiere entrar en la sección crítica podrá hacerlo independientemente de que haya obtenido el token. Si un nodo no dispone del token en un momento determinado entonces nunca podrá entrar en la sección crítica.
En blockchain, cuando se realiza una transacción, ¿cuál es el proceso realizado por los mineros que están escuchando? Apuntan en el bloque la cabecera, basándose en el hash del bloque anterior, apuntan la transacción realizada en el cuerpo del bloque, y tratan de responder a una incógnita. Apuntan la cabecera, basándose en el hash del bloque anterior, apuntan la transacción realizada en el cuerpo del bloque, y tratan de responder a una incógnita, informando a los demás mineros si lo consigue. Apuntan la cabecera, basándose en el hash del bloque anterior y apuntan una transacción hacia sí mismo. Buscan la solución a una incógnita aplicando las fórmulas disponibles.
En exclusión mutua con solución descentralizada: Existe un nodo coordinador. La coordinación se resuelve mediante envíos a los nodos adyacentes. No existe un nodo coordinador. La coordinación se resuelve mediante envíos a unos nodos predeterminados (líderes).
Te han encargado diseñar y programar una pequeña simulación de carreras de en la que participarán 20 vehículos, cada uno de ellos con características diferentes. Suponiendo que cada uno de esos vehículos son threads y que no queremos que la carrera termine hasta que todos los participantes hayan cruzado la línea de meta, ¿qué mecanismo sería más adecuado? CyclicBarrier Fork/Join Executor CountDownLatch.
Denunciar test Consentimiento Condiciones de uso