Desarrollar software

Completed Posted Apr 18, 2015 Paid on delivery
Completed Paid on delivery

Se deberá desarrollar una aplicación multiproceso. La aplicación constará de un programa

servidor que creará 5 procesos hijo. Estos procesos compartirán una zona de memoria

compartida en la que almacenarán sus PID en orden de creación (una forma cómoda de

hacer esto es que lo haga el proceso padre del resto, es decir, el proceso inicial). Los PID

se utilizarán para el envío de la señal SIGUSR1 entre los procesos con el objetivo de que

los procesos se intercambien el "turno de activación". Sólo uno de los procesos podrá

tener el turno en cada momento. Inicialmente el turno pertenecerá al primer hijo y,

posteriormente, lo pasará a otro proceso hijo. El proceso que reciba el turno deberá

esperar un tiempo aleatorio entre 1 y 10 segundos antes de pasarlo a otro proceso hijo. El

siguiente proceso se elegirá de forma aleatoria. El envío de la señal se protegerá con un

semáforo. Este proceso se repetirá un máximo de 100 veces (el contador también puede

almacenarse en memoria compartida).

Además se creará otro programa que enviará un número entre 1 y 5 (los procesos hijos)

al otro programa. Si se acierta con el hijo que tiene el turno se mostrará “acierto” por

pantalla y nada en caso contrario. Para que no se realice el envío en medio de un cambio

de turno se sincronizará el envío con el semáforo que protege el envío de señales en el

otro proceso. El envío del número y la correspondiente respuesta se realizarán por

cualquiera de los métodos vistos a lo largo de la asignatura.

También será necesario crear una versión multihilo del primer programa. En este caso, el

programa deberá crear hilos de ejecución en lugar de procesos. Este programa también

deberá recibir los números del segundo programa y responder de la misma forma.

C Programming Linear Programming Software Architecture

Project ID: #7510845

About the project

1 proposal Remote project Active Apr 25, 2015

Awarded to:

jgrateron

Tengo varios años programando en lenguaje c, usando multiprocesos fork() o pthreads de ejecuciòn, tambien he usado la libreria semaphore.h para la sincronizaciòn de procesos y tambien la libreria pthread.h que tambien More

$30 USD in 5 days
(3 Reviews)
1.8