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


Copyright 2013 by Jan Kazimirski