Systemy Operacyjne 2
Strona z materiałami dydaktycznymi do przedmiotu Systemy Operacyjne 2.
Uwaga: Zamieszczone tu materiały nie mają charakteru podręczników akademickich. Stanowią jedynie uzupełnienie wykładu
i literatury podanej na stronie.
Wykład
- Wstęp
- Zarządzanie procesami w Linuksie
- Szeregowanie procesów w Linuksie (planista O(1))
- Szeregowanie procesów w Linuksie (planista CSF)
- Wywołania systemowe
- Obsługa przerwań
- Mechanizmy dolnych połówek
- Środki synchronizacji
- Pomiar czasu i synchronizacja względem czasu
- Zarządzanie pamięcią
- Wirtualny system plików
- Urządzenia znakowe i blokowe
- Warstwa operacji blokowych
- Przestrzeń adresowa procesu
- Obsługa sieci
W trakcie trwania przerwy spowodowanej zagrożeniem COVID-2019 proszę samodzielnie zapoznawać się z materiałami, które będą sukcesywnie publikowane na tej stronie w dniach, w których zwykle odbywałby się wykład (tj. środy). Wszelkie zapytania i uwagi do wykładów proszę kierować do mnie za pośrednictwem poczty elektronicznej. Mój adres można znaleźć w zakładce Kontakt/Contact.
Laboratorium
- Moduły jądra systemu Linux
- Dynamiczny przydział pamięci w przestrzeni jądra Linuksa
- Struktury danych jądra Linuksa
- Systemy plików procfs i sysfs
- Wątki jądra i mechanizmy synchronizacji
- Tasklety i kolejki prac
- Liczniki czasu
- Sterowniki urządzeń znakowych
- Sterowniki urządzeń blokowych
- Gniazda sieciowe Netlink i Genetlink
Literatura i inne materiały
Literatura podstawowa:
- Robert Love, „Kernel Linux, przewodnik programisty”, Helion, Gliwice 2014
- Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, "Linux Device Drivers"
- Wolfgang Mauerer, "Professional Linux Kernel Architecture", Wiley Publishing, Inc., Indianapolis, 2008
- Sreekrishnan Venkateswaran, "Essential Linux Device Drivers", Prentice Hall, Upper Saddle River, 2008
- Daniel P. Bovet, Marco Cesati, "Understanding the Linux Kernel, 3rd Edition", O'Reilly Media, Sebastopol 2005
Literatura uzupełniająca:
- Robert Love, „Kernel Linux, przewodnik programisty”, Helion, Gliwice 2004
- Mel Gorman, "Understanding the Linux Virtual Memory Manager"
- Maurice J.Bach, „Budowa systemu operacyjnego UNIX”, WNT, Warszawa 1995
Kody źródłowe przykładowych modułów jądra:
- Laboratorium pierwsze
- Laboratorium drugie
- Laboratorium trzecie
- Laboratorium czwarte
- Laboratorium piąte
- Laboratorium szóste
- Laboratorium siódme
- Laboratorium ósme
- Laboratorium dziewiąte
- Laboratorium dziesiąte