Objeto de datos
Solo puede utilizar el recurso un proceso y solo uno, es decir, o bien un proceso estaráescribiendo o bien leyendo, pero nunca ocurrirá simultáneamente (teniendo en cuenta que si no lo esta utilizando nadie, tendrá preferencia el escritor ante el lector).
Se considera a cadausuario(lector y escritor) como dos procesos y al fichero en cuestión como un recurso. De modo que, para que un proceso acceda al recurso que necesita, tenemos que considerar a cada usuario (lector yescritor) como dos semáforos. Estos semáforos son binarios y valen 0 si el recurso (fichero) está siendo utilizado por otro proceso y 1 si dicho recurso está disponible.
La solución de este problema se basaen implementar un algoritmo eficiente (véase algoritmo) en el manejo de semáforos y memoria compartida que seguidamente describimos. A lo largo del programa se utilizan funciones necesarias para elmanejo de memoria compartida (véase "rshmem.h Y "rshmem.c") manejo de semáforos (véase "semaph.c" .)
Para que el problema esté bien resuelto se tiene que cumplir:
- No se puede hacer esperar aningún proceso lector si ningún proceso escritor accede al recurso.
- Cuando un escritor debe realizar su tarea, debe ocurrir cuanto antes, sin que deban interferir los procesos lectores.(Para ello seestablecen prioridades).
Función Main
Creación de un proceso padre y de su proceso hijo (lectores, escritores).
Descripción
escribir( ); Esta función implementa el acceso a unrecurso compartido, que será la variable que contabiliza el total de veces que el usuario escribe. En esta función se han incluido varias llamadas al macro TP. Este macro implementa un retardo aleatoriocon el fin de dar cierto tiempo a que ocurran interrupciones que puedan detener la ejecución del proceso en su "cuanto" de tiempo asignado por el S.O.. En nuestro caso, es necesario realizar unas...
Regístrate para leer el documento completo.