Programowanie systemowe

RSS

Cel przedmiotu

Celem wykładu jest zapoznanie z wybranymi szczegółowymi mechanizmami systemów operacyjnych Unix, Linux oraz Windows oraz nauczenie programowania na poziomie jądra systemu operacyjnego oraz z użyciem zaawansowanych mechanizmów i narzędzi systemowych.

Program wykładu

1.Charakterystyka systemów Unix, Linux i Windows i ich architektury. 2. Struktury systemowe w różnych systemach operacyjnych. 3. Algorytmy planowania procesów i wątków w różnych systemach operacyjnych 4. Wątki. Wątki poziomu użytkownika, wątki jądra i procesy lekkie. Modele obsługi wątków i ich realizacje w systemach Solaris, Linux i Windows. Interfejs obsługi wątków. Obiekty synchronizacyjne w Windows: sekcje krytyczne, zdarzenia, czasomierze, semafory, muteksy. Rodzina funkcji wait. 5. Wywołania systemowe. Realizacja wywołań systemowych w systemie Linux. Dodanie nowego wywołania systemowego do jądra systemu Linux. Systemy IDS oparte na wywołaniach systemowych. Windows API. 6. Komunikacja międzyprocesowa w systemach Unix i Windows. 7. Biblioteki i programy wykonywalne w systemach Unix i Windows. 8. Popularne systemy plików. Budowa i własności. 9.Obsługa urządzeń w systemach Linux i Windows. Dodanie nowego urządzenia i nowego modułu do ja˛dra systemu Linux. 10. Tendencje rozwojowe w systemach Unix i Windows

Charakterystyka pozostałych zajęć

W ramach zajęć laboratoryjnych wykonuje się ćwiczenia dotyczące zastosowania mechanizmów systemowych, często na poziomie jądra oraz realizuje większy projekt umożliwiający praktyczne zastosowanie nabytej wiedzy. Ćwiczenia laboratoryjne są prowadzone w oparciu o system operacyjny Linux i dotyczą użycia mechanizmów synchronizacji, tworzenia modułów jądra i ich dynamicznego ładowania, obsługi urządzeń, prowadzenia procesu debuggowania jądra, obsługi przerwań, dodawanie wywołania systemowego do jadrze oraz metod synchronizacji procedur jądra.

Bibliografia

1. Uresh Vahalia, „Ja˛dro systemu Unix. Nowe horyzonty”, WNT 2001
2. Robert Love, „Linux Kernel Development”, Novel Press, Second edition, 2005
3. Daniel P. Bovet, Marco Cesati, „Understanding the Linux Kernel”, Third edition, O’Reilly, 2006
4. Mark E. Russinovich, David A. Solomon, MicrosoftWindows Internals, MicrosoftWindows Server
2003, Windows XP, and Windows 2000, Microsoft, 2005
5. Jeffrey Richter, Programowanie aplikacji dla Microsoft Windows, Wydawnictwo RM, 2002

Wszelkie prawa zastrzeżone © 2010 Katedra Informatyki   |   Akademia Górniczno-Hutnicza   |   Realizacja Creative Bastards