Systemy operacyjne zima 2018/19

Język wykładowy Polski
Opiekun Krystian Bacławski
Liczba godzin 30 (wyk.) 30 (ćw-prac.)
Rodzaj Informatyczny 1
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Grupy efektów kształcenia Systemy operacyjne

Opis przedmiotu:

Na wykładzie skupimy się na poznawaniu funkcji jądra systemu operacyjnego udostępnianych programiście systemowemu. Tematy omawiające wnętrzności jądra systemu operacyjnego będą omawiane na przedmiocie „Struktura jądra UNIX”. #### Wymagania * Kurs: Podstawowy warsztat informatyka (obsługa wiersza poleceń systemu Linux, GNU Make). * Kurs: Wstęp do programowania w języku C (pracownia i projekty programistyczne). * Architektury systemów komputerowych (przerwania, wyjątki, tłumaczenie adresów i pamięć wirtualna, konsolidacja). #### Podręczniki * [Modern Operating Systems](http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X); 4th Edition; Andrew S. Tanenbaum, Herbert Bos * [Operating Systems: Internals and Design Principles](http://www.amazon.com/Operating-Systems-Internals-Principles-Edition/dp/0133805913); 8th Edition; William Stallings * [Operating System Concepts](http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/1118063333); 9th Edition; Abraham Silberschatz, Peter B. Galvin and Greg Gagne * [Advanced Programming in the UNIX Environment](https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739/); 3rd Edition; Richard Stevens, Stephen Argo #### Syllabus W nawiasach kwadratowych podano liczbę wykładów. 1. Wprowadzenie [2] * Jądro, system operacyjny, dystrybucja. * Rodzaje systemów operacyjnych (wbudowane, czasu rzeczywistego, rozproszone). * Najważniejsze osiągnięcia w dziedzinie systemów operacyjnych. * Wywołania systemowe i komunikacja programów z jądrem. * Architektura jądra systemu operacyjnego (jądra monolityczne, mikrojądra, exokernel). 2. Procesy i wątki [2] * Model maszyny procesu. * Atrybuty, zasoby i stan procesu. * Zarządzanie procesami i wątkami. * Sygnały i hierarchia procesów. * Projektowanie aplikacji z użyciem procesów i wątków. * Wątki przestrzeni jądra vs. przestrzeni użytkownika (wielowątkowość kooperacyjna). 3. Współbieżność, synchronizacja i komunikacja [2] * Sytuacja wyścigu, zagłodzenie, uwięzienie, zakleszczenie. * Problem sekcji krytycznej. * Ziarnistość blokad, problemy z blokadami (odwrócenie priorytetów). * Muteksy, zmienne warunkowe, blokady współdzielone, monitory, bariery. * Potoki, gniazda, skrzynki pocztowe, pamięć dzielona, RPC. 4. Zarządzanie pamięcią w przestrzeni użytkownika [1] * Biblioteczny menadżer pamięci malloc i free. * Przydział listowy (polityki przydziału miejsca, scalanie). * Fragmentacja i kompaktowanie. * Problemy z zarządzaniem pamięcią (wzorce zachowań, błędy). 5. Zarządzanie pamięcią wirtualną [2] * Przypomnienie stronicowania (translacja adresów, tabele stron). * Organizacja wirtualnej przestrzeni adresowej. * Przełączanie przestrzeni adresowych. * Obsługa błędu braku strony. * Zbiór roboczy vs. rezydentny. * Różne algorytmy zastępowania stron. * Strategie przydziału, sprowadzania i czyszczenia. * Pamięć współdzielona – mechanizm kopiowania przy zapisie. * Pliki odwzorowane na pamięć (ładowanie programów, biblioteki współdzielone). * Buforowanie stron. * Wymiana stron do pamięci drugorzędnej. 6. Pliki, systemy plików [2] * Właściwości i operacje na plikach i katalogach. * Hierarchia plików, punkty montażowe. * Uprawnienia dostępu. * Partycjonowanie dysków. * Zarządzanie przestrzenią dyskową. * Organizacja systemów plików (i-węzły, katalogi). * Migawki, dziennikowanie, kopie zapasowe. 7. Planowanie zadań [1] * Cele planowania zadań. * Dyspozytor vs. planista. * Przykładowe polityki szeregowania zadań. * Szeregowanie zadań na wieloprocesorach. 8. Bezpieczeństwo [1] * Zaufana baza obliczeniowa. * MAC vs. DAC vs. RBAC. * Autoryzacja i uwierzytelnianie (PAM). * Zapobieganie cyberatakom. 9. Wirtualizacja [1] * Rodzaje maszyn wirtualnych. * Parawritualizacja. * Zagnieżdżone tabele stron. * Nadprzydział, balonikowanie, deduplikacja.

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Krystian Bacławski
wt 14:00-16:00 (s. 119) 300 35 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Ćwiczenio-pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Piotr Polesiuk
wt 18:00-20:00 (s. 103, 110) 18 8 0
Krystian Bacławski
wt 16:00-18:00 (s. 104, 137) 18 15 0
Tomasz Wierzbicki
śr 12:00-14:00 (s. 4, 107) 18 12 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Krystian Bacławski 324 Przy użyciu MS Teams, wyłącznie po uprzednim umówieniu się drogą elektroniczną. Dostępny termin na konsultacje to poniedziałek 16-18.
Tomasz Wierzbicki 303 Po wcześniejszym umówieniu pocztą elektroniczną. Nie w trakcie lub bezpośrednio przed moimi zajęciami (plan zajęć jest dostępny w systemie Zapisy).
Piotr Polesiuk 338 wtorek 14-16