next up previous
Next: Ejercicios Up: Programas y librerías Previous: Transferencia de ficheros

Retoques y temas avanzados (trabajo opcional)

La librería y los programas así construidos tendrán un funcionamiento correcto en el caso de que nada falle en la parte de usuario. Si se plantea la posibilidad de que el programa de usuario finalice sin cerrar los endpoints de lectura que está empleando hace falta buscar un método para que la entidad de comunicación reconozca este suceso y libere los puntos de acceso que estuviera empleando. Una posibilidad es que el bloque $A$ haga comprobaciones de cuántos procesos están empleando una zona de memoria compartida, si solo hay uno es él debido a que haya desaparecido el proceso lector. Esto se puede comprobar mediante una llamada shmctl del tipo IPC_STAT.

Por otro lado tambien hace falta una forma cómoda de detener los programas nucleo y muxin que se encargue de eliminar con ellos los posibles semáforos, colas de mensajes y zonas de memoria compartida que estuvieran empleando. Una posibilidad es poner una función que se ejecute al recibir las señales SIGINT o SIGTERM y que antes de terminar el proceso elimine todas las zonas de memoria compartida, los semáforos y la cola de mensajes.


next up previous
Next: Ejercicios Up: Programas y librerías Previous: Transferencia de ficheros
Daniel Morato 2000-11-06