[so] [Tema2][Windows] Parametru CreatePipe

Cotet Teodor Mihai teodor.cotet at gmail.com
Mon Apr 3 23:17:32 EEST 2017


Salut,

Pe windows avem voie sa apelam CreateProcess pe executabilul nostru
(minishell)?

2017-04-03 11:24 GMT+03:00 Costin Lupu via so <so at cursuri.cs.pub.ro>:

> On Mon, 2017-04-03 at 10:48 +0300, Theodor Stoican wrote:
> > Pe 3 aprilie 2017, 10:01, Costin Lupu <costin.lup at gmail.com> a scris:
> >         On Mon, 2017-04-03 at 09:42 +0300, Theodor Stoican via so
> >         wrote:
> >         > Salut,
> >         >
> >         >
> >         >
> >         > > Aici e o problemă. Subcomenzile a, b și c *trebuie* să
> >         ruleze în
> >         > > paralel. De altfel ne putem gândi la operatorul '|' ca la
> >         un operator de
> >         > > paralelizare, cu diferența că subcomenzile comunică între
> >         ele
> >         >
> >         >
> >         > Se vrea acest comportament doar pentru comenzile externe? Nu
> >         vad cum
> >         > ai putea respecta acest comportament pentru cd, fara sa
> >         deschizi
> >         > thread-uri.
> >
> >         Fix ca în cazul operatorului de paralelizare, și pentru
> >         operatorul pipe
> >         procesele pornesc în paralel și se pot termina în orice
> >         ordine. Nu ai
> >         nevoie de thread-uri. Nu înțeleg de unde vine nelămurirea ta,
> >         mai am
> >         nevoie de niște clarificări în sensul ăsta.
> >
> >         Ia spre exemplu comanda: 'cd | echo foo'. Subcomanda 'echo
> >         foo' nici
> >         măcar nu citește de la stdin.
> >
> > Nu inteleg cum poti lansa cele 2 procese in paralel fara sa pornesti
> > threaduri.
>
> Păi și thread-urile alea nu tot secvențial le pornești?
>
> > Singura varianta pe care o vad e sa transformi functia intr-un
> > executabil si sa i-l dai ca parametru lui CreateProcess. Altfel
> > parcurgerea arborelui e inerent secventiala. Imi scapa ceva?
>
> Cred că tu te gândești să pornești procesele fix în același timp. Ori
> asta ar fi posibil doar pe sistemele multiprocesor și doar dacă
> kernel-ul ți-ar furniza un astfel de syscall (de care eu n-am auzit).
> Ori mini-shell-ul (ca și bash-ul) pornește comenzi în paralel indiferent
> de numărul de procesoare de pe sistem.
>
> Costin
>
>
>
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20170403/ded0c582/attachment.html>


More information about the so mailing list