Zkouška 28.5.2014

1. termín

  1. Máme program s .bss, .text, .data, a stack a heap. Jak budou setřídění v pamětí?
  2. Několik volání v C, jak a kde budu alokování. (otázku jsem úplně nepochopil)
  3. Jake objekty máme v ./git/objects (odpověd: blob, tree, commit, tag). Pokud přesuneme všechno z adresářu /a/b do a/c a udělame z toho nový commit, jaky objekty se vytvoře (podle mně: commit a tree jenom).
  4. Jak se shora omezená cena open source software a konkretně jak v GPL licenci?
  5. Otázka na mutex, bylo 5 tvrzení a potřeba zjistit která jsou pravdivá.
  6. Co je potřeba říct při nahlášení nového OS projektu? (moji odpověd: název, popis cílové a současně funkčností, licenca, prog. jazyk, odkaz na repositář s kodem (nebo přímo kod), odkaz na další stránky (mailing lista, blog, web stránky projektu atd))

Kompletní test:

1) Uvažujte sekce spustitelného souboru/programu (.data, .bss, a .text) a další typické oblasti adresního prostoru procesu (zásobník/stack a halda/heap). V běžných OS (POSIXového typu i Windows) je pořadí těchto oblastí stejné. Seřaďte uvedené sekce a oblasti v pořadí virtuální adresy od nejnižší virt. adr. po adr. nejvyšší

Odpověd: .text .data .bss heap stack

2) Ze které sekce/oblasti (jedné nebo více) bude alokovaná/vyhrazená paměť pro následující konstrukce v jazyce C:

 a) #include <malloc.h>
    int global_x;
    
    Odpověď: bss
    
 b) #include <malloc.h>
    int global_x = 30;
    
    Odpověď: data
    
 c) #include <malloc.h>
    char * new_str30(void) {
       return malloc(31);
    }
    
    Odpověď: heap
    
    

3) Co vyjadřuje koncepce „všechno je soubor/pojmenovaný uzel (inode)“, jak se kterého systému týká a kde lze pozorovat výjimky z této koncepce ?

    Odpověď: Týká se zejména Unixových systémů. Lze přistupovat k různým pamětím, zařízením a socketům jako k souborům. Výjimka: síťový socket (myslím)
    

4) Jaké varianty kompilátoru GCC budeme potřebovat při kompletní portaci OS GNU/Linux z arch. x86_64-linux-gnu (x86) na novou architekturu CPU fireball-linux-gnu (FB) ? Uvažujme, že budeme dále chtít na cílové architektuře systém dále vyvíjet. Kde bude který kompilátor kompilovaný a používaný ?

    Odpověď: Nejdříve cross-kompilátor, kde pomocí cross kompilace zkompilujeme na x86 zdrojové kódy OS do bin.podoby pro arch FB. Poté opět cross kompilací z x86 zkompilujeme nativní kompilátor pro FB, kterým poté budeme nativně kompilovat na architektuře FB.
    
    

5) Při přístupu k libovolnému souboru uloženému v soub.systému na blokovém zař. dochází v jádrech OS Linux 2.4 a vyšších k uložení dat souboru do operační paměti po úsecích v násobku určité délky.

    a) Z čeho je velikost těchto úseků odvozená ? Odpověď: Z násobků velikosti stránky
    b) Jak se tento mechanizmus vyrov.pam. nazývá ? Odpověď: PAGE CACHING
    c) Kdy dojde k uvolnění takto alokovaného bloku paměti ? Odpověď: Při nedostatku volné paměti (myslím)
    

6) Vyjmenujte 4 typy objektů které uchovává GIT v adresáři .git/objects - odpověď: trees, blobs, tags, commits

 Dále vysvětlete, které objekty v úložišti vzniknou, pokud přesuneme všechny soubory v adresáři "a/b" do adr. "a/c" a provedeme commit - odpověď: Vytvoří se dva nové objekty typu tree a commit.
 

7) Jak je shora omezena open-source produktů obecně a specificky pro GPL ?

 Odpověď: Cena není omezena.

8) Rozdíly v bin.reprez. dat (nativní dat.typy CPU, struktury, atp.) z pohledu síťových protokolů mezi různými architekturami a ABI počítačů ?

 Odpověď: rozdílná architektura (64bit vs 32bit, x86 vs ARM), big vs little endian

9) Označte pravdivá tvrzení o implementaci mutexů v systému GNU/Linux s moderní verzí GLIBC:

  a) [ ] Při založení mutexu dynamicky či globálně se musí volat systémové volání pro inicializaci mutexu
  b) [X] Pokud je zámek volný tak se při zamykání systémové volání jádra neprovádí
  c) [X] Při odemykání zámku může být i tak potřeba jádro zavolat
  d) [ ] Při volání jádra se předává adr. instrukce, která provádí operaci zamykání v uživ. prostoru
  e) [X] Před vlastním uspáním procesu, který čeká na uvolnění zámku se nejdřív proces přidá na frontu identifikovanou kombinací inode a offsetu nebo specifikací stránky anonymní paměti a pak se znova provádí kontrola podmínky a v případě splnění se uvolní z fronty a dojde k návratu do user-space.
 

10) Co by mělo obsahovat poč. oznámení o vzniku OS projektu?

 Odpověď: 
     za jakým účelem vzniká
     čím se zabývá
     jak se lze připojit do vývoje
     kde se dá sehnat zd.kód
     pod jakou licencí je
     

2. termín

zadání obdobné jako ke zkoušce 7.6.2013

2. Uvazujte zkompilovany program, jehoz kod (sekce “text”) zabira 2MB, sekce “data” 1MB, sekce “bss” 3MB. Jake budou jeho pametove naroky za nasledujici podminek?

 a) program bude zabirat na disku ________3__
 b) tesne po spusteni procesu volani exec() bude zabirat ve fyzicke RAM  ______0__
 c) predpokladejte vyuziti veskerych funkci kodu a pristupy k veskerych datum, prepis celeho bss a 10MB dynamicke pameti. Pri dostatku fyzicke RAM pak bude vyuzito    _____16___
 d) Ve vyse uvedenem stavu proces pouzije volani fork, jeho kopie bude prochazet veskera data ale modifikovat bude pouze 1MB dat v dynamicky naalokovane pameti. Puvodni proces bude modifikovan jiny 1MB dat. Celkem bude vyuzito  ___18______
 e) Z interpreteru prikazu odstartujeme dalsi instanci programu a ta projede body b) a c). Kolik fyzicke pamety RAM bude osazeno sledovanymi tremi procesy?  _____31____

3. Co znamena pojem reverzni mapovani stranek a kdy se tento mechanizmus vyuziva?

Otázka se vztahuje k paměti a reverznímu nalezení všech Page Table, který vedou na stejný Page Frame. 

4. Jake jsou zakladni dva koncepty serverovych aplikaci pro obsluhu vice klientu a proc je pro velke mnozstvi klientu nutna jejich kombinace?

jedno vlakno na klienta + vlakno pro prijem spojeni a zakladani vlaken
zpracovani vseho v jednom vlakne (odpada rezie, ale nevyuzije se vice cpu)
thread-pool (pripravena vlakna + rizeni pridelovani)

5. Uvedte hlavni vyhodu mechazimu signal-slot oproti puvodni (registraci) callback?

Signal-slot je koncept ve frameworku QT, vysílají se signály a kdo má zaregistrovaný příslušný slot, správu přijme. Callback je je pointer na funkci, která se zavolá když je něco hotovo.  hlavne chtel slyset, ze je to vztah M:N
Callbacky nejsou type-safe, nemůžeme si být jisti, že se zavolá funkce se správnými argumenty. Callbacky jsou silně vázány se zpracovávací funkcí, nemůžeme jí jen tak vyměnit. 

6. Ktere tvrzeni jsou pravdive o GIT

a)[ ] soubor git/index slouzi k rychlemu vyhledani jednotlivych tagu v git/objects
b)[x] prikaz fetch zajisti zrcadleni aktualniho stavu projektu z odpovidajici vzdalene vetve do git/refs/remotes, vlastni pracovni adresar neni modifikovany
c)[x] soubory git/objects/XX/XXXX se po prvnim vytvoreni a naplneni daty jiz nikdy nemodifikuji 
d)[ ] typ objektu blob odkazuje na prislusny objekt typu commit

7. Kolik musi existovat nezavislych implementaci daneho protokolu/navrhu RFC , aby mu bylo mozne priradit cislo SDT podle IETF? Jak se resi potreba inovovat urcity, jiz existujici, standard?

aspon 2. Pokud jsou již dvě nezávislé interoperabilní implementace – Draft. Když se prokáže užitečnost tak se stane standardem – STD číslo, to  ůstává i pro příští verzi, pak již odkazuje na jiné RFC

8. Co znamena pojem meritokracie a jak se vztahuje k open-source?

Ti co jsou nejsilnejsi, ti rozhoduje. Právo na rozhodování v podstatě vždy založené na míře osobních zásluh (meritokracie*)

9. Vyjmenujte alespon tri urovne, na kterych uvazujeme zpracovani udalosti. Pro kazdou uroven … mechanismus, ktery je udalost oznamena a odpovidajici zpusob/volani, kterym muze zajemce na udalost cekat. Uvazujte napriklad prichod sitoveho paketu na ETHERNET. Paket nese hodnotu, ktera bude na aplikacni urovni zobrazena s vyuzitim technologie QML.

10. Predpokladejde puvodni verzi zdrojovych kodu v adresari /home/bart/know-it-all-orig. Novou verzi v adresari adresari /home/bart/know-it-all-new. Jakym beznym programem/prikazem rychle zjistite ve kterych radcich se jednotlive soubory lisi a jak bude vypadat vystup prikazu? Pokuste se napsat prikaz a jeho vystup a ve vystupu uvedte, jakou infomaci kazda radka prinasi?

diff -u 
courses/a4m35osp/zkouska_2852014.txt · Poslední úprava: 2019/01/10 18:46 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0