Prac Febrero 20 21 A
Prac Febrero 20 21 A
Prac Febrero 20 21 A
1. Notas de Procedimiento
1. Dispone de 180 minutos para completar el ejercicio.
2. Puede utilizar el material bibliográfico (libros) y copia de API que estime
convenientes. Se prohíbe el uso de apuntes, pen-drives y similares.
3. Todos los ficheros de código generados deben incluir un comentario que
incluya nombre, apellidos y D.N.I.
4. Entregue sus productos, utilizando la tarea de entrega disponible en el
Campus Virtual, en un fichero (.rar, .zip) de nombre
Apellido1_Apellido_2_Nombre
que contendrá una subcarpeta por cada enunciado del examen, la cual
contendrá a su vez el conjunto de ficheros que den solución a ese enunciado
en particular. Cada fichero de código debe incluir un comentario con su
nombre, apellidos y D.N.I.
5. No se aceptarán bajo ningún concepto entregas efectuadas por
medios diferentes a la tarea de subida, ni fuera del plazo de
examen establecido. Por tanto, debe asegurarse de entregar sus
productos en el plazo establecido y mediante la tarea habilitada
a tal efecto.
2. Criterios de Corrección
Veáse la ficha de la asignatura, apartado Sistema de Evaluación, subapartado
Criterios Generales de Evaluación.
3. Enunciados de Examen
1. (Paso de Mensajes con MPJ-Express, 3.5 puntos) Se desea escribir un
programa utilizando MPJ-Express que efectúe el siguiente procesamiento
sobre una matriz cuadrada de 4×4 elementos de números enteros positivos
en el rango [0, 1]:
1
existirá un proceso master que enviará a cada proceso slave una fila
de la matriz.
cada proceso slave efectuará la suma de los componentes de la fila
recibida, y remitirá esa suma al proceso master; antes de hacerlo,
imprimirá en pantalla el valor de la suma.
el proceso master efectuará a su vez la suma de los valores enviados
por los procesos slaves, y la presentará en pantalla.
el proceso master cargará en su código los datos de la matriz.
2
3. (TAD Lista Sincronizada con C++, 3.0 puntos) Deseamos disponer de
una implementación basada en arrays del TAD lista que sea segura frente
a concurrencia, utilizando para ello el lenguaje C++. Las operaciones que
la implementación debe soportar son las habituales de este TAD, y debe
incluir la operación de imprimir la lista. Efectúe la implementación del
TAD indicado de forma que los observadores y modificadores sean seguros
frente a concurrencia. Incluya un programa principal que haga uso de una
de estas listas, si se crea con un tamaño igual a diez componentes, y que
tenga no menos de dos hebras que trabajen concurrentemente sobre la
lista. Asegúrese de incluir en el programa principal impresiones de la lista
que permitan comprobar de manera inequívoca la coherencia de la misma
frente a accesos concurrentes. Guarde el código en secList.cpp. NOTA:
el código debe compilar obligatoriamente con g++ -std=c++11 -pthread
secList.cpp