Liviu Ioan <[email protected]> writes: > Salut, > > O serie de nelămuriri legate de întrebările din quiz-uri. > > Curs 7 > 6) La ce se referă GOT (Global Offset Table)? > Aș vrea, dacă se poate, mai multe detalii legate de noțiunea de GOT. Am > înțeles că e vorba de relocare, dar nu am înțeles foarte bine la ce se > referă.
GOT și PLT sunt zone din spațiul de adresă al procesului folosite pentru relocarea variabilelor globale și a funcțiilor dintr-o bibliotecă partajată. Cred că această pagină[1] te poate ajuta. > Următoarele două întrebări se leagă de 2 adrese ... > > 7) Ce referă, în general, adresa 0xcccccccc în spațiul virtual de adrese al > unui proces pe un sistem Linux? > > - zona de cod > - stiva > - spațiul kernel > - spațiul alocat bibliotecilor partajate > > Am văzut în TLPI(pag 119) că zona pentru kernel începe de la 0xc0000000. Am > crezut că e doar un exemplu, nu o adresă efectivă, folosită de sistem. În Linux, split-ul dintre spațiul user și spațiul kernel, în cadrul spațiului de adrese al unui proces, este 3/1: 3GB de memorie virtuală pentru user și 1GB de memorie virtuală pentru kernel la nivelul unui spațiu virtual de 4GB. Adresa virtuală 3GB este prima adresă a nucleului -> adică 0xc0000000. > 8) Ce referă, în general, adresa 0xbfbfbfbf în spațiul virtual de adrese al > unui proces pe un sistem Linux? > Bun, aici nu am mai observat nimic în TLPI. În general referă stiva. Este foarte sus în spațiul de adresă al procesului, aproape de spațiul kernel. Vezi aici[2]. > Curs 8 > > 1) Care din următoarele NU este un avantaj al folosirii thread-urilor? > timp de comutare mai rapid > partajare facilă a informației > eliminarea completă a apelurilor de sistem > planificare avantajoasă pe sisteme multiprocesor > > Întrebarea mi se pare ambiguă, consider că ar trebui precizat modul de > implementare pentru firele de execuție(user vs kernel). > Pentru cazul "user space", ultimele două variante sunt corecte ["eliminare > completă"] Eliminarea completă a apelurilor de sisteme este fals și acela e răspunsul corect. Celelate sunt avantaje ale folosirii thread-urilor. Da, depinde de modul de implementare, dar rămân posibile avantaje. Varianta trei este falsă. > 5) Care din următoarele este partajată între thread-uri? > stiva > registrele > handler de semnal > variabilele globale > > Există două variante corecte de răspuns(utlimele două, nu?). Da, am corectat eu întrebarea. > 4) Care este fluxul unei operații de I/E? > apel de sistem, device driver, controller, dispozitiv de I/E > device driver, dispozitiv de I/E, apel de sistem, controller > controller, apel de sistem, dispozitiv de I/E, device driver > dispozitiv de I/E, controller, device driver, apel de sistem > > Răspunsul validat este primul. Dacă prima variantă este corectă, de ce nu > este și ultima? Aceleași operații, executate în ordine inversă, inițierea > fiind fâcută de la dispozitiv. Am corectat. > 5) Ce este IRP (I/O Request Packet)? > Din nou, m-am documentat și nu am înțeles ce înseamnă. Vezi în curs[3] (slide-ul 51) și aici[4]. [1] http://www.bottomupcs.com/global_offset_tables.html [2] http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory [3] http://elf.cs.pub.ro/so/wiki/cursuri/curs-09 [4] http://technet.microsoft.com/library/cc767885.aspx Răzvan _______________________________________________ http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
