460-4158/01 – Implementace v operačních systémech (IvOS)
Garantující katedra | Katedra informatiky | Kredity | 4 |
Garant předmětu | Mgr. Ing. Michal Krumnikl, Ph.D. | Garant verze předmětu | Mgr. Ing. Michal Krumnikl, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | volitelný odborný |
Ročník | 1 | Semestr | letní |
| | Jazyk výuky | čeština |
Rok zavedení | 2024/2025 | Rok zrušení | |
Určeno pro fakulty | FEI | Určeno pro typy studia | navazující magisterské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Cílem předmětu je seznámit posluchače s pokročilými programovacími technikami v operačních systémech. V rámci předmětu se studenti prakticky seznámí s implementací základních prvků operačních systémů a mechanismů souborových systémů. Po absolvování předmětu budou schopni navrhovat své programy efektivně tak, aby maximálně využívali dostupné zdroje operačního systému.
Po ukončení kurzu budou studenti schopni:
- Identifikovat jednotlivé vrstvy operačního systému a popsat hlavní funkce.
- Popsat vnitřní procesy OS s ohledem na průběh života procesu.
- Vytvářet aplikace běžící přímo na konkrétním systému bez podpory rozšiřujících runtime knihoven.
- Modifikovat postupy vývoje softwaru tak aby umožnily lepší využití systémových zdrojů.
Vyučovací metody
Přednášky
Cvičení (v učebně)
Anotace
V předmětu budou probrány pokročilé metody programování v operačních systémech. Studenti se seznámí s detaily vnitřní struktury a implementace operačních systémů, technikami plánování procesů a organizací dat a metadat souborových systémů.
Povinná literatura:
Doporučená literatura:
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Průběžná analýza probíraných témat a jejich praktická implementace.
Hodnocení samostatně řešených úkolů.
Podmínky udělení zápočtu: úspěšné vypracování samostatných úkolů během semestru.
Závěrečné ověření studijních výsledků:
prezenční i kombinovaná forma studia - písemná zkouška.
E-learning
Další požadavky na studenta
Znalost programování v některém z vyšších programovacích jazyků (C#, Java, C++, apod.)
Základní znalost vývoje aplikací pro některou z mobilních platforem.
Prerekvizity
Předmět nemá žádné prerekvizity.
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
Přednášky
- Architektura operačních systémů, charakteristika mobilních a embedded systémů.
- Vnitřní struktura operačních systémů, implementace systémových volání a modulů.
- Implementace správy procesů, souběžné zpracování. Práce se signály a jejich zpracování.
- Vlastnosti plánovačů procesů, jejich nastavování, real-time (RT) procesy.
- Power management, techniky úspory a plánování spotřeby energie.
- Implementace ovladačů zařízení, komunikace s periferiemi.
- Práce se soubory a I/O zařízeními. Paměťově mapované soubory.
- I/O operace synchronní a asynchronní; blokující vs. neblokující režim.
- Souborové systémy. Základní vlastnosti; žurnálovací souborové systémy a systémy pro flash paměti.
- Implementace uživatelských souborových systémů a jejich zasazení do user-space.
Cvičení (na PC učebně)
- Funkce select a poll, blokující a neblokující I/O komunikace.
- Sockety, způsoby nastavování jejich chování a vlastností.
- Realizace jednoduchého HTTP serveru.
- Vícevláknový server s meziprocesní/vláknovou synchronizací.
- Implementace vlastního plánovače procesů s prioritami a prevenci hladovění procesů.
- Monitorování běhu plánovačů Round-robin (RR) a Lottery Scheduling (LS), jejich srovnání.
- Procesy, signály a jejich zachycení a maskování.
- Implementace jednoduchého souborového systému (FS) v režimu read-only.
- Rozšíření implementace FS o zápis, formátování a případnou kontrolu konzistence.
- Sledování datových toků I/O zařízení a síťových rozhraní.
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky
Předmět neobsahuje žádné hodnocení.