[so] [Examen] Clarificare materie

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Mon May 25 22:03:51 EEST 2020


Mihai Sp via so <so at cursuri.cs.pub.ro> writes:
> Buna seara,
>
> Am cateva intrebari si m-ar ajuta daca mi-ati raspunde pentru a-mi clarifica cateva goluri din intelegerea materiei:
>
> 1. Se poate crea un semafor numai din mutexuri? (Eu as spune ca da,
> daca cream, de exemplu, un vector de mutexuri, pe care diferite
> procese vor face lock in limita mutexurilor, simuland deci un semafor)

Nu poți avea un vector de mutex-uri că nu vei putea ști în ce ordine
sunt apelate. Cum pui semaforul pe 3?

La nivelul implementării ai, în general:
* un mutex implementat prin:
** un spinlock care protejează ...
** o variabilă booleană
** o coadă de procese care așteaptă eliberarea mutexului (atunci când
este luat)

* un semanfor e implementat prin
** un spinlock care protejează ...
** un întreg / contor
** o coadă de procese care așteaptă eliberarea semaforului (atunci când
este contorul pe zero)

> 2. Poate exista un proces si zombie si orfan? (Eu as spune ca da,
> intrucat imediat ce un proces zombie ramane fara parinte si pana sa
> fie adoptat de init, este si zombie si orfan, chiar daca acest
> interval de timp este infim de mic)

Da, în acel interval infim până când este adoptat de init (ca orfan) și
reaped tot de init (ca zombie).

> 3. Ce adresa IP si ce port are un socket intors de accept() ? (Nu am
> nicio idee. Din cate stiu, este ales un socket cu un index cat mai
> mic, dar mai departe nu stiu ce sa spun)

Același ca al serverului listen care a fost transmis ca argument la
apelul accept(). Am adăugat clarificare în notițele cursului 13[1],
secțiunea "Procesare stiva TCP".

[1] https://ocw.cs.pub.ro/courses/so/curs/net

Răzvan


More information about the so mailing list