Uniwersytet Warszawski - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Zaawansowane systemy operacyjne

Informacje ogólne

Kod przedmiotu: 1000-2N09ZSO Kod Erasmus / ISCED: 11.303 / (0612) Database and network design and administration
Nazwa przedmiotu: Zaawansowane systemy operacyjne
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty monograficzne dla III - V roku informatyki
Przedmioty obieralne dla informatyki
Przedmioty obieralne stałe dla informatyki
Strona przedmiotu: http://students.mimuw.edu.pl/ZSO
Punkty ECTS i inne: 6.00
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 2018/19" (zakończony)

Okres: 2019-02-16 - 2019-06-08
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: Marcin Kościelnicki, Janina Mincer-Daszkiewicz, Paweł Żuk
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin

Zajęcia w cyklu "Semestr letni 2019/20" (jeszcze nie rozpoczęty)

Okres: 2020-02-17 - 2020-06-10
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: Marcin Kościelnicki, Janina Mincer-Daszkiewicz, Paweł Żuk
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.