Zaawansowane systemy operacyjne
Informacje ogólne
Kod przedmiotu: | 1000-2N09ZSO |
Kod Erasmus / ISCED: |
11.303
|
Nazwa przedmiotu: | Zaawansowane systemy operacyjne |
Jednostka: | Wydział Matematyki, Informatyki i Mechaniki |
Grupy: |
Przedmioty obieralne dla informatyki Przedmioty obieralne fakultatywne dla informatyki (IIIr. licencjatu, nowy program) Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka |
Strona przedmiotu: | http://students.mimuw.edu.pl/ZSO |
Punkty ECTS i inne: |
6.00
|
Język prowadzenia: | angielski |
Rodzaj przedmiotu: | monograficzne |
Założenia (lista przedmiotów): | Systemy operacyjne 1000-213bSOP |
Skrócony opis: |
Wykład jest gorąco zalecany studentom, którzy zamierzają w przyszłości uczestniczyć w seminarium magisterskim 'Systemy rozproszone', które w części obejmuje zagadnienia systemów operacyjnych, w tym rozproszonych systemów operacyjnych. Przedmiot jest realizowany poprzez wykład i laboratorium. Zamierzamy razem ze studentami przyjrzeć się dokładnie budowie konkretnego systemu operacyjnego. Przykładem omawianym na zajęciach jest Linux, który jest nowoczesnym systemem, popularnym u nas na wydziale, często stosowanym jako platforma serwerowa, ale także na stacjach roboczych, komórkach, jako system wbudowany. Linux jest dostępny w postaci źródeł co pozwala na dokładnie przyjrzenie się zastosowanym w nim algorytmom, strukturom danych, a także samodzielne eksperymentowanie i prowadzenie badań w dziedzinie systemów operacyjnych. |
Pełny opis: |
Wykłady 1. Wprowadzenie: Zadania SO, UNIX i Linux - historia, cechy, budowa, eBPF, podstawowe pojęcia: kontekst wykonania, funkcje systemowe, raporty nt jądra 2. Trochę o sprzęcie (na przykładzie Intela): procesor i pamięć, adresowanie, pamięć podręczna procesora, architektura komputerów 3. Zarządzanie pamięcią i procesami: Inicjowanie pracy jądra, stronicowanie w Linuksie, struktury danych procesu 4. Zarządzanie pamięcią i procesami: Struktury danych procesu, przestrzeń adresowa procesu, fork(), błąd braku strony 5. Zarządzanie pamięcią: Pamięć fizyczna, wypełnianie tablic stron, zarządzanie ramkami, strefy, pamięć wysoka, zarządzanie nieciągłymi obszarami pamięci 6. Zarządzanie pamięcią: System bliźniaków, alokator płytowy 7. Zarządzanie procesami: Synchronizacja na poziomie jądra 8. Zarządzanie plikami: Wirtualny system plików, interfejs, struktury danych 9. Zarządzanie plikami: Wirtualny system plików, montowanie, pamięć podręczna katalogów, i-węzły w pamięci 10. Zarządzanie pamięcią: Podręczna pamięć stron, wymiana stron 11: Zarządzanie pamięcią: THP (Transparent Huge Pages); Zarządzanie plikami: systemy plików ext2, ext3 i ext4 12. Warstwa blokowego wejścia-wyjścia i szeregowanie żądań wejścia-wyjścia 13. Szeregowanie procesów: przestrzeń nazw PID, wprowadzenie do szeregowania procesów w Linuksie, planista O(N), O(1), RSDS 14. Szeregowanie procesów: planista CFS, BFS, MuQSS, Deadline; co nowego w szeregowaniu procesów? Laboratoria 1. Wirtualizacja i konteneryzacja 2. Instalacja Linuksa na platformie wirtualnej 3. Kompilacja jądra 4. Moduły jądra 5. Odpluskwianie kodu w przestrzeni jądra 6. Programowanie w przestrzeni jądra: obsługa przerwań, synchronizacja, zarządzanie pamięcią, wątki jądra, wywołania systemowe 7. Bezpieczne programowanie jądra z użyciem BPF 8. Podprogramy obsługi urządzeń 9. System plików procfs, sysfs 10. Wykorzystanie jądra systemu Linux w systemie Android 11. Użycie języka Rust w jądrze systemu Linux |
Literatura: |
1. lwn.net - Linux weekly news 2. R. Love, Linux Kernel Development, Addison-Wesley, 2010 (trzecie wydanie) 3. W. Mauerer, Professional Linux Kernel Architecture, Wiley Inc., 2008 (pierwsze wydanie) 4. D.P. Bovet, M. Cesati, Linux Kernel, O'Reilly, 2005 (trzecie wydanie) 5. A. Rubini, J. Corbet, Linux Device Drivers, O'Reilly, 2005 (trzecie wydanie) 6. R. Love, Linux System Programming: Talking Directly to the Kernel and C Library, O'Reilly, 2007 (pierwsze wydanie) |
Efekty uczenia się: |
Wiedza 1. Ma pogłębioną wiedzę z zakresu budowy współczesnych systemów operacyjnych. 2. Ma pogłębioną wiedzę z zakresu budowy najnowszej wersji systemu operacyjnego Linux. 3. Zna algorytmy i struktury danych stosowane przy budowie systemów operacyjnych. 4. Zna zagadnienia programowania współbieżnego. 5. Zna zagadnienia ze styku kompilatorów i systemów operacyjnych. Umiejętności 1. Posiada umiejętność analizy kodu źródłowego systemu operacyjnego. 2. Posiada umiejętność krytycznej analizy rozwiązań z zakresu systemów operacyjnych i programowania współbieżnego. 3. Posiada umiejętność samodzielnego rozwiązywania problemów z zakresu budowy systemów operacyjnych. 4. Ma umiejętności językowe w zakresie informatyki zgodne z wymaganiami określonymi dla poziomu B2+ Europejskiego Systemu Opisu Kształcenia Językowego 5. Potrafi określić kierunki dalszego uczenia się i zrealizować proces samokształcenia. Kompetencje 1. Zna ograniczenia własnej wiedzy i rozumie potrzebę dalszego kształcenia. 2. Potrafi precyzyjnie formułować pytania, służące pogłębieniu własnego zrozumienia danego tematu lub odnalezieniu brakujących elementów rozumowania. 3. Potrafi formułować opinie na temat podstawowych zagadnień informatycznych. |
Metody i kryteria oceniania: |
Aktywne uczestnictwo w wykładzie i zajęciach laboratoryjnych, zadania programistyczne w ramach laboratorium |
Zajęcia w cyklu "Semestr letni 2024/25" (w trakcie)
Okres: | 2025-02-17 - 2025-06-08 |
Przejdź do planu
PN WT LAB
WYK
LAB
LAB
ŚR CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Janina Mincer-Daszkiewicz | |
Prowadzący grup: | Adam Cichy, Wojciech Ciszewski, Maciej Matraszek, Janina Mincer-Daszkiewicz, Łukasz Sznuk | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Właścicielem praw autorskich jest Uniwersytet Warszawski.