[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