Mihai Sp via so <so@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 _______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii