Uniwersytet Warszawski - 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 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 (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
Wybrany podział planu:


powiększ
zobacz plan zajęć
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, 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
Wybrany podział planu:


powiększ
zobacz plan zajęć
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.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
kontakt deklaracja dostępności USOSweb 6.8.1.0-1729fa717 (2023-05-11)