Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
courses:a4m35osp [2014/06/07 14:03] furtuand [Zkouška 28.5.2014] |
courses:a4m35osp [2025/01/03 18:23] (aktuální) |
||
---|---|---|---|
Řádek 143: | Řádek 143: | ||
==== Zkouška 28.5.2014 ==== | ==== Zkouška 28.5.2014 ==== | ||
- | * [[courses/a4m35osp/zkouska_2852014|zkouska 28.05.2014]] | ||
- | 1. termín | + | * [[courses/a4m35osp/zkouska_2852014|zkouska 28.05.2014]] |
- | - Máme program s .bss, .text, .data, a stack a heap. Jak budou setřídění v pamětí? | + | |
- | - Několik volání v C, jak a kde budu alokování. (otázku jsem úplně nepochopil) | + | |
- | - ... | + | |
- | - 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). | + | |
- | - Jak se shora omezená cena open source software a konkretně jak v GPL licenci? | + | |
- | - Otázka na mutex, bylo 5 tvrzení a potřeba zjistit která jsou pravdivá. | + | |
- | - 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 | + | ==== Zkouška 9.6.2014 ==== |
+ | * [[courses/a4m35osp/zkouska_962014|zkouska 9.06.2014]] | ||
- | 2) Ze které sekce/oblasti (jedné nebo více) bude alokovaná/vyhrazená paměť pro následující konstrukce v jazyce C: | + | ==== Zkouška 25.5.2015 ==== |
- | a) #include <malloc.h> | + | * [[courses/a4m35osp/zkouska_25052015|zkouska 25.5.2015]] |
- | 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) | + | ==== Zkouška 1.6.2015 ==== |
- | + | ||
- | 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. | + | * [[zkouska 1.6.2015]] |
- | + | ||
- | + | ||
- | 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 | + | |
===== Vypracované otázky z písemek ===== | ===== Vypracované otázky z písemek ===== | ||