Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025

Operační systémy

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
B4B35OSY Z,ZK 4 2P+2C česky
Garant předmětu:
Michal Sojka
Přednášející:
Michal Sojka, Petr Štěpán
Cvičící:
Jan Chudoba, Matěj Kafka, Michal Sojka, Petr Štěpán, Jiří Vlasák, Jiří Záhora
Předmět zajišťuje:
katedra řídicí techniky
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).

Požadavky:

programovaní C

architektury počítačů

Osnova 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

Osnova 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.

Cíle studia:
Studijní materiály:

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/

Poznámka:
Další informace:
https://osy.pages.fel.cvut.cz/
Rozvrh na zimní semestr 2024/2025:
Rozvrh není připraven
Rozvrh na letní semestr 2024/2025:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 27. 4. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet4683606.html