Systemy Operacyjne 1 – materiały wykładowe
1. WSTĘP 1
1.1. Tryb bezpośredni 1
1.2. Tryb wsadowy 2
1.3. Tryb wieloprogramowy wsadowy 6
1.4. Tryb wieloprogramowy z podziałem czasu 6
1.5. Tryb wielodostępowy 7
1.6. Systemy równoległe 9
1.7. Systemy rozproszone 11
1.8. Systemy czasu rzeczywistego 11
1.9. Systemy operacyjne komputerów osobistych 12
2. SYSTEM KOMPUTEROWY 13
2.1. Przerwania We/Wy 15
2.2. Kanał DMA (Direct Memory Access) 17
2.3. Struktura pamięci 17
2.4. Ochrona sprzętowa 19
3. STRUKTURA SYSTEMU OPERACYJNEGO 23
3.1. Składniki systemu 23
3.2. Funkcje systemowe 25
3.2.1. Nadzorowanie procesów i zadań 26
3.2.2. Działania na plikach 27
3.2.3. Zarządzanie urządzeniami 28
3.2.4. Informacja 28
3.2.5. Komunikacja 28
3.3. Programy systemowe 29
3.4. Struktura systemu 31
3.5. Maszyna wirtualna 33
3.6. Koncepcja projektowania systemu 35
3.7. Struktura systemu Windows 36
3.7.1. Obiekty jądra 37
4. PROCESY 39
4.1. Modele procesów 40
4.2. Struktura procesów 43
4.3. Planowanie procesów 45
4.4. Działania na procesach 47
4.5. Procesy współpracujące 50
4.6. Komunikacja międzyprocesowa 52
4.6.1. Komunikacja bezpośrednia 52
4.6.2. Komunikacja pośrednia 53
4.6.3. Problemy komunikacji międzyprocesowej 54
4.7. Wątki 56
4.7.1. Wątki poziomu jądra (KLT – Kernel Level Threads) 56
4.7.2. Wątki poziomu użytkownika (ULT – User Level Threads) 58
4.7.3. Podsumowanie 60
4.8. Koncepcje systemu operacyjnego 61
Aneks 4. Procesy i wątki w systemie Windows 62
5. PLANOWANIE PRZYDZIAŁU PROCESORA 67
5.1. Planowanie jednoprocesorowe 69
5.1.1. Metoda FCFS (First Come First Served) 69
5.1.2. Metoda „najpierw najkrótsze zadanie” 70
5.1.3. Planowanie priorytetowe 71
5.1.4. Planowanie rotacyjne 72
5.2. Wielopoziomowe planowanie kolejek 73
5.3. Planowanie wieloprocesorowe 75
5.4. Planowanie w czasie rzeczywistym 75
5.5. Kryteria wyboru algorytmu 77
5.5.1. Modelowanie deterministyczne 77
5.5.2. Modele obsługi kolejek 78
6. SYNCHRONIZACJA PROCESÓW 79
6.1. Sekcja krytyczna 79
6.2. Programowa realizacja synchronizacji 80
6.2.1. Algorytm 1 (wspólny znacznik) 80
6.2.2. Algorytm 2 (indywidualne znaczniki) 82
6.2.3. Algorytm 3 84
6.2.4. Algorytm piekarni – wieloprocesorowy 85
6.2.5. Sekcja krytyczna w systemie Windows 86
6.3. Sprzętowe wspomaganie synchronizacji 87
6.4. Semafory 89
6.4.1. Silny semafor 91
6.4.2. Semafor binarny 93
6.4.3. Uwagi 94
6.4.4. Problem czytelników i pisarzy 96
6.4.5. Problem obiadujących filozofów 97
6.5. Monitory 98
6.6. Transakcje niepodzielne 102
6.6.1. Transakcje niepodzielne 102
6.6.2. Współbieżne transakcje niepodzielne 105
7. ZAKLESZCZENIA 107
7.1. Zapobieganie zakleszczeniom 110
7.2. Unikanie zakleszczeń 112
7.2.1. Zmodyfikowany Graf przydziału zasobów 114
7.2.2. Algorytm bankiera 115
7.3. Wykrywanie zakleszczenia 116
7.4. Likwidowanie zakleszczenia 117
8. ZARZĄDZANIE PAMIĘCIĄ 119
8.1. Przydział ciągły 123
8.2. Stronicowanie 127
8.2.1. Budowa tablicy stron 129
8.2.2. Stronicowanie wielopoziomowe 132
8.2.3. Odwrócona tablica stron 134
8.3. Segmentacja 136
8.3.1. Implementacja Tablicy Segmentów 137
8.4. Uwagi 139
9. PAMIĘĆ WIRTUALNA 143
9.1. Stronicowanie na żądanie 144
9.1.1. Algorytmy zastępowania stron 149
9.1.1.1. Algorytm FIFO 149
9.1.1.2. Algorytm optymalny OPT lub MIN 150
9.1.1.3. Algorytm LRU (Least Recently Used) 150
9.1.1.4. Algorytmy przybliżające metodę LRU 151
9.1.1.5. Algorytm buforowania stron 153
9.2. Przydział ramek 153
9.3. Szamotanie 155
9.3.1. Przyczyna szamotania 155
9.3.2. Model strefowy (locality model) 156
9.3.3. Model zbioru roboczego (working set model) 156
9.3.4. Częstość braków stron 157
9.4. Uwagi 158
10. SYSTEM PLIKÓW 161
10.1. Pliki i katalogi 161
10.1.1. Pliki 161
10.1.2. Struktura katalogowa 163
10.1.3. Ochrona 166
10.1.4. Semantyka spójności 166
10.2. Pliki mapowane w pamięci w systemie Windows 2000/XP 168
10.3. Implementacja plików 170
10.4. Przydział miejsca na dysku 172
10.4.1. Przydział ciągły 172
10.4.2. Przydział listowy 173
10.4.3. Przydział indeksowy 174
10.5. Zarządzanie wolną przestrzenią dyskową 176
10.5.1. Wektor bitowy 176
10.5.2. Lista wiązana 176
10.5.3. Grupowanie 176
10.5.4. Zliczanie 177
10.6. Implementacja katalogu 177
10.7. Efektywność, wydajność i spójność 178