Differences

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

Link to this comparison view

so2:cursuri:curs08:test [2013/02/10 02:10]
127.0.0.1 external edit
so2:cursuri:curs08:test [2013/02/17 09:53] (current)
razvan.deaconescu
Line 1: Line 1:
 ====== Test Cursul 8 ====== ====== Test Cursul 8 ======
  
-1. **De ce nu este corectă următoare secvență de cod?** +  ​TODO
-<​code>​ +
-spin_lock(&​spinlock);​  +
-list_del_rcu(&​p->​list);​  +
-spin_unlock(&​spinlock);​  +
-kfree(p); +
-</​code>​ +
- +
-Se folosește RCU deci nu mai este necesar locking-ul. Pentru a garanta faptul că toți cititorii au trecut de {{{p}}} trebuie folosit {{{synchronize_rcu}}} în loc de {{{spin_unlock}}} (nimic în loc de {{{spin_lock}}}. Pe majoritatea arhitecturilor,​ apelul nu face decât o barieră pentru operațiile de read și write. +
- +
-O variantă a codului care nu ar folosi RCU ar avea și {{{kfree}}} în interiorul zonei protejate. +
- +
-2. **Pentru un TLB cu 64 de intrări și costul unui miss de 100ns, care este costul re-umplerii TLB-ului în cazul unui apel de sistem pentru un split user/kernel 4/4 și respectiv 3/1?** +
- +
-Pentru un kernel 3/1 se invalidează TLB-ul la schimbarea de context. În rest, costul e dat de numărul de intrări care trebuiesc actualizate. +
- +
-În cazul unui kernel 4/4 tot TLB-ul se invalidează,​ rezultând un cost de 6.4us. +
-  +
-3. **Ce fragmentare internă avem pentru alocarea unui bloc de memorie de 34 de octeți folosind kmalloc? Dar dacă folosim kmem_cache_create?​ (slab)** +
- +
-Apelul {{{kmalloc}}} folosește slab în spate. El caută un cache de dimensiune putere a lui 2 și alocă spațiu de acolo. Deci, folosind {{{kmalloc}}} fragmentarea este de 30 de octeți. +
- +
-Folosind {{{kmem_cache_create}}} ne creăm un slab de obiecte de dimensiune 34 (36 dacă avem restricție de aliniere) și fragmentarea va fi 0 (2).+
so2/cursuri/curs08/test.txt · Last modified: 2013/02/17 09:53 by razvan.deaconescu
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