Anda di halaman 1dari 2

GABY

Conclusin practica 4 Las tuberas son el mecanismo original de comunicacin entre procesos bajo el sistemas operativo UNIX, Aunque es muy til para muchas operaciones tiene la limitante que no tienen nombre, y solo puede ser usado entre procesos que estn relacionados en parentela. Esto fue corregido tiempo despus con la introduccin de los FIFO s, muchas veces llamados tuberas con nombre. Ambas tuberas y FIFO s son accesados usando las funciones normales read y write. Una tubera sin nombre (o pipe) solo puede ser usado entre procesos que heredan por medio de la llamada fork. Para leer y escribir en una tubera se usan descriptores de archivos, uno de ellos se usa para leer el archivo de paso de mensaje, y el otro para escribir en l.

Conclusin practica 5 La funcin pipe() abre una "tubera" de comunicacin y nos devuelve dos descriptores de fichero abiertos, uno por cada extremo de la tubera. Por el primero de ellos se puede leer lo que se escriba por el segundo. La ventaja de este mecanismo, es que si creamos la tubera antes de crear el proceso hijo, como el proceso hijo se hace copia de todo lo del padre, tambin copia la tubera. Es decir, tanto el padre como el hijo tienen los dos descriptores de la tubera abiertos y utilizables. La funcin pipe() devuelve -1 en caso de error. Nuestro cdigo de ejemplo quedara Si queremos una comunicacin bidireccional, es mejor abrir dos tuberas (llamar dos veces a la funcin pipe()). Para evitar equivocaciones, y sobre todo para no mantener recursos ocupados innecesariamente, el proceso padre debe cerrar el lado de la tubera que no vaya a utilizar. El hijo tiene su propia copia de ese lado, as que aunque el padre lo cierre, para l sigue abierto y utilizable. El hijo debe cerrar el otro extremo. En el ejemplo cerraremos el descriptor de lectura en el padre y el de escritura en el hijo.

Conclusin practica 6 Los pipes (tuberas) con nombre son una va de intercambio de datos. Igual que los pipes estudiados se gestionan mediante el mtodo FIFO, es decir, el primer byte introducido por el emisor ser el primer byte en ser extrado por el receptor. Las tuberas con nombre tambin reciben el nombre de FIFOs. Tambin son una va de comunicacin unidireccional como los pipes.

Un proceso hijo hereda los descriptores de archivo presentes en el proceso padre. Si se desea establecer una comunicacin bidireccional entre padre e hijo se deben emplear dos pipes, no es posible realizarlo con uno solo

Conclusin practica 7 Para implementar esta comunicacin necesitamos otra tubera que sirva de canal entre el proceso receptor y el emisor. Podramos sentirnos tentados a aprovechar una sola tubera como canal bidireccional, pero esto plantea problemas de sincronismo y tendramos que ayudarnos de otro tipo de comunicacin. Entonces, si un proceso escribe en la tubera un mensaje para otro proceso y se pone a leer de ella la respuesta que le enva ste, puede darse el caso de que lea el mensaje que l mismo envi. Lo mejor es tener dos tuberas: una lleva los mensajes que van del proceso A al proceso B, y la otra lleva los mensajes en sentido contrario.

Conclusin practica 8 La primera vez que un proceso accede a una de las pginas de memoria virtual compartida, tiene lugar un fallo de pgina. El Sistema Operativo trata de solventar este fallo de pgina y se da cuenta de que se trata de una pgina correspondiente a un segmento de memoria compartida. Entonces, se busca la pgina correspondiente a esa pgina de memoria virtual compartida, y si no existe, se asigna una nueva pgina fsica. La manera mediante la que un proceso deja de compartir una regin o segmento de memoria compartida es muy parecida a lo que sucede con los enlaces entre ficheros: al borrarse un enlace no se procede al borrado del fichero enlazado a no ser que ya no existan ms enlaces a dicho fichero. Cuando un proceso se desenlaza o desencadena de un segmento de memoria, se comprueba si hay ms procesos utilizndolo. Si es as, el segmento de memoria contina como hasta entonces, pero de lo contrario, se libera dicha memoria.

Anda mungkin juga menyukai