Wydział Informatyki
Kierunek studiów Informatyka Poziom i forma studiów drugiego stopnia stacjonarne
Specjalność / Ścieżka dyplomowania Inżynieria Oprogramowania Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Zaawansowane systemy operacyjne Kod przedmiotu INF2ZSO
Rodzaj przedmiotu obowiązkowy
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 3
30 15 Punkty ECTS 3
Przedmioty wprowadzające
Cele przedmiotu

Studenci zapoznają się z budową jądra prawdziwego systemu operacyjnego (Linuks 2.0). Nabywają umiejętność modyfikowania jądra.

Treści programowe

Wykład:
1. Wprowadzenie do jądra systemu Linux 2.0,2.
2. Stany procesu.
3. Budzenie i usypianie procesu.
4. Semafory jądra.
5. Urządzenia znakowe.
6. Przykładowy sterownik.
7. Moduły jądra.
8. Sterownik urządzenia blokowego.
9. Przerwania i wywołania systemowe.
10. Planista procesora.
11. Podręczna pamięć buforowa.
12. Systemy plików.
13. Zarządzanie pamięcią.
14. Urządzenia sieciowe
15. Dalszy rozwój jądra, Linux 2.0 na maszynach SMP.

Pracownia specjalistyczna:
1. Modyfikacja przykładowego sterownika urządzenia znakowego.
2. Projekt i implementacja nietrywialnego podsystemu w jądrze Linuksa np. sterownika, systemu plików.

Metody dydaktyczne

wykład problemowy,   programowanie z użyciem komputera,  

Forma zaliczenia

Wykład - egzamin pisemny.
Pracownia specjalistyczna - jedno zadanie wprowadzające, przygotowanie i obrona dwóch projektów.

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
EU1 zna zasady budowy jądra systemu operacyjnego Linux 2.0 INF2_W03
EU2 potrafi opracować i zaimplementować moduł (np. sterownik urządzenia) dla systemu operacyjnego INF2_U03
EU3 ma umiejętność pracy w grupie 2-3 osobowej nad projektem programistycznym INF2_U13
Symbol efektu uczenia się Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
EU1 egzamin W
EU2 prezentacja i obrona projektu programistycznego Ps
EU3 rezentacja i obrona projektu programistycznego Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - Udział w wykładach - 15x2h 30
2 - Udział w pracowni specjalistycznej - 15x1h 15
3 - Praca nad projektami w domu/laboratorium (w tym przygotowanie sprawozdania z projektu) 20
4 - Udział w konsultacjach związany z przygotowaniem projektów 5
5 - Przygotowanie do egzaminu 5
6 - Udział w egzaminie 2
RAZEM: 77
Wskaźniki ilościowe GODZINY ECTS
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela 52
(6)+(1)+(4)+(2)
2.0
Nakład pracy studenta związany z zajęciami o charakterze praktycznym 35
(3)+(2)
1.4
Literatura podstawowa

1. M. Beck, Linux Kernel - Jądro systemu, wydanie II, Wydawnictwo MIKOM, Warszawa, 2000.
2. A. Rubini, Linux sterowniki urządzeń, wydanie II, Wydawnictwo ReadMe, 1999.
3. D. A. Rusling, The Linux kernel, 1999, http://tldp.org/LDP/tlk/tlk.html.
4. R. Giometti, Linux Device Driver Development Cookbook: Develop custom drivers for your embedded Linux applications, Packt, 2019.
5. R. Bharadwaj, Mastering Linux Kernel Development: A kernel developer's reference manual, Packt, 2017.

Literatura uzupełniająca

1. M. Mitchell, J. Oldham, A. Samuel, Linux - programowanie dla zaawansowanych, Wydawnictwo RM, 2002.
2. K. Wall, Linux: programowanie w przykładach, Mikom, 2000.
3. M. K. Johnson, E. W. Troan, Oprogramowanie użytkowe w systemie LINUX, WNT, 2000.

Jednostka realizująca Katedra Oprogramowania Data opracowania programu
Program opracował(a) 2020.05.22