PCTR P2 B02 Semaforos MC Plantilla

Páginas: 13 (3073 palabras) Publicado: 22 de marzo de 2015
Escuela Superior de Informática

Universidad de Castilla-La Mancha

Programación Concurrente y de Tiempo Real

Modelo B02 – Semáforos y Memoria Compartida

Prueba de Laboratorio
Modelo B02 – Semáforos y Memoria Compartida
APELLIDOS: ___________________________________________________________________
NOMBRE:
_____________________________ GRUPO DE LABORATORIO: __________

Indicaciones:



●Calificación

No se permiten libros, apuntes ni teléfonos móviles.
Cuando tenga una solución al ejercicio (compilación + ejecución) muéstrela al profesor.
Debe anotar su solución por escrito en el espacio disponible en este cuestionario.
Tiempo para realizar la prueba: 90 minutos.

Enunciado
Construya, utilizando ANSI C estándar, los ejecutables que modelen un sistema que calcule la fracción
canónica(irreducible) a partir de la descomposición del numerador y denominador como producto de sus
factores primos del modo que se detalla a continuación:




Un proceso manager recibe el numerador y el denominador de una fracción. Éstos se deberán
descomponer factorialmente y sus potencias deberán ser reducidas. Para ello, se lanzará una serie de
procesos factorer. Habrá un proceso factorer paracada número primo, es decir, uno para el 2, otro
para el 3, otro para el 5, etc. hasta N_PRIME_NUMBERS.
Cada uno de estos procesos factorer se encarga de calcular cuántas veces el numerador y el
denominador que el proceso manager ha recibido son divisibles entre el número primo que dicho
proceso factorer debe procesar, y que le ha sido indicado por el proceso manager. A continuación,
deberá eliminaraquél con menor exponente, dejando la diferencia al contrario. Por ejemplo, si el
proceso manager recibe los números 28 y 42, entonces se tendrá que calcular:
2

1

1

28
2 ∗7
2
= 1 1 1= 1
42 2 ∗3 ∗7 3
Para ello, el proceso factorer encargado de procesar el nº primo 2 deberá calcular que puede dividir el
numerador 2 veces y el denominador 1 vez, dejando en el numerador 2 1; el proceso factorerencargado de
procesar el nº primo 3 deberá calcular que puede dividir el numerador 0 veces y el denominador 1 vez,
dejando en el denominador 31; y el proceso factorer encargado de procesar el nº primo 7 deberá calcular que
puede dividir el numerador 1 vez y el denominador 1 vez, eliminando por completo las potencias asociadas a
éste.
Para facilitar la implementación, dispone de vectores paraalmacenar los exponentes de las potencias de
los números primos en los que se descomponen el numerador y denominador (ver struct TData_t). Así, los
valores ya simplificados para los datos del ejemplo anterior serán (para los 4 primeros números primos):
Numerador: 21 30 50 70 → vector numerator_exponent [1, 0, 0, 0]
Denominador: 20 31 50 70 → vector denominator_exponent [0, 1, 0, 0]

Consideraciones:

••

No es obligatorio, aunque sí muy recomendable, realizar la comprobación de errores.
Preste especial atención a lograr el máximo paralelismo posible en la solución.
Utilice la primitiva memcpy en el proceso factorer para copiar, en una variable local, la orden recibida del
proceso manager.
Página 1 de 10

Escuela Superior de Informática

Universidad de Castilla-La Mancha

Programación Concurrentey de Tiempo Real

Modelo B02 – Semáforos y Memoria Compartida

Resolución
Utilice el código fuente suministrado a continuación como plantilla para resolver el ejercicio. Este código no debe ser
modificado (salvo la inicialización de los semáforos en el proceso manager). Únicamente debe incorporar su código en
la sección indicada. No realice comprobación de errores en los parámetros.

 Indique acontinuación el valor de inicialización de los semáforos (código en manager.c):
Línea Código

Semáforo

Uso

371

SEM_TASK_READY

Nueva orden; despierta a un proceso factorer

372

SEM_TASK_READ

Indica al manager que la orden fue leída

373

SEM_TASK_PROCESSED

El proceso factorer terminó su trabajo

Inicialización

Test de Resultado Correcto
Una vez resuelto el ejercicio, si ejecuta el...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • P2
  • p2
  • P2
  • P2
  • P2
  • P2
  • Semaforo
  • Los Semaforos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS