Toto je starší verze dokumentu!
Co říkal přednášející na poslední přednášce:
Určil 4 základní okruhy:
3 body na otázku, hodina na vypracování. Když něco není úplně přesně, spíš lehce strhával body, opravuje v poho. Ne vše si pamatuju přesně, třeba někdo doplní:
Verze 1
Verze 2
Ústní otázka:
Verze 1
Verze 2
zadani_7_6_2013.zip Omlouvám se za zabělení odpovědí,ale raději jsem vymazal cokoliv, co by mě mohlo identifikovat.
Odpovědi k paměti (ot. 2; nikdo ji neměl 100% dobře): a) 3 MB b) 0 MB c) 16 MB d) 18 MB - edit 1 a 1 MB jsou vyjmuty ze společného prostoru e) 31 MB (18+10+3(bss)) rekl, ze muze byt take 32 ten 1MB na vic zalezi na nejaky skript
1. termín
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
a4m35osp_reseni otazky.odt asi 5 pridanych otazek
a4m35osp_reseni otazky_upraveny.odt Dovolil jsem si materiály trochu vylepšit.
Vypracované okruhy a vybrané přednášky z X36OSY. materials.zip
Poznámka: Píša má podezření, že máme otázky vypracované, protože se v testech opakují stále stejné chyby. Je potřeba odpovědi opravit a hrozí, že změní zkouškové otázky. Jedná se hlavně o mmap, futex, signal/slot a pár odpovědí je zjevně špatně (release/snapshot atd.)