Systemy operacyjne III (Wykład 15h)
Opis
Tematem wykładu są zagadnienia związane z budową i funkcjonowaniem współczesnych systemów
operacyjnych. Materiał obejmuje zagadnienia teoretyczne i problemy wynikające ze
współbieżności stosowanej w wiekszości obecnie używanych SO, oraz praktyczne rozwiązania
stosowane w wybranych systemach, sposoby zarządzania procesami, pamięcią operacyjną, oraz
urządzeniami wejścia/wyjścia. W ramach wykładu przedstawione jest również wprowadzenie do
systemów wieloprocesorowych (komputery równoległe, klastry, środowiska gridowe).
Dodatkowo wykład zawiera elementy architektury komputerów - w zakresie koniecznym do
zrozumienia materiału wykładu.
Zawartość
- Wykład 1
-
Definicja systemu operacyjnego. Zadania systemu operacyjnego. Ewolucja systemów operacyjnych.
Systemy wsadowe. Systemy wsadowe wielozadaniowe. Systemy z podziałem czasu. Klasyfikacja
systemów operacyjnych. Podstawowe elementy komputera. Projektowanie systemu operacyjnego -
kluczowe zagadnienia. Struktura współczesnego systemu operacyjnego.
- Wykład 2
-
Procesy w systemie operacyjnym. Definicja procesu. Modele procesów dwustanowy
i 5-stanowy. Mechanizm wymiany. Zarządzanie procesami. Hierarchia procesów. Tworzenie procesu.
Kończenie procesu. Przełączanie procesów. Szeregowanie procesów. Planowanie - długo-, średnio-,
i krótkoterminowe. Wywłaszczanie. Priorytety procesów. Algorytmy szeregowania procesów - przykłady.
Tryb użytkownika i tryb jądra. Organizacja jądra systemu operacyjnego. Procesy i wątki.
- Wykład 3
-
Współbieżność. Dostęp do zasobów. Zasoby globalne. Rywalizacja o zasoby. Wzajemne wykluczanie.
Sekcja krytyczna. Impas. Zagłodzenie. Algorytmy wzajemnego wykluczania. Semafory. Mutex. Warunki
wystąpienia impasu. Zapobieganie impasom. Wykrywanie i usuwanie impasu. Klasyczne problemy
synchronizacji - producent/konsument, czytelnicy/pisarze, problem ucztujących filozofów.
- Wykład 4
-
Architektura komputera. Pamięć operacyjna. Zarządzanie pamięcią. Relokacja. Ochrona pamięci.
Współdzielenie bloków pamięci. Struktura logiczna i fizyczna pamięci i programu w pamięci.
Metody zarządzania pamięcią - partycjonowanie, stronicowanie, segmentacja, pamięć wirtualna.
Partycjonowanie - algorytmy rozmieszczania. Tłumaczenie adresów. Stronicowanie. Segmentacja
w trybie rzeczywistym x86. Programy COM, EXE.
- Wykład 5
-
Pamięć wirtualna. Stronicowanie. Uruchamianie procesu. Wykonywanie procesu. Tworzenie nowego
procesu - fork/exec. Wymiatanie. Wykorzystanie pamięci wirtualnej. Efekt "migotania stron".
Zasada lokalności. Wsparcie sprzętowe pamięci wirtualnej. Pamięć wirtualna a system operacyjny.
Tablice stron. Translacja adresów. Struktura tablicy stron. Rozmiar strony. Strategie pobierania
stron. Strategie rozmieszczania stron. Blokowanie ramek. Strategie wymiany. Zestaw rezydentny
stron i strategie przydziału. Zakres wymiany. Segmentacja. Połączenie stronicowania i segmentacji.
- Wykład 6
-
Urządzenia wejścia/wyjścia. Klasyfikacja urządzeń I/O. Realizacja obsługi I/O. Ewolucja funkcji I/O.
Poziomy obsługi I/O. Podsystem obsługi urządzeń I/O. Buforowanie. Pamięć podręczna dysku. System
plików. Dysk twardy komputera PC. Struktura danych na dysku - MBR, partycje, rekord startowy
partycji. Organizacja systemu plików. Alokacja plików. Zarządzanie wolną przestrzenią. Fragmentacja.
Przykład systemu plików - FAT. Unix-owy system plików.
- Wykład 7
-
Komputery równoległe. Wydajność komputerów, ograniczenia wydajności. Współczesne superkomputery.
Wektoryzacja na poziomie procesora - potoki, superskalarność. Taksonomia Flynna. Modele pamięci.
Typy komputerów równoległych. Oprogramowanie dla komputerów równoległych. Model MPI. Klastry
Beowulf. Mosix. Rozproszony system plików. Technologie klient-serwer. Protokoły RPC. Grid.
Materiały