[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]> He estado leyendo el Linux Programmer's Guide, del Linux Documen- > tation Project y tengo algunas consultas acerca de la programacion > en Linux que seguramente alguien de la lista me podra responder: > > a) Cual es la utilidad de utilizar colas de mensajes o semaforos si > tenermos en cuenta que la memoria compartida (shared mem), hace > las mismas tareas y a mas alta velocidad? Si utilizas directamente la memoria compartida, puedes llegar a necesitar un mecanismo para la correcta sincronizacion de procesos, para que dos procesos no escriban por error al mismo lugar, o para evitar situaciones de bloqueo mutuo, en que (por ejemplo) dos procesos requieren dos recursos, cada cual toma uno y espera indefinidamente a que el otro suelte el otro. En estos casos, las soluciones mas aptas son los semaforos. > b) Que son las se#ales o signals? Sospecho que tienen algo que ver > con estos temas de la comunicacion entre procesos pero no son nom- > bradas en el libro. Hay una gran variedad de se&ales, y no te se decir para que sirve cada una. El uso mas comun es para reiniciar, terminar o matar un proceso. Por ejemplo, si yo modifique mi archivo httpd.conf, le doy un SIGHUP a httpd para que vuelva a leer su configuracion. Si quiero terminar por alguna razon un proceso, le puedo mandar un SIGTERM, para que este cierre de inmediato sus buffers y se mate a si mismo - y si por alguna razon el proceso no se quiere morir (por ejemplo, si esta bloqueado, o si esta ignorando la se&al SIGTERM) le puedo mandar un SIGKILL, que no es ignorable, y lo mata a la mala. > c) Donde puedo encontrar mas informacion relacionada? Te sugiero dos libros: El entorno de programacion Unix, por Robert Pike y Brian Kernighan, y Sistemas Operativos - Dise&o e implementacion, por Andrew Tannenbaum. > d) Que aplicaciones practicas usan la comunicacion entre proce- > sos? Es decir, que programas las usan? Supongo que los que estan > escritos en "estilo" cliente-servidor y en los daemons. Es asi? Yo > veo muy clara la utilidad en aplicaciones de red, pero no tanto > en aplicaciones "locales" (sera que en Linux todas las aplicaciones > son de "red"?). Con todo temor a equivocarme... De una manera o de otra, me parece que todas las aplicaciones Unix piensan en funcion a red. De hecho, una manera de lograr comunicacion entre procesos es por medio de sockets INET, pero otra es por medio de sockets Unix - que para el programa se ven igual, pero son implementados, en vez de especificando direcciones IP y puertos origen/destino, por medio de un archivo en tu arbol. > Espero que alguien pueda responderme estas consultas, y tengan > en cuenta que recien estoy empezando a leer un poco sobre esto, > y quiza algunas preguntas suenan un poco ilogicas. Muchas Gracias! Espero haberle atinado a las respuestas ;) ------------------------------------------------------------------- NOTA - La UNAM se va a paro. Por favor, hasta que quede resuelto el asunto, quien me quiera escribir hagalo a gwolf en chmd edu mx ------------------------------------------------------------------- Gunnar Wolf gwolf en campus iztacala unam mx tel. 5623-1118 Universidad Nacional Autónoma de México, Campus Iztacala Jefatura de Sección de Admon. de Sistemas y Telecomunicaciones -------------------------------------------------------------------