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 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 (częściowo prowadzony w formie ćwiczeń, połączony z przeglądaniem jądra, czytaniem prac naukowych) 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, krótka historia Uniksa i Linuksa, budowa jądra, funkcje systemowe, kontekst, zmiana kontekstu, powrót z przerwania, wpływ architektury na działanie systemu operacyjnego 2. Procesy, diagram stanów, synchronizacja na poziomie jądra, implementacja semafora, obsługa przerwań 3. Procesy, struktury danych do opisu procesów, listy procesów i operacje na nich 4. Szeregowanie procesów w systemach jedno i wieloprocesorowych 5. Pamięć fizyczna, strefy, tablice ramek, algorytm bliźniaków, alokator płytowy 6. Pamięć wirtualna, tablice stron, adresowanie, pamięć wirtualna procesu, fork 7. Wymiana stron w Linuksie, demony do obsługi stronicowania 8. Pamięć nieciągła 9. VFS, interfejs systemu plików, struktury danych VFS, i-węzeł, bmap 10. System plików, i-węzły w pamięci, i-węzły i bloki na dysku 11. Podręczna pamięć stron, błąd braku strony, urządzenia i pliki wymiany 12. Podręczna pamięć katalogów 13. Urządzenia blokowe i znakowe, tablice rozdzielcze, funkcje systemowe dla urządzeń 14. Podsystem wejścia-wyjścia - urządzenia blokowe, szeregowanie żądań Laboratoria 1. Wirtualizacja 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. Podprogramy obsługi urządzeń 8. System plików procfs, sysfs 9. Automatyczne testowanie jądra 10. Śledzenie procesów |
Literatura: |
1. R. Love, Linux Kernel Development, Addison-Wesley, 2010 (trzecie wydanie) 2. W. Mauerer, Professional Linux Kernel Architecture, Wiley Inc., 2008 (pierwsze wydanie) 3. D.P. Bovet, M. Cesati, Linux Kernel, O'Reilly, 2005 (trzecie wydanie) 4. A. Rubini, J. Corbet, Linux Device Drivers, O'Reilly, 2005 (trzecie wydanie) 5. 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 2022/23" (w trakcie)
Okres: | 2023-02-20 - 2023-06-18 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Janina Mincer-Daszkiewicz | |
Prowadzący grup: | Wojciech Ciszewski, Andrzej Jackowski, Janina Mincer-Daszkiewicz | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Zajęcia w cyklu "Semestr letni 2023/24" (jeszcze nie rozpoczęty)
Okres: | 2024-02-19 - 2024-06-16 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin
Wykład, 30 godzin
|
|
Koordynatorzy: | Janina Mincer-Daszkiewicz | |
Prowadzący grup: | Wojciech Ciszewski, Janina Mincer-Daszkiewicz | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Egzamin |
Właścicielem praw autorskich jest Uniwersytet Warszawski.