(2010-2011) Propuneri subiecte examen

  • Booting (Andrei)
    • Care sunt și cum se inițializează subsistemele I/O necesare boot-ării?
  • FUTEX (Răzvan)
    • Fie următoarea implementare a funcției lock}:
      void lock(void)
      {
              int c;
      
              if ((c = cmpxchg (val, 0, 1)) != 0) {
                      if (c != 2)
                              c = xchg (val, 2);
                      while (c != 0) {
                              futex_wait (&val, 2);
                              c = xchg (val, 2);
                      }
              }
      }
    • Ce se întâmplă dacă operația xchg(val, 2) nu este atomică? Oferiți o soluție alternativă.
  • RCU (Răzvan)
    • Fie un sistem SMP rulând Linux. Dați exemplu de situație care necesită locking, în care se pot folosi atât lock-uri clasice (mutex-uri, spinlock-uri) cât și RCU, dar soluția RCU este mai puțin performantă decât soluția clasică.
    • Fie o regiune critică protejată cu lock-uri sau memorie tranzacțională. Se consideră următoarele trei elemente: număr de thread-uri ce doresc să acceseze regiunea critică, dimensiunea regiunii critice, numărul de operații de scriere. Pentru fiecare variație a celor trei elemente între valorile mare și mic (8 cazuri), specificați și argumentați dacă se recomandă folosirea lock-urilor sau a memoriei tranzacționale.
    • Pentru eliminarea problemelor induse de soluțiile de tip syscall wrappers, se propune folosirea de lock-uri în următoarele moduri:
    • lock pe precondiție
    • lock pe postcondiție
    • lock la începutul precodiției și la sfârșitul postcondiției
    • De ce niciuna dintre propuneri nu este potrivită?
  • UML (Andrei)
    • Câte procese sunt create pe sistemul de operare gazdă dacă într-un proces UML se execută următorul pseudocod:
          ...
          fork();
          pthread_create(..);
          ...    
  • Xen (Andrei)
    • Dati două exemple de penalizari de performanță datorate modificărilor care trebuie facute în sistemul de operare guest pentru a putea rula în Xen. Explicați.
  • TCP Offload (Andrei)
    • Care sunt motivele pentru care este nevoie de TCP offloading? Exemplificați.
  • TCP CRC (Andrei)
    • Cum se calculează TCP Checksum? Explicați.
    • Dați exemplu de snippet de cod care prezintă o eroare detectabilă folosind basic tainting (Atenție! nu pointer tainting).
    • Ce poate face un BHO malware pentru a nu fi detectat prin metoda prezentată. Explicați.
osp/internal/2010-2011-exam-proposal.txt · Last modified: 2015/09/26 12:42 (external edit)
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