[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]

[Hilos de Discusión] [Fecha] [Tema] [Autor]

Re: Otra ayuda con c por favor



Hola:

	1. seria mejor que nos pasaras el codigo de lo que estas
intentando hacer y ya veremos:

	Ahora que hace FORK?

	La llamada a fork es la unica manera de crear procesos en UNIX
-todos los flavours-, proceso quien invoca a FORK es el padre (cuyo
identificador sera > 0) y el proceso creado es el hijo (identificador = 0)

La llamada hace que el proceso actual se duplique. Despues de la llamada a
FORK ,si todo fue bien -exitosa la llamada-, entonces los dos procesos
(padre e hijo) tienen una copia identica del contexto del nivel de
usuario.

Llamada a FORK, el Kernel realiza lo sig:

	1 Busca una entrada en la tabla de procesos y la reserva para el
proceso hijo.

	2 Asigna un ID de proceso al proceso hijo.  Este numero es la
clave p/ poder controlarlo desde otros procesos.  (ver man ps)

	3 Realiza una copia del contexto del nivel de usuario del proceso
padre p/ el proceso hijo. Las secciones que deban ser compartidas, como el
codigo o las zonas de memoria compartida, no se copian, sino que solo se
incrementan los contadores que indican cuantos procesos comparten esas
zonas.
	4 Las tablas de control de ficheros locales al proceso, ejemplo,
tabla de descriptores de archivo, tambien se copian del proceso padre al
proceso hijo, ya que forman parte del contexto del nivel de usuario. Se
incrementan en las tablas globales los contadores a las tablas de kernel,
archivos e inodos, indicando cuantos procesos tienen abiertos esos
archivos.

	5 Regresa al proceso padre el PID del proceso hijo, y al proceso
hijo le devuelve el valor 0.


De manera sucinta eso es lo que sucede, ahora bien que pretendes hacer?
para ejecutar algo nuevo, tienes que hacer uso de las llamadas al sistema
exec*, cualquiera de sus flavours y voila..., solo tienes que tener
cuidado si el padre espera (wait) a que el hijo termine su ejecucion o no
y que este (hijo) le envie algo al padre mientra este (padre) realiza
alguna otra opcion o proceso...


ciao


cesar

P.D. ahora mismo no recuerdo el nombre del libro genial que yo lleve en la
UNAM, pero es +/-:

	UNIX, Programacion Avanzada 
	Fco. Manuel Marquez Garcia.

esta genial, o birn puedes consultar alguno de llamadas al sistema 
o alguno de Sistema Operativos sobre todo de Tanenbaum, Andrew.



	



[Hilos de Discusión] [Fecha] [Tema] [Autor]