<table cellspacing='0' cellpadding='0' border='0' ><tr><td valign='top' style='font: inherit;'>Cele N procese se fac in paralel prin faptul ca nu fac waitpid dupa fiecare ci la primul op | astept toti copiii.<br>Asa am implementat si & si este cat se poate de paralel. Verificat. Plus ca am zis...nu ramane agatat,blocat.<br><br>Ideea pe care am implementat-o se bazeaza pe faptul ca pipe e cel mai prioritar operator si se afla cel mai adanc in arbore.<br><br>Chiar nu stiu ce ar putea sa aiba... :(<br><br>Alex.<br><br>--- On <b>Fri, 7/18/08, Mircea Gherzan <i><mgherzan@anaconda.cs.pub.ro></i></b> wrote:<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;">From: Mircea Gherzan <mgherzan@anaconda.cs.pub.ro><br>Subject: Re: [so] [Tema1][Linux] Problema la pipe<br>To: so@cursuri.cs.pub.ro<br>Date: Friday, July 18, 2008, 1:19 AM<br><br><pre>Alex wrote:<br>> Dupa ce l-am zapacit prima data am zis
ca reiau si am gandit altfel<br>> programul,am facut si un prg de test de 50 linii de cod si<br>> mergea...dar in tema acceasi idee nu merge. Iata cum am gandit: Cand<br>> intalnesc primul operator pipe creez recursiv pentru toate<br>> subnodurile lui care nu sunt comenzi simple cate 2 file descriptori<br>> in aux(din structura arborelui). Apoi dau drumu la executia<br>> proceselor in ordine. Dupa executia comenzilor din primul op pipe<br>> distrug adica dau free la toti file descriptorii alocati (ii inchid<br>> inainte),fac waitpid(-1,&status,0) pt a astepta toti copiii. In copil<br>> tin cont si fac toate legaturile necesare intre procese__ inainte de<br>> exec (le-am printat...sunt ok...zic eu :D ).Dupa ce fac legaturile<br>> inchid in copil toate celelalte pipe-uri(s-au copiat din parinte unde<br>> erau deschise deja).<br><br>Pentru o comanda precum cmd1 | cmd2 | cmdN , cele N procese trebuie<br>executate in
paralel, si nu "in ordine". Capacitate unui pipe este<br>evident finita (64K), iar eventuale apeluri ar putea write() pot bloca<br>pana la preluarea de octeti.<br><br><br>-- <br>Mircea Gherzan<br>Faculty of Automatic Control and Computers<br>Politehnica University of Bucharest<br>_______________________________________________<br>so mailing list<br>so@cursuri.cs.pub.ro<br>http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so</pre></blockquote></td></tr></table><br>