TEST BORRADO, QUIZÁS LE INTERESE: PROG CON DIST
COMENTARIOS | ESTADÍSTICAS | RÉCORDS |
---|
REALIZAR TEST
Título del Test:
PROG CON DIST Descripción: programación concurrente y distribuida Autor: David OTROS TESTS DEL AUTOR Fecha de Creación: 17/12/2023 Categoría: Informática Número Preguntas: 90 |
COMPARTE EL TEST
Comentar
No hay ningún comentario sobre este test.
Temario:
La escalabilidad de un sistema distribuido: Considera la posibilidad de aumentar el número de usuarios. No tiene en cuenta la inclusión de nuevos nodos. No es posible en un sistema distribuido. No es relevante en un sistema distribuido. En cuanto a los certificados: Su utilización requiere que los certificados estén normalizados para su correcta interpretación. Se basan en la autogeneración. Se basan en los cifrados de clave privada No son útiles en los sistemas distribuidos. Dado el siguiente fragmento de código: import java.net.*; import java.io.*; public class Test { public static void main(String[] args) throws UnknownHostException, IOException { String url="java.sun.com"; int puerto =80; Socket sc=new Socket(url, puerto); BufferedReader bf=new BufferedReader( new InputStreamReader(sc.getInputStream())); PrintWriter out=new PrintWriter( sc.getOutputStream(),true); out.println("GET /"); String s=null; while((s=bf.readLine())!=null){ System.out.println(s); } } } No compila porque faltan excepciones por capturar. No es necesario utilizar el puerto de conexión Muestra por pantalla el contenido de la página principal de conexión. No se puede utilizar GET para esta petición. En un sistema distribuido, el middleware: No es necesario Se centra únicamente en aspectos software Se centra únicamente en aspectos hardware Puede ofrecer un enmascaramiento de los sistemas operativos utilizados. La redundancia de un sistema distribuido: Permite mayor tolerancia de fallos Tiene mayor coste de mantenimiento e implementación Puede hacer referencia a software o a hardware. Todas las anteriores son correctas. La fiabilidad en la comunicación de procesos: Dependerá de que siempre se entreguen los mensajes. Se centra en no perder mensajes. Admite mensajes duplicados. Nunca se puede lograr. La exclusión mutua en un sistema distribuido Se puede implementar únicamente con un algoritmo centralizado Se puede implementar con un algoritmo distribuido o centralizado No puede ser implementada en un sistema distribuido. Es más limitada que en los sistemas no distribuidos. Identifica el enunciado que mejor se ajuste al concepto de escalabilidad para los sistemas distribuidos: La escalabilidad es un término análogo al de extensibilidad. La escalabilidad es un término idéntico al de compatibilidad. La escalabilidad no es un aspecto que haya que considerar en los sistemas distribuidos. La escalabilidad tiene como objetivo medir el grado de efectividad cuando a un sistema distribuido se le incrementan los recursos y usuarios. . Dado el siguiente código: public class Imprimir extends Thread{ private String dato; public Imprimir(String dato){ this.dato=dato; } public void run(){ for(int i=1;i<=50;i++){ System.out.println(""Se ejecuta ""+dato); } } } Al crear un objeto Imprimir, se muestran por pantalla automáticamente los números del 1 al 50. Es incorrecto, pues debe implementar un Runnable Es necesario crear el objeto e invocar al start explícitamente para ejecutar el thread. Es necesario crear el objeto e invocar el método run explícitamente para ejecutar el thread. En un escenario de tiempo crítico donde premia la velocidad de envío, ¿qué protocolo es más adecuado? ServerTCP TCPIP UDP Ninguno de los anteriores. Para instanciar un objeto remoto Es necesario una dirección para conectar al objeto No se requiere el puerto de conexión, pues es siempre el mismo para aceptar conexiones remotas. Se requiere un tipo de constructor especial en el servidor. Ninguna de las anteriores es correcta. El rendimiento de un sistema distribuido dependerá: Únicamente del software de control Únicamente del hardware utilizado Únicamente del middleware utilizado De una combinación de todas las anteriores más la red de interconexión. Dado el siguiente código public class print implements Runnable { int value; public print(int n) { value = n; } public void run() { while (true) { System.out.println("Valor: "+value); } } } Es necesario llamar al método run para crear el hilo. Se invoca al método start del Runnable automáticamente. Es necesario utilizar un thread e invocar al método run Es necesario utilizar un thread e invocar al método start. Para utilizar un monitor en Java: Se puede utilizar cualquier objeto que disponga del método wait. Se indica utilizando la palabra reservada «synchronized» sobre un objeto compartido Se indica utilizando la palabra reservada «synchronized» sobre un objeto no compartido. No existen monitores en Java. Dado el siguiente código: public class print extends Thread { Integer value; public print(int n) { value = n; } public void run() { while (true) { if (value > 0) { value.wait(); } else { value.notifyAll(); } } } } Se produce una excepción sobre la utilización del monitor. Se bloquean aquellos threads cuyo atributo value sea mayor que cero. Se bloquean aquellos threads cuyo atributo value sea mayor que cero y se despiertan todos cuando el atributo value de algún thread tenga valor 0. Se despiertan todos los threads en todos los casos. En una comunicación asíncrona: Tanto el emisor como el receptor quedan bloqueados esperando el tratamiento de la petición El emisor queda bloqueado, mientras que el receptor realiza las tareas necesarias. En ningún caso, se bloquean ni el receptor ni el emisor. El emisor nunca queda bloqueado, pero el receptor puede bloquearse o no. De los siguientes protocolos, ¿cuál es un ejemplo de petición-respuesta? TCP. UDP. RPC HTTP. De las siguientes características, ¿cuál pertenece a la multidifusión en sistemas distribuidos? Baja realización de datos. Propagación de eventos. Limitación de búsquedas de redes espontáneas Baja tolerancia a fallos. Acerca de los sistemas distribuidos: Tienen un reloj global único porque es importante saber justo el instante en el que ocurre un evento Únicamente se pueden conectar a través de una red física Siempre están dispersos geográficamente. Ninguna de las anteriores es correcta. Un monitor: Garantiza la exclusión mutua No evita condiciones de carrera Es menos eficiente que un semáforo. Es una solución de bajo nivel. La seguridad dentro de un sistema distribuido hace referencia: A la autenticación y la disponibilidad A la confidencialidad e integridad. Al no repudio A la confidencialidad, disponibilidad e integridad. Cuando, en un sistema distribuido, queremos aumentar la distancia de los nodos, nos referimos A la escalabilidad de distancia A la escalabilidad de computación A la escalabilidad de procesamiento A la escalabilidad de usuarios. Para implementar una solución distribuida basada en objetos en Java: Es necesario registrar el objeto remoto mediante el namespace. Es fundamental utilizar RMIregistry para que el cliente pueda acceder al objeto Se debe establecer el puerto 1099 para aceptar conexiones salientes El cliente debe conocer la implementación del objeto remoto. Al implementar una solución remota en Java RMI El cliente debe conocer la implementación del objeto El cliente debe conocer la interfaz del objeto remoto El cliente debe acceder al puerto 1099 para conectar. El cliente debe registrar el objeto remoto a utilizar. La tabla de objetos remotos: Contiene información de todas las clases que implementan un objeto remoto. Contiene los objetos remotos Contiene los objetos remotos y sus referencias remotas Solo trata las entradas remotas. El objetivo de un compactador de memoria automático es: Mejorar el rendimiento del sistema. Ganar en seguridad de acceso a memoria Mejorar la seguridad de los datos de los usuarios Ninguna de las anteriores es correcta. Los sistemas distribuidos basados en eventos se caracterizan por: Mejorar el rendimiento en todas las situaciones. Poder trabajar únicamente en un sistema heterogéneo Poder trabajar únicamente en un entorno asíncrono Adaptarse a un sistema heterogéneo y/o asíncrono. Para garantizar la seguridad en la compra web, es necesario: Garantizar la autenticación/identidad del vendedor. Ofrecer la posibilidad a terceros de acceder a las tareas realizadas por los clientes. Permitir a los clientes publicar sus datos. Ninguna de las anteriores es correcta. Los algoritmos criptográficos: Dificultan el acceso al sistema Dificultan la lectura de los datos Suelen basarse en algoritmos muy complejos No son válidos para sistemas distribuidos. En el cifrado por bloques, se suele utilizar la operación lógica: OR exclusivo. NAND AND OR. La concurrencia permite: Ejecutar varios procesos a la vez. Simular que los procesos se ejecutan a la vez. Limitar el número de procesos que se ejecutan a la vez. Ninguna de las anteriores es correcta. Para un sistema distribuido: La arquitectura big endian no es válida. La arquitectura little endian no es válida. No se pueden combinar dispositivos con diferentes tipos representaciones de datos. Es un aspecto más de la heterogeneidad de un sistema distribuido. La escalabilidad de un sistema: Se centra en poder ampliar el número de usuarios. No tiene en cuenta la inclusión de nuevos nodos. Solo se centra en la posibilidad de aumentar el número de usuarios. No es relevante en un sistema distribuido. Ante un fallo en un sistema distribuido: Lo normal es que el sistema deje de funcionar. Deben implementarse políticas de recuperación de fallos. Siempre hay que informar al usuario. B y C son correctas. La criptografía simétrica: Permite garantizar el no repudio Se basa en la utilización de dos tipos de claves. El emisor y receptor comparten la misma clave Es más seguro que la clave asimétrica. La utilización de certificados: Se basa en la utilidad de la firma digital Se basa en la autogeneración Se basa en los cifrados de clave privada Los certificados no son útiles en los sistemas distribuidos. Dado un sistema distribuido, identifica las diferentes capas del servicio software y hardware: Aplicaciones, hardware adicional, middleware y protocolo UDP, pero no TCP. Aplicaciones, servicios middleware, SO y protocolo de red, hardware distribuido y la red de interconexión. Aplicaciones, servicios locales middleware, SO y protocoles distribuidos HSA y hardware adicional. Solo aplicación de red y servicios middleware. La arquitectura de un sistema distribuido Es siempre cliente-servidor. No puede utilizar soluciones multiprocesador Se basa siempre en objetos distribuidos Depende de la naturaleza del problema, pues no existe una arquitectura válida para todos los contextos. Un semáforo débil: Sigue una política FIFO al despertar los hilos bloqueados. No sigue una política FIFO al despertar los hilos bloqueados. Sigue una política LIFO al despertar los hilos bloqueados. Es el más utilizado en un sistema operativo. La evitación del interbloqueo: Se trata de un enfoque conservador. Permite que se produzcan interbloqueos. Se centra en el concepto de demanda máximo No es efectiva en sistemas distribuidos. Dado el siguiente código: public void run() { for (int i = 0; i < cuenta; i++) { synchronized (c){ int valor = c.getContador(); c.setContador(valor+1); } System.out.println("El Thread " + Thread.currentThread().getName()+ " incrementa el contador a " + c.getContador()); } } El método run es un monitor. Se crea un monitor para modificar el objeto c Se crea un semáforo para acceder al objeto c. No se garantiza la exclusión mutua. Suponiendo que Listado es una clase que hereda Thread, al compilar el siguiente bloque de instrucciones se producirá un error de compilación: public static void main(String [] args) throws InterruptedException{ Listado l1 = new Listado(); Listado l2 = new Listado(); l1.start(); l2.run(); l1.wait(); } Indica el motivo del error: No se ha capturado la excepción InterruptedException. No es posible invocar directamente al método run() sobre un thread Compila correctamente No se puede invocar a wait() fuera de un bloque synchronized. Cuando un thread entra a ejecutar un bloque sincronizado El resto de thread que en ese momento estén ejecutado ese bloque de instrucciones pasarán al estado de espera. No puede invocar al método sleep(). Adquiere el monitor del objeto sincronizado. No abandonará la ejecución mientras no finalice la ejecución de todas las instrucciones del bloque. . La comunicación utilizando UDP: Permite el reenvío de paquetes. La función enviar es bloqueante. La función recibir es bloqueante. Ninguna de las anteriores es correcta. La clase DatagramSocket: Permite solo el envío mediante TCP. Permite solo el envío mediante UDP. Permite enviar y recibir mediante TCP. Permite enviar y recibir mediante UDP. En Java para utilizar streams TCP, se utiliza la clase: InetAddress ServerSocket ServerTCP DatagramSocket. Para instanciar un objeto remoto: Es necesario una dirección para conectar al objeto. No se requiere un puerto de conexión pues es siempre el mismo para aceptar conexiones remotas. Se necesita un tipo de constructor especial en el servidor. Se requiere una arquitectura cliente servidor. Se desea enviar un objeto Java se la siguiente clase por la red: public class Persona{ private String nombrePersona; private String lugarNacimiento; private int añoNacimiento; public Persona () { nombrePersona = cierto_Nombre; lugarNacimiento = cierto_Lugar; añoNacimiento = cierto_Año; } } Es necesario implementar la interfaz serialización. No es necesario serio implementar la interfaz serialización. No se puede enviar un objeto por la serialización. Tendrá que implementar la interfaz Runnable primero. Dado el siguiente código: public void connect(String ip) { InetAddress grupo = InetAddress.getByName(ip]); MulticastSocket s = new MulticastSocket(5789); s.joinGroup(grupo); byte [] m = args[0].getBytes(); } Permite obtener la ip multicast del grupo. Invoca un objeto remoto. Define una arquitectura cliente-servidor. Define una arquitectura cliente-servidor. Dado el siguiente fragmento de código: import java.net.*; import java.io.*; public class Test { public static void main(String[] args) throws UnknownHostException, IOException { String url="java.sun.com"; int puerto =80; Socket sc=new Socket(url, puerto); BufferedReader bf=new BufferedReader( new InputStreamReader(sc.getInputStream())); PrintWriter out=new PrintWriter( sc.getOutputStream(),true); out.println("GET /"); String s=null; while((s=bf.readLine())!=null){ System.out.println(s); } } } No compila porque faltan excepciones por capturar. No es necesario utilizar el puerto de conexión Muestra por pantalla el contenido de la página principal de conexión No se puede utilizar GET para esta petición. Seleccione la respuesta que es correcta: El protocolo UDP no tiene una comunicación por streams La comunicación UDP es fiable La comunicación TCP es fiable. Los procesos se pueden comunicar de forma síncrona y asíncrona. El principio básico de todo sistema distribuido es: Fomentar el rendimiento Aumentar el número de nodos. La cooperación. Ninguna de las anteriores es correcta. . La transparencia de fallos se refiere a: Que no se pueden producir fallos en el sistema concurrente. Que si se produce un fallo, se comunica exactamente el nodo que ha producido el error. Que se intenta recuperar el error y ofrecer un fallo homogéneo. Que se apaga el nodo que ha producido el error y se aborta la tarea. La sincronización distribuida: Se centra en saber exactamente cuándo ocurrió un evento. Se centra en ordenar cronológicamente los diferentes evento No puede saber el orden exacto de los eventos. Ninguna de las anteriores es correcta. El algoritmo de Berkeley: Permite saber exactamente cuándo ocurre un evento Se centra en determinar el orden de los eventos. Se utiliza para establecer la política de sincronización de los nodos Ninguna de las anteriores es correcta. Identifica el enunciado que mejor se ajuste al concepto de escalabilidad para los sistemas distribuidos: La escalabilidad es un término análogo al de extensibilidad La escalabilidad es un término idéntico al de compatibilidad. La escalabilidad tiene como objetivo no medir el grado de efectividad cuando a un sistema distribuido se le incrementan los recursos y usuarios. La escalabilidad tiene como objetivo medir el grado de efectividad cuando a un sistema distribuido se le incrementan los recursos y usuarios. Acerca de la compactación automática de memoria en el lenguaje de programación Java: No existe la compactación automática de memoria en Java. Reduce, en la medida de lo posible, los cuellos de botella producidos por las comunicaciones asíncronas. Reduce, en la medida de lo posible, los cuellos de botella producidos por las comunicaciones síncronas. Suprime de la memoria principal del sistema los objetos que ya no son necesarios. Selecciona aquello que no debe tenerse en cuenta a la hora de seleccionar un sistema seguro Los mejores casos posibles. Los peores casos posibles. La fortaleza que deseamos aplicar. El tipo de sistema que queremos proteger. Los sistemas distribuidos: Tienen un reloj global único porque es importante saber justo el instante en el que ocurre un evento. Únicamente se pueden conectar a través de una red. Siempre están dispersos geográficamente. Ninguna de las anteriores es correcta. La computación ubicua: Se centra en la conexión de muchos dispositivos a un determinado entorno. Requiere de dispositivos muy potentes En incompatible con los sistemas distribuidos. Todas las anteriores son correctas. Para instanciar un objeto remoto: Es necesaria una dirección para conectar al objeto. No se requiere un puerto de conexión, pues es siempre el mismo para aceptar conexiones remotas Se necesita un tipo de constructor especial en el servidor. Se requiere una arquitectura cliente servidor. La integridad de un mensaje: Se garantiza siempre a través de la criptografía. Requiere de valores extra de comprobación. No es parte de la criptografía. No se puede garantizar. La firma digital: Utiliza criptografía de clave pública. Utiliza criptografía de clave privada. Nunca se utiliza en sistemas distribuidos. Utiliza clave semipública. La clase DatagramSocket Permite solo el envío mediante TCP. Permite solo el envío mediante UDP. Permite enviar y recibir mediante TCP. Permite enviar y recibir mediante UDP. El principio básico de todo sistema distribuido es: El fomento del rendimiento. El aumento del número de nodos. La cooperación. La transparencia. El caching en un sistema distribuido que se centra en: Replicar los datos y almacenar los últimos datos accedidos. Almacenar, únicamente, los últimos datos accedidos. Modificar los datos remotos. Replicar, únicamente, los datos. Si MiTarea es una clase que implementa la interfaz Runnable y a partir de ella queremos crear dos tareas y ejecutarlas de forma concurrente, las instrucciones que realiza esta función son: new Thread(new MiTarea()).start();new Thread(new MiTarea()).start(); new Thread(new MiTarea()).run();new Thread(new MiTarea()).run(); new MiTarea().run();new MiTarea().run(); new MiTarea().start();new MiTarea().start();. En un escenario de tiempo crítico donde se premia la velocidad de envío, ¿qué protocolo es más adecuado? Server/TCP TCP/IP. UDP SSH. Entre las siguientes operaciones, identifica aquellas que tienen carácter bloqueante: Todas las operaciones de recibir de TCP y UDP. Las operaciones correspondientes de envío y recibo para la comunicación síncrona. Las operaciones correspondientes de envío y recibo para la comunicación asíncrona. Ninguna operación es bloqueante. Selecciona la respuesta correcta: MD4 no es una función resumen segura. MD5 no es una función resumen segura. SHA es un certificado de broker bancario. SHA es un códec de reproducción de audio. En una comunicación para un sistema distribuido: Es recomendable utilizar TCP para no sobrecargar la red El uso de TCP se justifica cuando los datos tienen que llegar, no importando tanto la velocidad. No se aconseja el uso de UDP para no saturar la red No se recomienda la utilización de TCP debido a la pérdida de paquetes. Para implementar una solución distribuida basada en objetos en Java: Es necesario registrar el objeto remoto mediante el namespace Es fundamental utilizar rmiregistry para que el cliente pueda acceder al objeto. Se debe establecer el puerto 1099 para aceptar conexiones salientes. El cliente debe conocer la implementación del objeto remoto. Al implementar una solución remota en Java RMI: El cliente debe conocer la implementación del objeto. El cliente debe conocer la interfaz del objeto remoto. El cliente debe acceder al puerto 1099 para conectar. El cliente debe registrar el objeto remoto que utilizar. En un contexto en el que es necesario saber que se ha ejecutado un método remoto para llevar a cabo una tarea concreta, ¿qué semántica de invocación RMI es la mejor? Pudiera ser. Al menos una vez. Como máximo una vez. Al menos una vez o máximo una vez. Los sistemas distribuidos basados en eventos se caracterizan por Mejorar el rendimiento en todas las situaciones. Poder trabajar en un sistema heterogéneo. Poder trabajar en un entorno asíncrono. Adaptarse a un sistema heterogéneo y/o asíncrono. En el cifrado por bloques se suele utilizar la operación lógica: XOR NAND AND OR. Si varios procesos concurrentes se ejecutan en un sistema, ocurre que: Para su ejecución compiten por el uso de uno o de varios procesadores Se ejecutan sobre un sistema operativo multiusuario. Comparten el mismo código Necesitan sincronizarse para acceder a los datos que comparten. En un sistema distribuido: Nunca se producen fallos. Si hay un fallo en un nodo, el sistema debe parar completamente. Si hay un fallo en un nodo, el sistema debe continuar su ejecución de manera transparente No es posible añadir nuevos nodos. Respecto a la sincronización de hilos: Siempre es necesario que el sistema operativo ofrezca cómo realizarlo Depende siempre del lenguaje de programación. El sistema operativo puede ofrecer mecanismos para facilitar la sincronización. El programador no es responsable del resultado obtenido. Respecto a los sistemas distribuidos: No se pueden generar fallos. Se puede utilizar el intercambio de mensajes. Se fundamentan en recursos propios de cada máquina. Existe un reloj que comparten todos los nodos. Una intranet (LAN): Siempre forma parte de internet. Nunca forma parte de internet. Puede tener políticas de seguridad independientes. No se utiliza en sistemas distribuidos en ningún caso. Cuando un hilo provoca un desbordamiento de un buffer ocasiona: Inconsistencia de memoria Una condición de carrera Bloqueo activo Inanición. El modelo cliente/servidor Solo se utiliza en sistemas distribuidos. Es el más conocido y común de la actualidad en los sistemas distribuidos No utiliza ninguna red de comunicación. Tiene una baja productividad. La ocultación No es una característica de los sistemas distribuidos Ofrece transparencia a los usuarios. Disminuye el rendimiento de los sistemas distribuidos. Impide saber al usuario si está en un sistema distribuido. El acceso homogéneo: Se centra en ofrecer diferentes formas de acceso que dependen del tipo de dispositivo. Se centra en ocultar al usuario si está entrando o no en un sistema distribuido. Se centra en que el acceso al sistema distribuido siempre se haga de la misma forma, independientemente del punto de acceso o del tipo de dispositivo que acceda. No es una característica relevante de los sistemas distribuidos. La transparencia de acceso: Muestra la representación de acceso. Muestra la representación interna. Oculta únicamente la representación de acceso Oculta la representación y el acceso a los diferentes recursos. El modelo de objetos: No permite referenciar objetos Ofrece interfaces. No es capaz de definir acciones. No soporta excepciones. Cuál de las siguientes opciones es un tipo de amenaza de seguridad? Fuga Hurto Robo Cambio de claves. Los ataques de fuerza bruta: Intentan buscar una vulnerabilidad probando un conjunto reducido de opciones. Intentan buscar una vulnerabilidad probando todas las posibles opciones Son muy rápidos. Encuentran siempre la vulnerabilidad en un tiempo muy corto. Los cifrados de bloques Dividen el mensaje en bloques de diferentes tamaños. Permiten el encadenamiento de bloques. Utilizan siempre la operación OR. Utilizan siempre la operación NAND. |
Denunciar Test