Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so:laboratoare:resurse:recapitulare [2019/05/27 21:09]
liza_elena.babu
so:laboratoare:resurse:recapitulare [2022/03/14 18:02] (current)
teodor_stefan.dutu [Exerciții] Rework exercise 1
Line 3: Line 3:
 Laboratorul constă în subiecte în stilul celor de la examen, însoțite de mici bucăți de cod complete sau aproape complete pe care le puteți rula pentru a vă convinge. Discuția pe marginea subiectelor cu asistentul sau cu colegii este încurajată. Subiectele sunt suficient de multe încât nu pot fi acoperite într-un singur laborator. Laboratorul constă în subiecte în stilul celor de la examen, însoțite de mici bucăți de cod complete sau aproape complete pe care le puteți rula pentru a vă convinge. Discuția pe marginea subiectelor cu asistentul sau cu colegii este încurajată. Subiectele sunt suficient de multe încât nu pot fi acoperite într-un singur laborator.
 ===== Exerciții ===== ===== Exerciții =====
-Utilizați arhiva {{:​so:​laboratoare:​resurse:​recap.tar.gz| recap.tar.gz}} [[http://​elf.cs.pub.ro/​so/​wiki/​_media/​laboratoare/​resurse/​recap.tar.gz | recap.tar.gz]] aferentă laboratorului. 
  
-  - Demand-paging,​ Copy-on-Write. Intrați în directorul ''​01-cow-dp''​.  +  - Demand-paging,​ Copy-on-Write. Intrați în directorul ''​01-cow''​.  
-    * Rulați comanda:<​code>​ +    * Rulați comanda ​''​make''​ și rulați executabilul creat''​cow''​. 
-make && make run +    * **Explicați** ​când au loc evenimentele ​de Demand-paging și de Copy-on-Write. 
-</​code>​ +    * De ce scrierea efectuată de procesul copil în paginile ​alocate ​de părinte dureaza mult mai mult decât citirile?
-    * **Explicați** ​apariția evenimentelor ​de Demand-paging și de Copy-on-Write+
-    * Pentru testare, utilizați fișierele: ''​fault/​fault''​ și ''​fault2/​fault''​+
-    * De ce la ultima pagină din buffer (din fișierul ''​fault/​fault''​) nu se mai face Demand-paging?​ +
-    * **Hints**:​ +
-      * paginile **gri** reprezintă pagini muliple nemapate reprezentate într-un interval +
-      * paginile **verzi** reprezintă pagini ce aparțin unui singur proces +
-      * paginile **roșii** sunt pagini partajate ​de cel puțin două procese +
-      * la **click** pe o pagină se centrează pagina respectivă și toate paginile ​legate ​de ea +
-      * după ce a a apărut un eveniment de tipul Copy-on-Write **un** click duce la pagina la care este mapată acum, **următorul** click va duce la pagina veche la care era mapată+
   - Subsistemul IO. Intraţi în directorul ''​02-io''​ şi inspectaţi fişierul ''​splice.c''​. ​   - Subsistemul IO. Intraţi în directorul ''​02-io''​ şi inspectaţi fişierul ''​splice.c''​. ​
     * Închipuiţi-vă scenariul în care programul rulează repede şi un alt scenariu în care rulează greu (din punctul de vedere al timpului).     * Închipuiţi-vă scenariul în care programul rulează repede şi un alt scenariu în care rulează greu (din punctul de vedere al timpului).
     * **Hints**:     * **Hints**:
       * Ce operaţii se fac la trunchierea fişierului?​       * Ce operaţii se fac la trunchierea fişierului?​
-      * Care este rolul fişierului [[http://​www.linuxinsight.com/​proc_sys_vm_drop_caches.html | /​proc/​sys/​vm/​drop_caches]]+      * Care este rolul fişierului [[http://​www.linuxinsight.com/​proc_sys_vm_drop_caches.html | /​proc/​sys/​vm/​drop_caches]]?
       * Ce fel de mecanism implementează apelul de sistem ''​splice''?​       * Ce fel de mecanism implementează apelul de sistem ''​splice''?​
       * **Atenţie**:​ Asigurați-vă că sistemul dispune de suficientă memorie (RAM) liberă pentru a putea aduce tot fișierul în RAM (i.e. dimensiunea memorie liberă > dimensiunea fișierului).       * **Atenţie**:​ Asigurați-vă că sistemul dispune de suficientă memorie (RAM) liberă pentru a putea aduce tot fișierul în RAM (i.e. dimensiunea memorie liberă > dimensiunea fișierului).
       * Utilizaţi scriptul ''​run.sh'':​ <​code>​sudo ./​run.sh</​code>​       * Utilizaţi scriptul ''​run.sh'':​ <​code>​sudo ./​run.sh</​code>​
       * **Ignoraţi mesajul**:<​code>​Command terminated by signal 13</​code>​       * **Ignoraţi mesajul**:<​code>​Command terminated by signal 13</​code>​
-  - Threads counter (LD): Un proces crează N thread-uri și un thread apelează fork(); câte threaduri, atât în procesul părinte cât și în procesul copil, există imediat după acest moment? Studiați conținutul directorului ''​03-threads-counter''​.În ce director din ''/​proc/​$PID/''​ se află informațiile despre thread-urile procesului? De ce acestea au asignat un pid?+  - Threads counter (LD): Un proces crează N thread-uri și un thread apelează fork(); câte threaduri, atât în procesul părinte cât și în procesul copil, există imediat după acest moment? Studiați conținutul directorului ''​03-threads-counter''​. În ce director din ''/​proc/​$PID/''​ se află informațiile despre thread-urile procesului? De ce acestea au asignat un pid?
   - Function hijacking (LD): De ce în cazul folosirii LD_PRELOAD se pot intercepta apeluri de funcții? Intrați în directorul ''​04-functions-hijacking'',​ compilați (''​make''​) și rulați (''​./​test''​ și ''​LD_PRELOAD=./​libnative.so ./​test''​. Cum explicați output-ul diferit?   - Function hijacking (LD): De ce în cazul folosirii LD_PRELOAD se pot intercepta apeluri de funcții? Intrați în directorul ''​04-functions-hijacking'',​ compilați (''​make''​) și rulați (''​./​test''​ și ''​LD_PRELOAD=./​libnative.so ./​test''​. Cum explicați output-ul diferit?
   - Inițializări (VD): Intrați în directorul ''​05-init''​. Compilați programul ''​initializari''​. De ce durează mai mult prima inițializare?​ De asemenea, încercați să explicați dimensiunea mare a executabilului.   - Inițializări (VD): Intrați în directorul ''​05-init''​. Compilați programul ''​initializari''​. De ce durează mai mult prima inițializare?​ De asemenea, încercați să explicați dimensiunea mare a executabilului.
so/laboratoare/resurse/recapitulare.txt · Last modified: 2022/03/14 18:02 by teodor_stefan.dutu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0