Popis předmětu - B4B35OSY

Přehled studia | Přehled oborů | Všechny skupiny předmětů | Všechny předměty | Seznam rolí | Vysvětlivky               Návod
B4B35OSY Operační systémy
Role:P Rozsah výuky:2P+2C
Katedra:13135 Jazyk výuky:CS
Garanti:Sojka M. Zakončení:Z,ZK
Přednášející:Sojka M., Štěpán P. Kreditů:4
Cvičící:Osob je mnoho Semestr:Z

Webová stránka:

https://osy.pages.fel.cvut.cz/

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

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čů

Předmět je zahrnut do těchto studijních plánů:

Plán Obor Role Dop. semestr
BPOI1_2016 Informatika a počítačové vědy P 3
BPOI_BO_2016 Před zařazením do oboru P 3
BPOI4_2016 Počítačové hry a grafika P 3
BPOI3_2016 Software P 3
BPOI2_2016 Internet věcí P 3
BPOI_BO_2018 Před zařazením do oboru P 3
BPOI4_2018 Počítačové hry a grafika P 3
BPOI3_2018 Software P 3
BPOI2_2018 Internet věcí P 3
BPOI1_2018 Základy umělé inteligence a počítačových věd P 3


Stránka vytvořena 12.10.2024 07:50:51, semestry: L/2023-4, L/2024-5, Z/2025-6, Z/2024-5, připomínky k informační náplni zasílejte správci studijních plánů Návrh a realizace: I. Halaška (K336), J. Novák (K336)