12.07.2015 Views

Introducción - Departamento de Lenguajes y Sistemas Informáticos

Introducción - Departamento de Lenguajes y Sistemas Informáticos

Introducción - Departamento de Lenguajes y Sistemas Informáticos

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Programación Concurrente. I.T. <strong>Sistemas</strong> y Gestión. Relación <strong>de</strong> Problemas 1337. En un sistema distribuido, 6 procesos clientes necesitan sincronizarse <strong>de</strong> formaespecífica para realizar cierta tarea, <strong>de</strong> forma que dicha tarea sólo podrá ser realizadacuando tres procesos estén preparados para realizarla. Para ello, envían peticiones a unproceso controlador <strong>de</strong>l recurso y esperan respuesta para po<strong>de</strong>r realizar la tareaespecífica.El proceso controlador se encarga <strong>de</strong> asegurar la sincronización a<strong>de</strong>cuada. Para ello,recibe y cuenta las peticiones que le llegan <strong>de</strong> los procesos, las dos primeras no sonrespondidas y producen la suspensión <strong>de</strong>l proceso que envía la petición (<strong>de</strong>bido a que sebloquea esperando respuesta) pero la tercera petición produce el <strong>de</strong>sbloqueo <strong>de</strong> los tresprocesos pendientes <strong>de</strong> respuesta. A continuación, una vez <strong>de</strong>sbloqueados los tresprocesos que han pedido (al recibir respuesta), inicializa la cuenta y proce<strong>de</strong> cíclicamente<strong>de</strong> la misma forma sobre otras peticiones.El código <strong>de</strong> los procesos clientes es el siguiente, asumiendo que se usan operacionesbloqueantes no buferizadas.Cliente(i) (i=0, ... , 5)While (true){ send (&peticion,Controlador);receive (&permiso, Controlador);Realiza_tarea_grupal ( ); }Escribir en pseudocódigo, <strong>de</strong>ntro <strong>de</strong>l espacio reservado abajo, el código <strong>de</strong>l procesocontrolador, utilizando una or<strong>de</strong>n <strong>de</strong> espera selectiva que permita implementar lasincronización requerida entre los procesos.While (true){...Controlador}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!