Propuneri subiecte de examen

Foaie examen

# Booting (Andrei) #* Cate intreruperi poate trata un sistem de operare la un moment dat de timp? Justificati. # FUTEX (Andrei) #* Ce problema concreta rezolva un FUTEX fata de primitivele de sincronizare clasice? Ce problema noua introduce? # RCU (Răzvan) #* Dați exemplu de situație în care RCU se comportă mai prost decât sincronizarea clasică? # Syscall Wrappers (Andrei) #* Pentru un atac cu page-fault-uri, scrieti o bucata de cod care sa poata exploata o vulnerabilitate a unei functii cu un singur argument. # UML (Andrei) #* Descrieti virtualizarea apelului de sistem getpid() apelat de un proces care ruleaza in UML. # Xen (Andrei) #* Explicati de ce este para-virtualizarea preferata in Xen? # Checkpoint (Răzvan) #* Care este avantajul unui checkpoint bazat pe fork, față de unul clasic? # L4Android (Răzvan) #* Fie un driver GPU implementat într-un sistem L4Android cu interfață HAL. Ce componentă a acestuia se va găsi în nucleul Android al mașinii guest și ce componentă în HAL? # Energy Management (Traian) #* În contextul soluției de virtualizare cu suport de energy management, cine este driverul resursei procesor, cel care contabilizează folosirea procesorului? # TCP Checksum (Răzvan) #* Fie abordarea prezentată în articolul de TCP & CRC checksum. Există cazuri în care suma de control (checksum-ul) a CRC, cea a IP să fie OK, dar cea a TCP nu? # Pointer Tainting (Andrei) #* De ce este atacul urmator un atac “non-control data” si ce obtine atacatorul folosindu-l:

    void serve (int fd)
    {
        char *name = globMyHost; 
        char cl name[64];
        char svr reply[1024];
        
        read(fd,cl name,128); sprintf(svr reply, "hello %s, I am %s", cl_name, name);
        svr_send(fd,svr reply,1024);
    }

# Android Permissions (Răzvan) #* Precizați un avantaj și un dezavantaj al folosirii analizei statice bazată pe Java reflection în fața analizei dinamice pe cod Android pentru realizarea unei tabele de mapare de permisiuni (permission map). # RFS (Traian) #* De ce nu poate fi folosit modelul de sincronizare al RFS-ului în sisteme de versionare de uz generic (git, SVN, etc.)?

Indicații rezolvare

3. O situație în care operațiile de actualizare sunt foarte frecvente, iar RCU generează overhead la finele perioadei de grație. Întrucât se actualizează frecvent, este nevoie de o perioadă de grație relativ scurtă care generează overhead-uri de schimbare de context. RCU este util îndeosebi pentru situații de tipul read-mostly. 7. La fork nu se salvează toată informația pe disc ci doar diferențele (copy-on-write). Când procesul pică se reîncarcă (restore) din datele celuilalt + informațiile de tip diff stocate pe disc. Mai rapid, mai puțin spațiu ocupat pe disc, puțin spațiu ocupat în memorie pentru procesul fork-uit. 8. În nucleul Android se găsește back-end-ul driverului, partea generică ce ține strâns de sistemul de operare. În cazul GPU asta înseamnă interfața cu controller-ul GPU (chipset-ul). În HAL se găsește partea negenerică, care poate fi, în cazul Android și cod proprietar, precum implementarea OpenGL. Este vorba de front-end-ul driverului care cunoaște specificul plăcii și logica de funcționare. 12. Java reflection permite parcurgerea exhaustivă a spațiului de metode (avantaj) dar nu are cunoaștere completă a fluxului de apel și a parametrilor transmiși (dezavantaj). O analiză dinamică realizează fluxuri reale, pe aplicație, cu dezavantajul consumului de resurse pentru rularea și cu posibilitatea neacoperii unor pași ce apar doar în situații specifice.

osp/internal/2012-2013/examen.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