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ů:
Stránka vytvořena 27.7.2024 15:51:07, semestry: Z/2023-4, L/2024-5, L/2023-4, 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) |