Differences

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

Link to this comparison view

so:laboratoare:laborator-08 [2019/04/17 12:14]
maria.mihailescu [BONUS] Remove karma points
so:laboratoare:laborator-08 [2020/04/09 02:49] (current)
liza_elena.babu [Exercițiul 4 - Parallel fgrep]
Line 40: Line 40:
     *stivă     *stivă
     *set de registre (deci și un contor de program - registrul ''​(E)IP''​)     *set de registre (deci și un contor de program - registrul ''​(E)IP''​)
 +    *spaţiu de stocare local (EN: thread-local storage - [[https://​gcc.gnu.org/​onlinedocs/​gcc/​Thread-Local.html|TLS]])
  
 Procesele sunt folosite de SO pentru a grupa și aloca resurse, iar firele de execuție pentru a planifica execuția de cod care accesează (în mod partajat) aceste resurse. Procesele sunt folosite de SO pentru a grupa și aloca resurse, iar firele de execuție pentru a planifica execuția de cod care accesează (în mod partajat) aceste resurse.
Line 1026: Line 1027:
 ====== Exerciţii de laborator ====== ====== Exerciţii de laborator ======
  
-===== Exercițiul 0 - Joc interactiv ===== 
- 
-  * Detalii desfășurare [[http://​ocw.cs.pub.ro/​courses/​so/​meta/​notare#​joc_interactiv|joc]]. 
  
 ===== Linux ===== ===== Linux =====
Line 1048: Line 1046:
 </​code> ​ </​code> ​
  
-Zonele de memorie cu dimensiunea de 8MB (8192KB) care se creează după fiecare apel ''​pthread_create''​ reprezintă noile //stive// alocate de către biblioteca ''​libpthread''​ pentru fiecare thread în parte. Observați că, în plus, se mai mapează ​de fiecare dată o pagină (4KB) cu protecția ''​%%---p%%''​ (PROT_NONE, private ​- vizibil în ''​procfs''​) care are rolul de %%"​%%pagină de gardă%%"​%%. ​+Zonele de memorie cu dimensiunea de 8MB (8192KB) care se creează după fiecare apel ''​pthread_create''​ reprezintă noile //stive// alocate de către biblioteca ''​libpthread''​ pentru fiecare thread în parte. Observați că, în plus, se mapează ​între paginile alocate stivelor thread-urilor (8192K) câte o pagină (4KB) cu protecția ''​%%----- [anon] ​%%''​ (PROT_NONE - vizibil în ''​procfs''​) care are rolul de %%"​%%pagină de gardă%%"​%%. ​
  
 Motivul pentru care nu se termină programul este prezența unui ''​​while(1)''​​ în funcția thread-urilor. Folosiți ''​Ctrl+C''​ pentru a termina programul. ​ Motivul pentru care nu se termină programul este prezența unui ''​​while(1)''​​ în funcția thread-urilor. Folosiți ''​Ctrl+C''​ pentru a termina programul. ​
Line 1062: Line 1060:
 </​code>​ </​code>​
  
-Verificați ce se întâmplă dacă la un moment dat un fir de execuție ​ moare (sau un proces, în funcție de ce executabil testați). Testați utilizând funcția ''​do_bad_task''​ la fiecare al 4-lea fir de execuție/​process.+Verificați ce se întâmplă dacă la un moment dat un fir de execuție moare (sau un proces, în funcție de ce executabil testați). Testați utilizând funcția ''​do_bad_task''​ la fiecare al 4-lea fir de execuție/​process. Observaţi cum încheierea anormală a unui thread duce la încheierea procesului din care face parte
  
 ==== Exercițiul 3 - Generator de numere pseudoaleatoare ==== ==== Exercițiul 3 - Generator de numere pseudoaleatoare ====
  
 <note important>​ <note important>​
-Datorită ​faptului că mașina virtuală ​''​spook'' ​are un singur core virtual, exercițiul următor trebuie realizat pe mașina fizică pentru a permite mai multor thread-uri să ruleze în același moment de timp.+Din cauza faptului că mașina virtuală are un singur core virtual, exercițiul următor trebuie realizat pe mașina fizică pentru a permite mai multor thread-uri să ruleze în același moment de timp.
 </​note>​ </​note>​
  
Line 1117: Line 1115:
  
 <note important>​ <note important>​
-Datorită ​faptului că mașina virtuală ​''​spook'' ​are un singur core virtual, exercițiul următor trebuie realizat pe mașina fizică pentru a permite mai multor thread-uri să ruleze în același moment de timp.+Din cauza faptului că mașina virtuală are un singur core virtual, exercițiul următor trebuie realizat pe mașina fizică pentru a permite mai multor thread-uri să ruleze în același moment de timp.
 </​note>​ </​note>​
  
so/laboratoare/laborator-08.1555492495.txt.gz · Last modified: 2019/04/17 12:14 by maria.mihailescu
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