[so] [Tema1][Linux] Problema la pipe

Alex alexeurope2002 at yahoo.com
Fri Jul 18 20:32:36 EEST 2008


ok...
tot nu merge cum trebuie tema asta.
la mine pe sistem arareori pica testul 7.
Pe site pica testul 4 si testul 7 uneori.
In masina virtuala pica doar testul 7 uneori...cert e ca e ceva in neregula cu tema.
Am facut o multime de teste cu valgrindul si o sa mai fac.
Nu am leak-uri. Toti copiii se intorc cu codul 0. 
Daca rulez testul 7 de mana merge fara probleme. Orice rulez de mana merge fff bine.
Am explicat in mare cum am gandit eu implementarea.

Daca mai aveti vreun sfat...am mare nevoie de ajutor...de la toata lumea:colegi,asistenti si profesori.

Mersi mult.
Alex g.

--- On Fri, 7/18/08, Alex <alexeurope2002 at yahoo.com> wrote:
From: Alex <alexeurope2002 at yahoo.com>
Subject: Re: [so] [Tema1][Linux] Problema la pipe
To: "Sisteme de Operare" <so at cursuri.cs.pub.ro>
Date: Friday, July 18, 2008, 12:06 PM


My fault...like usually. :D
In testarea mea...am inversat la un mom
dat ordinea in care execut comenzile. Apoi am reparat ce era
gresit...dar am uitat sa apelez comenzile in ordinea normala. Acum
merge.Slava Domnului.

Alex.
--- On Fri, 7/18/08, Mircea Gherzan <mgherzan at anaconda.cs.pub.ro> wrote:
From: Mircea Gherzan <mgherzan at anaconda.cs.pub.ro>
Subject: Re: [so] [Tema1][Linux] Problema la pipe
To: so at cursuri.cs.pub.ro
Date: Friday, July 18, 2008, 1:19 AM

Alex wrote:
> Dupa ce l-am zapacit prima data am zis ca reiau si am gandit altfel
> programul,am facut si un prg de test de 50 linii de cod si
> mergea...dar in tema acceasi idee nu merge. Iata cum am gandit: Cand
> intalnesc primul operator pipe creez recursiv pentru toate
> subnodurile lui care nu sunt comenzi simple cate 2 file descriptori
> in aux(din structura arborelui). Apoi dau drumu la executia
> proceselor in ordine. Dupa executia comenzilor din primul op pipe
> distrug adica dau
 free la toti file descriptorii alocati (ii inchid
> inainte),fac waitpid(-1,&status,0) pt a astepta toti copiii. In copil
> tin cont si fac toate legaturile necesare intre procese__ inainte de
> exec (le-am printat...sunt ok...zic eu :D ).Dupa ce fac legaturile
> inchid in copil toate celelalte pipe-uri(s-au copiat din parinte unde
> erau deschise deja).

Pentru o comanda precum cmd1 | cmd2 | cmdN ,  cele N procese trebuie
executate in paralel, si nu "in ordine". Capacitate unui pipe este
evident finita (64K), iar eventuale apeluri ar putea  write() pot bloca
pana la preluarea de octeti.


-- 
Mircea Gherzan
Faculty of Automatic Control and Computers
Politehnica University of Bucharest
_______________________________________________
so mailing list
so at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so


      _______________________________________________
so mailing list
so at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so


      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20080718/7c30aa3a/attachment.htm 


More information about the so mailing list