Operačné systémy
Harmonogram prednášok
Úvod
- čo je OS
- účel
- základné súčasti a funkcie
- správa prostriedkov
- abstrakcia prostriedkov
- ovládače
- stručná história, prehľad
- monolitické jadro, mikrokernel (klient/server), moduly
- programátorské rozhranie, systémové volanie
- používateľské rozhranie (grafické, textové/shell)
- zavádzanie OS
- konfigurácia, aktualizácie
Procesy
- program/proces
- používateľský kód, vzťah k okoliu (súbeh, komunikácia, V/V)
- vznik procesu
- stavy procesu
- plánovač, preempcia, časovač, prerušenia, prepínanie kontextu
- signály (ukončenie, pozastavenie a iné)
- implementácia procesu
- vlákna
- prostriedky a ich limity
- čas systémový/používateľský, procesorový/reálny, vyťaženie systému
Medziprocesová komunikácia a synchronizácia
- vzájomné vylučovanie, podmienky korektného riešenia
- podpora hardvéru (cmpxchg)
- transkačná pamäť
- programové riešenia
- riešenia pre viac procesov (Peterson, ticket, bakery)
- obsadzujúce čakanie
- vyššie synchronizačné prostriedky
- semafory, ich realizácia a použitie
- futex
- kruhový buffer, dátovody
- problém obedujúcich filozofov
- producent/konzument
Uviaznutie
- podmienky pre vznik
- možné riešenia (detekcia/zotavenie, predchádzanie, vyhýbanie)
- bankárov algoritmus
Správa pamäte
- monoprogramovanie, úseky pevnej a premenlivej dĺžky
- fragmentácia
- stránkovanie
- segmentácia
- logický adresový priestor procesu
- preklad logickej adresy na fyzickú
- tabuľka stránok a jej realizácia
- výpadok stránky
- algoritmy výberu obete
- swapovanie
- page cache/buffer cache
- malloc, overcommit, OOM killer
- hierarchický pamäťový systém
- princípy lokality
- model pamäte
Súbory a súborové systémy
- súbory a typy súborov
- adresárová štruktúra
- prístupové práva
- atribúty
- i-uzol
- štruktúra súborového systému (superblok, mapa voľných blokov, mapa voľných i-uzlov, tabuľka i-uzlov, dátové bloky)
Periférne zariadenia
- znakové a blokové zariadenia
- disky
- prístup k V/V portom