Architektury OS: monolitické, vrstvené systémy, funkční hierarchie, objektově orientované, založené na mikrojádře.
Procesy. Konstrukce pro vytváření procesů, interakce procesů a kritické sekce. Synchronizační primitiva - semafory, čítače událostí, monitory, zprávy - implementace. Mailboxy a porty, RPC. Klasické IPC problémy - problém večeřících filosofů, problém čtenářů a písařů, problém producent-konzument. Řešení problému čtenářů a písařů pomocí semaforů. Řešení problému producent-konzument pomocí semaforů.
Plánování procesů, algoritmus cyklické obsluhy. Plánování úloh - FIFO, LIFO, SJF.
Správa hlavní paměti - pevné a dynamické rozdělení paměti, mechanismus báze a limitu. Statické a dynamické zavádění úloh, odkládání úloh. Správa paměti bitmapami a seznamy. Algoritmy přidělování paměti - first fit, next fit, best fit, quick fit, buddy system. Překrývání (overlays), stránkovaná virtuální paměť. Algoritmy nahrazování stránek, stránkovací hardware a význam asociativní paměti.
Vstupy a výstupy. Bloková a znaková zařízení, rozvrstvení I/O softwaru, spooling.
Uváznutí, podmínky vzniku, modelování, způsoby řešení, detekce a zabránění, bankéřův algoritmus.
Systémy souborů, uživatelské rozhraní. Struktury souborů. Implementace, výkonnost a bezpečnost souborového systému.
Stabilní paměť. Transakce.
Ověřování uživatelů, bezpečnost OS. Červi, viry, útoky proti bezpečnosti OS, principy bezpečného návrhu.
Příklad OS: UNIX.
Lukáš Petrlík