[so] Cursul 5 de SO

2015-03-23 Fir de Conversatie Razvan Deaconescu via so
Salutare.

Găsiți pe wiki slide-urile și demo-urile cursului 5 de SO (Gestiunea
memoriei)[1].

Următoarele trei cursuri de sisteme de operare au legătură cu modul în
care sistemul de operare și procesele folosesc și gestionează memoria
sistemului.

Vă recomandăm să parcurgeți slide-urile cursului înainte de participarea
la curs. La curs vom parcurge și demo-urile; este indicat să reiterați
prin slide-uri și demo-uri ulterior cursului.

[1] http://ocw.cs.pub.ro/courses/so/cursuri/curs-05

Răzvan
___
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Re: [so] Tema 2 - Simulare fork windows

2015-03-23 Fir de Conversatie Razvan Crainea via so
On Mon, Mar 23, 2015 at 3:07 PM Ionel Popescu via so 
wrote:

> Salut,
>
> Putem folosi CreateThread pentru a simula functia fork de pe Linux (chiar
> daca nu creaza un nou proces) sau este obligatoriu sa cream un nou proces
> si sa facem operatiile necesare pentru a obtine procesul fiu identic cu cel
> parinte. (aici ma refer la crearea a 2 procese fiu pentru a rula in paralel
> 2 comenzi)
>
>
Da, puteți folosi CreateThread pentru a rula două sau mai multe comenzi în
paralel.
___
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

[so] Tema 2 - Simulare fork windows

2015-03-23 Fir de Conversatie Ionel Popescu via so
Salut,

Putem folosi CreateThread pentru a simula functia fork de pe Linux (chiar
daca nu creaza un nou proces) sau este obligatoriu sa cream un nou proces
si sa facem operatiile necesare pentru a obtine procesul fiu identic cu cel
parinte. (aici ma refer la crearea a 2 procese fiu pentru a rula in paralel
2 comenzi)

Va multumesc,
Ionel Popescu - 332CC
___
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Re: [so] (no subject)

2015-03-23 Fir de Conversatie Adrian Stanciu via so
2015-03-23 10:09 GMT+02:00 Andrei Tuicu via so :
>
>
> În data de 23 martie 2015, 09:59, Vlad Dogaru via so 
> a scris:
>
>> On Mon, Mar 23, 2015 at 07:36:32AM +, Sebastian ENE via so wrote:
>> > Salut,
>> >
>> > Am si eu o intrebare daca puteti sa ma lamuriti va rog :
>> >
>> > Pe Linux intr-un process copil aloc memorie inainte de a executa
>> > execv().
>> > Dupa ce am executat execv() toata memoria procesului copil se suprascrie
>> > (asta inclusive heap-ul in urma alocarilor cu malloc, calloc..)
>> > 1.Apelul free() dupa execv() nu mai are sens deoarece s-a suprascris
>> > intreaga zona de memorie nu?
>>
>> După un execv() cu succes nu se mai execută nimic din codul de după.
>> Deci dacă pui free() după nu are sens, pentru că nu se ajunge la el.
>>
>> Are sens să apelezi free dacă execv() eșuează, dar nu cred că asta
>> întrebai.
>>
>> > 2.File descriptorii deschisi inainte de execv() se pierd, dar
>> > structurile aferente procesului care fac legatura cu inode-urile
>> > raman?
>>
>> File descriptorii nu se pierd decât dacă au flag-ul close on exec [1].
>> Ceilalți rămân.  This makes sense if you think about it, poți moșteni,
>> at the very least, stdin, stdout și stderr, ca să nu te trezești că ai
>> executat un program redirectat într-un fișier și apoi el face exec()
>> altuia care începe să scrie la consolă.
>>
>> [1]
>> http://stackoverflow.com/questions/6125068/what-does-the-fd-cloexec-fcntl-flag-do
>>
>> > 3.Pe Windows trebuie sa dealocam memoria pentru parametrii in linie de
>> > comanda trimisi catre CreateProcess() din procesul parinte pentru a
>> > evita memory leak-uri ?
>>
>> Asta nu știu.
>
> Poti sa incerci sa rulezi cu DrMemory pe Windows sa vezi ce zice:
> http://www.drmemory.org/  (free and open source).
>

Nu este permis să ai leak-uri de memorie. Trebuie să te gândești la o
soluție să-i eliberezi.

PS: te rog să dai un titlu sugestiv la thread-urile pornite pe listă.


Adrian
___
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Re: [so] (no subject)

2015-03-23 Fir de Conversatie Andrei Tuicu via so
În data de 23 martie 2015, 09:59, Vlad Dogaru via so 
a scris:

> On Mon, Mar 23, 2015 at 07:36:32AM +, Sebastian ENE via so wrote:
> > Salut,
> >
> > Am si eu o intrebare daca puteti sa ma lamuriti va rog :
> >
> > Pe Linux intr-un process copil aloc memorie inainte de a executa execv().
> > Dupa ce am executat execv() toata memoria procesului copil se suprascrie
> > (asta inclusive heap-ul in urma alocarilor cu malloc, calloc..)
> > 1.Apelul free() dupa execv() nu mai are sens deoarece s-a suprascris
> > intreaga zona de memorie nu?
>
> După un execv() cu succes nu se mai execută nimic din codul de după.
> Deci dacă pui free() după nu are sens, pentru că nu se ajunge la el.
>
> Are sens să apelezi free dacă execv() eșuează, dar nu cred că asta
> întrebai.
>
> > 2.File descriptorii deschisi inainte de execv() se pierd, dar
> > structurile aferente procesului care fac legatura cu inode-urile
> > raman?
>
> File descriptorii nu se pierd decât dacă au flag-ul close on exec [1].
> Ceilalți rămân.  This makes sense if you think about it, poți moșteni,
> at the very least, stdin, stdout și stderr, ca să nu te trezești că ai
> executat un program redirectat într-un fișier și apoi el face exec()
> altuia care începe să scrie la consolă.
>
> [1]
> http://stackoverflow.com/questions/6125068/what-does-the-fd-cloexec-fcntl-flag-do
>
> > 3.Pe Windows trebuie sa dealocam memoria pentru parametrii in linie de
> > comanda trimisi catre CreateProcess() din procesul parinte pentru a
> > evita memory leak-uri ?
>
Asta nu știu.
>
Poti sa incerci sa rulezi cu DrMemory pe Windows sa vezi ce zice:
http://www.drmemory.org/  (free and open source).

Andrei

>
> Vlad
> ___
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii
___
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Re: [so] (no subject)

2015-03-23 Fir de Conversatie Vlad Dogaru via so
On Mon, Mar 23, 2015 at 07:36:32AM +, Sebastian ENE via so wrote:
> Salut,
> 
> Am si eu o intrebare daca puteti sa ma lamuriti va rog :
> 
> Pe Linux intr-un process copil aloc memorie inainte de a executa execv().
> Dupa ce am executat execv() toata memoria procesului copil se suprascrie
> (asta inclusive heap-ul in urma alocarilor cu malloc, calloc..)
> 1.Apelul free() dupa execv() nu mai are sens deoarece s-a suprascris
> intreaga zona de memorie nu?

După un execv() cu succes nu se mai execută nimic din codul de după.
Deci dacă pui free() după nu are sens, pentru că nu se ajunge la el.

Are sens să apelezi free dacă execv() eșuează, dar nu cred că asta
întrebai.

> 2.File descriptorii deschisi inainte de execv() se pierd, dar
> structurile aferente procesului care fac legatura cu inode-urile
> raman?

File descriptorii nu se pierd decât dacă au flag-ul close on exec [1].
Ceilalți rămân.  This makes sense if you think about it, poți moșteni,
at the very least, stdin, stdout și stderr, ca să nu te trezești că ai
executat un program redirectat într-un fișier și apoi el face exec()
altuia care începe să scrie la consolă.

[1] 
http://stackoverflow.com/questions/6125068/what-does-the-fd-cloexec-fcntl-flag-do

> 3.Pe Windows trebuie sa dealocam memoria pentru parametrii in linie de
> comanda trimisi catre CreateProcess() din procesul parinte pentru a
> evita memory leak-uri ?

Asta nu știu.

Vlad
___
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

[so] (no subject)

2015-03-23 Fir de Conversatie Sebastian ENE via so
Salut,

Am si eu o intrebare daca puteti sa ma lamuriti va rog :

Pe Linux intr-un process copil aloc memorie inainte de a executa execv().
Dupa ce am executat execv() toata memoria procesului copil se suprascrie
(asta inclusive heap-ul in urma alocarilor cu malloc, calloc..)
1.Apelul free() dupa execv() nu mai are sens deoarece s-a suprascris intreaga 
zona
de memorie nu?
2.File descriptorii deschisi inainte de execv() se pierd, dar structurile 
aferente procesului
care fac legatura cu inode-urile raman?
3.Pe Windows trebuie sa dealocam memoria pentru parametrii in linie de comanda 
trimisi catre CreateProcess() din procesul parinte pentru a evita memory 
leak-uri ?

Va multumesc,
Astept raspuns Sebastian

Sent from Windows Mail

___
http://ocw.cs.pub.ro/courses/so/info/lista-discutii