RatonTimonelCalcetinezPardos
|
|
Título del Test:
![]() RatonTimonelCalcetinezPardos Descripción: PreguntasDe Ratones con calcetines |



| Comentarios |
|---|
NO HAY REGISTROS |
|
¿Qué tipo de programas concurrentes pueden presentar excepciones a la regla de independencia de la velocidad relativa de ejecución de los procesos?. Aplicaciones de tiempo real, donde la prioridad de los procesos y el tiempo de respuesta son críticos. Programas que no comparten recursos entre procesos. Programas escritos en lenguajes de bajo nivel. Programas que se ejecutan en sistemas con un solo procesador. ¿Qué son las condiciones de carrera en la programación concurrente?. Problemas que se solucionan utilizando la instrucción fork(). Errores que se producen cuando la corrección del programa depende del orden o la velocidad de acceso a recursos compartidos por varios procesos. Condiciones que se utilizan para sincronizar el acceso a recursos compartidos. Situaciones en las que un proceso se ejecuta más rápido que los demás. ¿Qué se entiende por no determinismo en la ejecución de programas concurrentes?. Que el programador puede controlar completamente el orden de ejecución de las instrucciones. Que la ejecución del programa depende del hardware específico en el que se ejecuta. Que no se puede predecir qué secuencia de entrelazamiento de instrucciones se producirá en cada ejecución del programa. Que el programa siempre produce el mismo resultado, independientemente del orden de ejecución de las instrucciones. ¿Qué es el modelo abstracto de computación en la programación concurrente?. Un modelo que permite expresar el paralelismo potencial de los programas independientemente de la implementación del paralelismo en el hardware. Un modelo que solo se puede implementar en arquitecturas de hardware específicas. Un modelo que no tiene en cuenta la sincronización y la comunicación entre procesos. Un modelo que solo se puede utilizar en lenguajes de bajo nivel. ¿Qué elementos se incluyen en la zona de memoria de un proceso, desde el punto de vista del sistema operativo?. Solo la secuencia de instrucciones que se están ejecutando. Únicamente el espacio de datos ocupado por variables globales y la pila. La secuencia de instrucciones, el espacio de datos, la pila y la memoria dinámica (heap). El conjunto de archivos y recursos a los que el proceso tiene acceso. ¿Cuáles son los dos escenarios fundamentales de sincronización entre procesos en la programación concurrente?. Sincronización mediante condiciones y sincronización por exclusión mutua. Sincronización síncrona y sincronización asíncrona. Sincronización por tiempo y sincronización por evento. Sincronización por hardware y sincronización por software. ¿Cómo se denomina el bloque de código que debe ejecutarse en exclusión mutua?. Sección paralela. Región sincronizada. Sección concurrente. Sección crítica. En la arquitectura MPJ-Express de Java: La operación Scatter solo permite que un proceso raíz distribuya la misma información a todos los procesos esclavos, independientemente del número de ellos. La operación Scatter necesita obligatoriamente otra operación Gather para recoger la información. De lo contrario, se producirá un bloqueo. El resto de respuestas son correctas. La operación Scatter no necesita, en ningún caso, indicar el identificador de los procesos que recibirán la información distribuida. La memoria transaccional software es una herramienta de control de la concurrencia que permite a una multiplicidad de tareas concurrentes el acceso a datos compartidos, gestionándolos dentro del ámbito de una transacción. El uso de esta herramienta permite a los programadores el desarrollo de código concurrente que posee las propiedades siguientes: Vivacidad y seguridad. Vivacidad, pero no seguridad. Solo seguridad. Solo vivacidad. En un sistema de tiempo real soportado por un procesador SISD con ciclo de vida controlado mediante un esquema de planificación cíclica de prioridades. Hay control de exclusión mutua entre datos compartidos sin necesidad de control explícito. Hay paralelismo. El ciclo principal tiene un hiperperiodo TM = mcd(T1,T2,...,Tm). Hay concurrencia. En lenguaje C++ para simular un semáforo con un monitor este necesitará, única y exclusivamente, los siguientes recursos: Tal simulación es imposible con el API de concurrencia de C++. Un objeto unique_lock<mutex> y dos objetos condition_variable. Un objeto condition_variable. Un objeto unique_lock<mutex> y un objeto condition_variable. El algoritmo de Eisenberg-McGuire para control de la exclusión mutua es un ejemplo de técnica de control de la exclusión mutua. Muy eficiente. Basada en bloqueos. De escasa complejidad. El resto de las opciones no son correctas. Sea y el intervalo [a,b] . Se requiere un programa paralelo para aproximar numéricamente a la integral utilizando la fórmula del punto medio compuesta, que fragmenta el intervalo de integración en subintervalos, aproxima la superficie de cada subintervalo con la fórmula indicada, y luego los suma, según ilustra la figura: Procesar cuatro tareas Runnable, almacenando las superficies de cada subintervalo en posiciones distintas de un array con necesidades obligadas de exclusión mutua. La resolución de esta aproximación de la integral de forma paralela sobre una máquina octa-core sin hyperthreading con memoria común, utilizando el lenguaje de programación Java requiere:3. Procesar ocho tareas Callable, recolectando las subsuperficies en un array Future, cuyo contenido posteriormente debe ser sumado. Utilizar un esquema de paso de mensajes mediante el framework RMI, donde un cliente envía secuencialmente a un servidor remoto cada uno de los subintervalos; el servidor remoto devuelve las subsuperficies, y el cliente las suma y ofrece el resultado. La ejecución de un conjunto de múltiples tareas Runnable que comparten memoria se efectúa a través de un ejecutor Executor.newSingleThreadExecutor. Esto garantiza al programador responsable. Exclusión mutua sobre la memoria compartida. Interbloqueo entre las tareas. Paralelismo entre las tareas. Concurrencia entre las tareas. Las instancias que pertenecen a la clase ThreadPoolExecutor para soportar un pool de hebras en el lenguaje Java: Son capaces de adaptarse a la carga de tareas que se les envía de forma dinámica a lo largo de su ciclo de vida; esta adaptabilidad viene inicialmente determinada por el programador a través de los parámetros del constructor de clase. Si el número de hilos del tamaño de la instancia del pool (corePoolSize) es igual al tamaño máximo de la instancias del pool (maximumPoolSize), la instancia del pool pasa a ser de capacidad fija. El resto de respuestas son correctas. Son capaces de ejecutar concurrentemente tareas modeladas mediante objetos de un conjunto de clases diferentes, todas las cuales se han construido implementando la interfaz Runnable. Con respecto a la programación concurrente, indique la frase correcta. Las soluciones que la programación concurrente da para la sincronización y comunicación son específicas para programas concurrentes y, por tanto, no válidas para programas paralelos. La programación concurrente se ocupa del análisis, diseño, implementación y depuración de programas concurrentes en función del lenguaje concreto con el que se implementa la concurrencia. El resto de opciones no son correctas. Un programa concurrente siempre será determinista en su ejecución si se han tratado correctamente las condiciones de concurso que pudiesen existir (orden total). Indique la frase correcta con respecto a objetos atómicos y variables volatile en el lenguaje Java. Las variables volatile garantizan la exclusión mutua, así como la visibilidad de los cambios en memoria principal para programas concurrentes. Los objetos atómicos garantizan la exclusión mutua en operaciones de lectura y escritura, así como la visibilidad de los cambios en memoria principal para programas concurrentes. Los objetos atómicos aseguran la visibilidad de los cambios en memoria principal para programas concurrentes, mientras que las variables volatile garantizan la exclusión mutua. El resto de las opciones no son correctas. A continuación, se muestra una figura que representa un pequeño fragmento de la evolución del tiempo de ejecución de una tarea RT periódica de tipo firme. Siendo T el periodo de activación de la tarea y D el plazo de respuesta máximo, usted considera que: Se produce un fallo en el programa, ya que no se cumple el plazo de respuesta máximo en ninguno de los periodos. Se produce un fallo en el programa, al no cumplirse el plazo de respuesta máximo en un periodo. No es posible determinar con absoluta certeza fallos futuros del programa, a partir de este fragmento. Dado el fragmento proporcionado, es posible garantizar con absoluta certeza que no se produce ningún fallo en el programa. La herencia de la clase Thread o implementación de la interfaz Runnable en Java pertenecen a una técnica de creación de entidades concurrentes: Automática, donde el compilador detecta la concurrencia implícita y genera los procesos concurrentes. Manual y dinámica. Manual, pidiendo creación de procesos al sistema operativo mediante llamadas al sistema específicas (fork, CreateProcess…). Automática, donde el sistema operativo detecta la concurrencia implícita y genera los procesos concurrentes. Se le ha encargado el desarrollo de un sistema de gestión de reservas de vuelos on-line. Para el manejo interno del acceso y los datos, ha decidido utilizar una arquitectura distribuida utilizando el framework RMI del lenguaje Java. Asuma que el sistema será utilizado por múltiples clientes de forma simultánea, y que es necesario garantizar la unicidad billete-cliente en la venta ¿Cuál de las siguientes afirmaciones es cierta?. No será necesario programar control de exclusión mutua, ya que de eso se encarga el framework RMI. Será necesario programar control de exclusión mutua tanto en el lado del servidor como en el del cliente. Será necesario programar control de exclusión mutua en el lado del servidor. Será necesario programar control de exclusión mutua en el lado del cliente. Considere una aproximación puramente teórica al conocido problema de sincronización del Productor-Consumidor, donde asumimos que el buffer intermedio que permite las interacciones entre tareas productoras y consumidoras es infinito; hay múltiples tareas productoras que generan ítems de datos que insertan en el buffer, y múltiples tareas consumidoras que extraen datos del buffer y los utilizan. Bajo los presupuestos citados, el número mínimo de condiciones de control necesarias (tanto de sincronización como de control de coherencia de la información del buffer), si se utilizan semáforos para soportarlas es de: 2. 1. 4. 3. De las siguientes aserciones, marque aquella que considere correcta. Las regiones críticas condicionales dan prioridad a las hebras de cola de exclusión mutua frente a las hebras de la cola de eventos. La memoria transaccional software disponible en Clojure engloba el acceso a recursos compartidos dentro de transacciones que evitan la exclusión mutua pero no los interbloqueos. La primitiva teórica conocida como barrera cíclica puede ser simulada con los lenguajes Java (y el API de alto nivel) y C++ mediante monitores con una única variable de condición. Cuando se programa un monitor con el lenguaje C++, es posible para el programador elegir entre las semánticas de señalización "señalizar y continuar" y "señalar y salir", mediante una adecuada parametrización del constructor del mutex empleado para controlar la exclusión mutua en el acceso a tal monitor. Se desea desarrollar una solución a un problema en el que es necesario controlar la sincronización de las hebras en el acceso a los datos comunes. Para ello, se especifica que debe usar únicamente el API estándar de Java. De las siguientes, indique qué implementación está disponible de forma nativa: se dispone de semáforos generales y binarios con una semántica igual a la estándar de Dijkstra. se dispone de semáforos generales, pero no binarios. Es posible simular estos últimos indicando al constructor del semáforo los valores 0 o 1. se dispone de semáforos generales y binarios, pero con una semántica distinta a la estándar de Dijkstra. no se dispone de semáforos. En un sistema concurrente soportado sobre un cluster de procesadores con un total de 256 núcleos de ejecución distribuidos en 16 nodos de cómputo, donde no existe una memoria común para todas las tareas y nodos, se toma la decisión de comunicar a las mismas mediante el uso del paradigma de paso de mensajes, y se procede a estructurar la comunicación entre esas tareas mediante el uso de operaciones de naturaleza asíncrona; el programador responsable sabe entonces que esto implica: la interacción siempre simultánea de cada tarea receptora y emisora que se comunican entre sí para el proceso de intercambio de datos mediante un mensaje. la necesidad del uso de protocolos de exclusión mutua para preservar la coherencia de la memoria frente a las interacciones de las tareas. el total desacoplamiento mediante buzón de las interacciones entre los tareas emisoras y receptoras. El resto de opciones no son correctas. Considere un sistema con 32 núcleos y tecnología de virtualización de núcleos, donde se ejecuta una aplicación concurrente formada por un total de 64 hebras. Las hebras de la aplicación comparten una zona de memoria común, y acceden a la misma bajo una sección crítica, que está controlada mediante un protocolo de control de exclusión mutua soportado por un semáforo S, conforme a la definición de Djikstra de 1965. En estas condiciones. el valor inicial del semáforo S es indiferente para un problema de esta naturaleza, siempre que las operaciones Wait y Signal estén adecuadamente emparejadas en el código de cada hebra, a fin de garantizar la exclusión mutua sobre las secciones críticas y de evitar escenarios de interbloqueo. el valor del semáforo S tomará valores en el conjunto V={0 ,1} mientras haya hebras interaccionando con la memoria común a través de las secciones críticas que S protege. el valor final resultante del semáforo S una vez que la totalidad de las hebras dejan de acceder a sección crítica es igual a cero. el valor inicial del semáforo S es igual al número de hebras concurrentes de la aplicación, a fin de cumplir con las ecuaciones de invariancia. En una aplicación concurrente las necesidades de exclusión mutua identificadas por el equipo de programadores lleva a estos a decidir el uso de los siguientes recursos: una región crítica condicional, un monitor con señalización SC y tres variables de condición, y un monitor con señalización SU y una única variable de condición. Asuma un hipotético lenguaje de programación en el que las tres técnicas están disponibles para su uso durante la implementación. En estas condiciones, el número total de colas de espera presentes en la aplicación es igual a: 9. 8. 7. 6. El uso de paralelismo mediante división del dominio de datos en memoria compartida no puede realizarse…. ... en el lenguaje de programación Java. ... en el lenguaje de programación C++. ... con el API MPJ-Express para Java. ... en el lenguaje de programación C con pthreads. Utilizando programación con pasos de mensajes bajo el framework MPJ-Express para Java, un determinado proceso de la aplicación puede pertenecer a un número de comunicadores exclusivamente igual a. 1. el resto de opciones no son correctas. 2. 3. De entre las sentencias propuestas, seleccione la correcta para el lenguaje de programación JAVA. El uso de paralelismo mediante división del dominio de datos en memoria compartida no puede realizarse con el API MPJ-Express para Java. Todas las demás respuestas son correctas. Si se desea garantizar la coherencia en la lectura de los datos almacenados en una variable de tipo float y la arquitectura donde se está ejecutando el software es multiprocesador, es imprescindible declarar dicha variable como volatile si estamos trabajando con la API estándar de Java. Suponga una sección crítica protegida en exclusión mutua mediante un protocolo correctamente implementado. Si hubiese un proceso ligero ejecutando las instrucciones del protocolo de salida, todos los demás procesos ligeros que deseen acceder a la sección crítica podrán encontrarse en ese momento ejecutando instrucciones del protocolo de entrada. Considere, desde un punto de vista puramente teórico, una región crítica condicional (en adelante, RCC) según Palma et al. En estas condiciones, usted considera que. Es posible simular directamente esa RCC con un monitor en C++. Es posible simular directamente esa RCC con un monitor en Java construido con synchronized y notifyAll(). Es posible simular directamente esa RCC con un monitor en Java construido con ReentrantLock y Condition. No es posible simular directamente esa RCC con ninguno de los dos lenguajes. |




