Uniwersytet Warszawski, Wydział Fizyki - Centralny System Uwierzytelniania
Strona główna

Zaawansowane systemy operacyjne

Informacje ogólne

Kod przedmiotu: 1000-2N09ZSO
Kod Erasmus / ISCED: 11.303 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
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 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
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 2023/24" (w trakcie)

Okres: 2024-02-19 - 2024-06-16
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Janina Mincer-Daszkiewicz
Prowadzący grup: Wojciech Ciszewski, Andrzej Jackowski, Maciej Matraszek, Janina Mincer-Daszkiewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr letni 2024/25" (jeszcze nie rozpoczęty)

Okres: 2025-02-17 - 2025-06-08
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Janina Mincer-Daszkiewicz
Prowadzący grup: Wojciech Ciszewski, Janina Mincer-Daszkiewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski, Wydział Fizyki.
ul. Pasteura 5, 02-093 Warszawa tel: +48 22 5532 000 https://www.fuw.edu.pl/ kontakt deklaracja dostępności USOSweb 7.0.3.0 (2024-03-22)