Operační systémy

B232 - Letní 23/24
Tento předmět se nenachází v Moodle. Na jeho domovskou stránku se můžete dostat pomocí tlačítka "Stránka kurzu (mimo Moodle)" vpravo (pokud existuje).

Operační systémy - B4B35OSY

Kredity 4
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P+2C
Anotace
Student se seznámí se základními koncepty a principy operačních systémů, jako jsou procesy a vlákna, jejich komunikace a plánování, synchronizační prostředky, virtuální paměť, správa periferií, souborové systémy či základní otázky bezpečnosti. Na přednáškách budou tato témata probrána teoreticky s odkazy na implementace převážně v OS Linux a Windows. Od začátku budou uvažovány platformy s vícejádrovými procesory. Na cvičeních budou studenti vypracovávat úlohy v jazyce C, C++ nebo Rust a budou pracovat s operačními systémy Linux a NOVA (mikrojádro).
Cíle studia
Žádná data.
Osnovy přednášek
1. Architektura počítače, historie a typy OS, komponenty OS.
2. Obsluha přerušení a vyjímek. Systémová volání.
3. Procesy, vlákna, přepínání kontextu, rozvrhování (plánování), lokální vs. globalní plánování, migrace vláken.
4. Synchronizace, časově závislé chyby, přístup ke sdíleným zdrojům (nepreemptivní sekce, semafory, mutexy, spinlocky, Java synchronize), uváznutí.
5. Meziprocesní komunikace (signály, roury, předávání zpráv)
6. Virtuální paměť, výpadky stránek, odkládání, copy-on-write, spouštění procesů, relokace, dynamické knihovny.
7. Správa paměti, paměťové alokátory (v jádře a uživatelském prostoru, halda).
8. Bezpečnost (security), trusted computing base, buffer overflow, ASLR, antiviry, šifrování.
9. Vstup/výstup, ukládání dat, síťová rozhraní, USB, HID, ovladače zařízení (Linux, Win).
10. Souborové systémy, žurnálování, integrita dat, disková vyrovnávací paměť.
11. Grafický subsystém, trame buffer, HW akcelerace, paralelní výpočty.
12.Virtualizace.
13. Mobilní OS, struktura OS Android a jeho aplikací, spolupráce s cloudovými službami
14. Duševní vlastnictví a jeho ochrana, open source softwarové licence, ekonomické aspekty využití open source
Osnovy cvičení
1. Úvod, shell, opakování programování v C, makefile praktický vstupní test
2. Základy používání shellu, skriptování.
3. Systémová volání - Linux (assembler, C)
4. Systémová volání - na mikrojádře NOVA
5. Synchronizace v C - úloha na vlákna a synchronizaci (Linux)
6. Úloha na IPC (roura mezi vlákny, obsluha signálů, Linux)
7. Zavedení ELF souboru do paměti a spuštění (NOVA)
8. Přepínání vláken (NOVA)
9. Semafor, preemptivní multitasking (NOVA)
10. Bezpečnost, buffer overflow exploit (Linux)
11. Alokace paměti (halda, Linux)
12. Implementace souborového systému (NOVA)
13. Odevzdání souborového systému, zápočet.
Literatura
1. TANENBAUM, Andrew S a Albert S WOODHULL. Operating systems design and implementation. 3rd ed. Upper Saddle River: Prentice-Hall, c2006, xvii, 1054 s. ISBN 0131429388.
2. http://wiki.osdev.org/
3. http://hypervisor.org/
Požadavky
programovaní C
architektury počítačů