tag:blogger.com,1999:blog-4594083802314721454.post6104751415817474867..comments2024-03-02T06:27:35.545-08:00Comments on Aprende JAVA: Árboles de procesos con fork [ C ]Alfredohttp://www.blogger.com/profile/04582406212707215212noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-4594083802314721454.post-18711194169567303792021-03-14T12:00:10.450-07:002021-03-14T12:00:10.450-07:00Hola , tengo duda en el comando sleep() ¿como afec...Hola , tengo duda en el comando sleep() ¿como afecta a la creación de procesos? , que hace por que si los quito todos los procesos se crean de un solo y mismo padre. Gracias.<br />Danielhttps://www.blogger.com/profile/03880037347669011904noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-67994378220665969432018-02-15T21:35:41.391-08:002018-02-15T21:35:41.391-08:00 hola a que se refiere un if(fork())y if(!fork())?... hola a que se refiere un if(fork())y if(!fork())? <br />a que si es hijo o si es padre?... :(<br />quiero ir creando el arbol en dibijo con el codigo pero me pierdo ya que cada proceso inicia nuevamente el codigo ayuda porfa :::<br />fork()<br />if(fork())<br /> if(!fork())<br /> fork()<br />fork()<br />Charlyhttps://www.blogger.com/profile/05935073055526348770noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-36483996620377630072017-04-25T04:06:22.920-07:002017-04-25T04:06:22.920-07:00Oie papu muy rica su aportasion me a serbido de ...Oie papu muy rica su aportasion me a serbido de mucho suerte con LlaniRamonhttps://www.blogger.com/profile/09877115831125978887noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-53255883976825868942016-10-18T16:30:56.915-07:002016-10-18T16:30:56.915-07:00Hola, intento compilar tu programa pero me da un e...Hola, intento compilar tu programa pero me da un error en cuanto al exit(0). lab7.c:67:4: warning: incompatible implicit declaration of built-in function ‘exit’<br />Que podria ser? y como lo podria solucionar?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-55095950859609585152015-11-15T03:03:11.451-08:002015-11-15T03:03:11.451-08:00Este comentario ha sido eliminado por el autor.Anonymoushttps://www.blogger.com/profile/00741739357452989563noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-73796645934940380142015-10-12T11:53:39.628-07:002015-10-12T11:53:39.628-07:00Perdona, tu código es muy correcto en cuanto a la ...Perdona, tu código es muy correcto en cuanto a la formación de la estructura pero no hay ni un wait en los padres esperando la terminación del proceso hijo, osea que dejas que el proceso init termine con todos los hijos zombies que haya, y eso no es muy correcto.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-84445318755821643312015-06-06T09:15:17.469-07:002015-06-06T09:15:17.469-07:00Exit es el método que mata al proceso. Exit es el método que mata al proceso. Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-13483470078513431442014-12-05T03:20:55.045-08:002014-12-05T03:20:55.045-08:00Hola. alguien podría detallarme que hace el método...Hola. alguien podría detallarme que hace el método "exit()". No cortaría la ejecución del for ?Alejandronoreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-53999735309924379032014-11-06T04:43:58.942-08:002014-11-06T04:43:58.942-08:00Este comentario ha sido eliminado por el autor.Unknownhttps://www.blogger.com/profile/07843929135549068583noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-6600060462335028762014-11-04T04:18:25.973-08:002014-11-04T04:18:25.973-08:00Perdona cuál es tu correo para mandarte un código ...Perdona cuál es tu correo para mandarte un código a ver si puedes ayudarmeAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-50687767471784071802014-01-01T15:18:54.651-08:002014-01-01T15:18:54.651-08:00Hola, en base a los ejemplos de arriba puedas crea...Hola, en base a los ejemplos de arriba puedas crear tu árbol, solo es cuestión de que leas con cuidado.Jesús Alberto Sánchez Tecalcohttps://www.blogger.com/profile/05416570182548174207noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-25725114703621717862013-12-19T04:57:46.194-08:002013-12-19T04:57:46.194-08:00OLA! :D
Alguien me podria ayudar a hacer un proces...OLA! :D<br />Alguien me podria ayudar a hacer un proceso con esta forma:<br /> O<br /> / | \<br />O O O<br />| | |<br />O O O<br />| | |<br />O O O Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-85225466354356492322013-11-28T07:32:30.490-08:002013-11-28T07:32:30.490-08:00Hola, logré solucionar el problema:
for(x=1; x<...Hola, logré solucionar el problema: <br />for(x=1; x<=3; x++){<br /> pid=fork();<br /> if(pid){<br /> printf("Soy el proceso %d\n",getpid());<br /> tmp= (struct kool_list *)malloc(sizeof(struct kool_list));<br /> tmp->pid=pid;<br /> tmp->ppid=getppid();<br /> list_add(&(tmp->list), &(mylist.list)); <br /> sleep(2);<br /> }<br /> else{<br /> printf("soy el hijo %d, mi padre es %d\n",getpid(),getppid());<br /> sleep(2);<br /> exit(0);<br /> }<br /> }<br /> <br /> printf("\n \n \n");<br /><br />Arroja la siguiente salida:<br /><br />Soy el proceso 9487<br />soy el hijo 9488, mi padre es 9487<br />Soy el proceso 9487<br />soy el hijo 9489, mi padre es 9487<br />Soy el proceso 9487<br />soy el hijo 9490, mi padre es 9487<br /><br /> <br /> <br />traversing the list using list_for_each()<br />pid= 9490, ppid= 9416 <br />pid= 9489, ppid= 9416 <br />pid= 9488, ppid= 9416<br /><br /><br />Solo por si alguien en el futuro le sirve.<br /><br />Saludos!!Antonio Hdzhttps://www.blogger.com/profile/13310438000426771814noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-53269047667724269722013-11-26T09:35:34.235-08:002013-11-26T09:35:34.235-08:00Hola de nuevo, fíjate que estoy tratando de hacer ...Hola de nuevo, fíjate que estoy tratando de hacer que para todos los procesos(el padre y los hijos) su pid sea parte de una lista enlazada, así que implementé una lista enlazada, pero resulta que al recorrer la lista en los nodos se ha guardado solo el pid del padre. hicé algo así:<br /><br />pid_t pid;<br /> int x;<br /> for(x=1; x<=3; x++){<br /> pid=fork();<br /> if(pid){<br /> printf("Soy el proceso %d\n",getpid());<br /> tmp= (struct kool_list *)malloc(sizeof(struct kool_list));<br /> tmp->pid=getpid();<br /> list_add(&(tmp->list), &(mylist.list)); <br /> sleep(2);<br /> }<br /> else{<br /> printf("soy el hijo %d, mi padre es %d\n",getpid(),getppid());<br /> tmp= (struct kool_list *)malloc(sizeof(struct kool_list));<br /> tmp->pid=getpid();<br /> list_add(&(tmp->list), &(mylist.list));<br /> sleep(2);<br /> exit(0);<br /> }<br /> }<br /><br />Como verás, en tu codigo tan solo puse funciones para agregar nodos a una lista enlazada, se supone que cuando se trata de un proceso hijo, debería también guardar si pid, pero esto es la sálida:<br /><br />Soy el proceso 2722<br />soy el hijo 2723, mi padre es 2722<br />Soy el proceso 2722<br />soy el hijo 2724, mi padre es 2722<br />Soy el proceso 2722<br />soy el hijo 2725, mi padre es 2722<br /><br /> <br /> <br />traversing the list using list_for_each()<br />pid= 2722 <br />pid= 2722 <br />pid= 2722 <br /><br />Como ves, en mi lista tan solo quedaron 3 nodos, todos con el pid del padre, cuando lo que me gustaría hacer es que al recorrer la lista quedará algo así:<br /><br />traversing the list using list_for_each()<br />pid= 2722 <br />pid= 2723 <br />pid= 2724<br />pid= 2725<br /><br />Tienes alguna idea del porque no esta funcionado? <br /><br />Antonio Hdzhttps://www.blogger.com/profile/13310438000426771814noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-65316012861895947512013-11-25T16:52:49.554-08:002013-11-25T16:52:49.554-08:00Gracias, que bueno que te gusto :D Gracias, que bueno que te gusto :D Jesús Alberto Sánchez Tecalcohttps://www.blogger.com/profile/05416570182548174207noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-71277999987009864092013-11-24T14:56:57.987-08:002013-11-24T14:56:57.987-08:00excelente aporte hermano!!excelente aporte hermano!!Antonio Hdzhttps://www.blogger.com/profile/13310438000426771814noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-7764831655457548752013-09-26T20:19:15.852-07:002013-09-26T20:19:15.852-07:00como se podria hacer con recursividad para q por c...como se podria hacer con recursividad para q por cada padre tenga dos hijos y la altura del arbol sea parametrica?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-54433596809940631782013-09-23T17:43:26.121-07:002013-09-23T17:43:26.121-07:00Esto podría servirte aunque son números aleatorios...Esto podría servirte aunque son números aleatorios<br />/*Jesús Antonio Tepec Hernández*/<br /><br />#include <br />#include <br />#include <br />#include <br />#include <br />int main(int argc, char **argv)<br />{<br /> int pid; /* identificador del proceso */<br /> int numero,cantidad,contador; <br /> int hora = time(NULL); <br /> <br /> srand(hora);//semeilla<br /> cantidad=100;//se define el número de elementos ha ser procesados aleatoriamente<br /> <br /> pid = fork();<br /> if ( pid < 0 )<br /> {<br /> printf("¡¡ No se pudo duplicar !!\n");<br /> exit(1);<br /> }<br /> if ( pid == 0 )<br /> {<br /> /* Proceso hijo */<br /> printf("Elementos del proceso hijo: \n\n");<br /> for(contador = 0; contador<cantidad; contador++) <br /> { <br /> numero = rand()%100; <br /> printf("%d ", numero); <br /> } <br /> }<br /> else<br /> {<br /> /* Proceso padre */<br /> printf("\nElementos del proceso padre: \n\n");<br /> for(contador = 0; contador<cantidad; contador++) <br /> { <br /> numero = rand()%100; <br /> printf("%d ", numero); <br /> } <br /> printf("\n\n");<br /> }<br /> getch();<br />}Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-13635025821072549272013-09-22T15:19:39.376-07:002013-09-22T15:19:39.376-07:00Hola, disculpa que no te pueda ayudar :( yo tampoc...Hola, disculpa que no te pueda ayudar :( yo tampoco se como realizar eso.Jesús Alberto Sánchez Tecalcohttps://www.blogger.com/profile/05416570182548174207noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-78554022522945270452013-09-14T20:46:53.180-07:002013-09-14T20:46:53.180-07:00hola la verdad no entiendo bien sobre procesos y t...hola la verdad no entiendo bien sobre procesos y tengo una practica sobre crear un proceso padre que contenga un hijo y que cada uno imprima los numeros del 1-100 podrian ayudarme?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-5837550749977030002013-09-11T07:28:39.877-07:002013-09-11T07:28:39.877-07:00Hola, por el momento se me hace dificil hacer el c...Hola, por el momento se me hace dificil hacer el código con el contenido de tu comentario, si me pueden mandar al correo un dibujo del diagrama, tal vez sí te pueda ayudar.Jesús Alberto Sánchez Tecalcohttps://www.blogger.com/profile/05416570182548174207noreply@blogger.comtag:blogger.com,1999:blog-4594083802314721454.post-87908916239408351042013-09-10T16:39:35.659-07:002013-09-10T16:39:35.659-07:00Disculpe como podria hacer un cadigo para un árbol...Disculpe como podria hacer un cadigo para un árbol asi: <br /> o (estos son procesos)<br /> |<br /> o<br /> |<br /> o<br /> / | \<br /> / | \<br /> / | \<br /> o o o<br /> /||\ /\ |<br /> o oo o o o o<br /> | | | |<br /> o o o o<br />GRACIAS!!!Anonymousnoreply@blogger.com