<div dir="ltr"><div>Salut,<br><br></div>Pe windows avem voie sa apelam CreateProcess pe executabilul nostru (minishell)? <br><div><div><div class="gmail_extra"><br><div class="gmail_quote">2017-04-03 11:24 GMT+03:00 Costin Lupu via so <span dir="ltr"><<a href="mailto:so@cursuri.cs.pub.ro" target="_blank">so@cursuri.cs.pub.ro</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_9205437572457262904HOEnZb"><div class="m_9205437572457262904h5">On Mon, 2017-04-03 at 10:48 +0300, Theodor Stoican wrote:<br>
> Pe 3 aprilie 2017, 10:01, Costin Lupu <<a href="mailto:costin.lup@gmail.com" target="_blank">costin.lup@gmail.com</a>> a scris:<br>
> On Mon, 2017-04-03 at 09:42 +0300, Theodor Stoican via so<br>
> wrote:<br>
> > Salut,<br>
> ><br>
> ><br>
> ><br>
> > > Aici e o problemă. Subcomenzile a, b și c *trebuie* să<br>
> ruleze în<br>
> > > paralel. De altfel ne putem gândi la operatorul '|' ca la<br>
> un operator de<br>
> > > paralelizare, cu diferența că subcomenzile comunică între<br>
> ele<br>
> ><br>
> ><br>
> > Se vrea acest comportament doar pentru comenzile externe? Nu<br>
> vad cum<br>
> > ai putea respecta acest comportament pentru cd, fara sa<br>
> deschizi<br>
> > thread-uri.<br>
><br>
> Fix ca în cazul operatorului de paralelizare, și pentru<br>
> operatorul pipe<br>
> procesele pornesc în paralel și se pot termina în orice<br>
> ordine. Nu ai<br>
> nevoie de thread-uri. Nu înțeleg de unde vine nelămurirea ta,<br>
> mai am<br>
> nevoie de niște clarificări în sensul ăsta.<br>
><br>
> Ia spre exemplu comanda: 'cd | echo foo'. Subcomanda 'echo<br>
> foo' nici<br>
> măcar nu citește de la stdin.<br>
><br>
> Nu inteleg cum poti lansa cele 2 procese in paralel fara sa pornesti<br>
> threaduri.<br>
<br>
</div></div>Păi și thread-urile alea nu tot secvențial le pornești?<br>
<span><br>
> Singura varianta pe care o vad e sa transformi functia intr-un<br>
> executabil si sa i-l dai ca parametru lui CreateProcess. Altfel<br>
> parcurgerea arborelui e inerent secventiala. Imi scapa ceva?<br>
<br>
</span>Cred că tu te gândești să pornești procesele fix în același timp. Ori<br>
asta ar fi posibil doar pe sistemele multiprocesor și doar dacă<br>
kernel-ul ți-ar furniza un astfel de syscall (de care eu n-am auzit).<br>
Ori mini-shell-ul (ca și bash-ul) pornește comenzi în paralel indiferent<br>
de numărul de procesoare de pe sistem.<br>
<br>
Costin<br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
<a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/s<wbr>o/info/lista-discutii</a></blockquote></div><br></div></div></div></div>