"Podstawy systemów operacyjnych Tom I"
Identyfikator Librowy: 241059
Spis treści
Przedmowa 22
CZĘŚĆ 1 PRZEGLĄD 38
Rozdział 1. Wstęp 40
1.1. Co robią systemy operacyjne? 41
1.2. Organizacja systemu komputerowego 45
1.3. Architektura systemu komputerowego 56
1.4. Działania systemu operacyjnego 64
1.5. Zarządzanie zasobami 72
1.6. Ochrona i bezpieczeństwo 78
1.7. Wirtualizacja 80
1.8. Systemy rozproszone 82
1.9. Struktury danych jądra 84
1.10. Środowiska obliczeniowe 88
1.11. Wolne systemy operacyjne i systemy o otwartym kodzie 97
1.12. Podsumowanie 104
Ćwiczenia 105
Dalsze lektury 109
Bibliografia 110
Rozdział 2. Struktury systemów operacyjnych 112
2.1. Usługi systemu operacyjnego 113
2.2. Interfejs użytkownika z systemem operacyjnym 115
2.3. Wywołania systemowe 120
2.4. Usługi systemowe 135
2.5. Konsolidatory i ładowacze 137
2.6. Dlaczego aplikacje zależą od systemu operacyjnego 140
2.7. Projektowanie i implementowanie systemów operacyjnych 142
2.8. Struktura systemu operacyjnego 145
2.9. Budowanie i rozruch systemu operacyjnego 158
2.10. Usuwanie błędów z systemu operacyjnego 163
2.11. Podsumowanie 168
Ćwiczenia 170
Bibliografia 173
Dalsze lektury 173
CZĘŚĆ 2 ZARZĄDZANIE PROCESAMI 174
Rozdział 3. Procesy 176
3.1. Koncepcja procesu 177
3.2. Planowanie procesów 183
3.3. Działania na procesach 189
3.4. Komunikacja międzyprocesowa (IPC) 198
3.5. IPC w systemach z pamięcią dzieloną 200
3.6. IPC w systemach z przekazywaniem komunikatów 203
3.7. Przykłady systemów IPC 208
3.8. Komunikacja w systemach klient-serwer 223
3.9. Podsumowanie 233
Ćwiczenia 234
Bibliografia 237
Dalsze lektury 237
Rozdział 4. Wątki i współbieżność 238
4.1. Przegląd 239
4.2. Programowanie wielordzeniowe 242
4.3. Modele wielowątkowości 246
4.4. Biblioteki wątków 249
4.5. Wątkowość niejawna 258
4.6. Problemy wątkowości 271
4.7. Przykłady systemów operacyjnych 279
4.8. Podsumowanie 281
Ćwiczenia 283
Bibliografia 285
Dalsze lektury 285
Rozdział 5. Planowanie przydziału CPU (jednostki centralnej) 286
5.1. Pojęcia podstawowe 287
5.2. Kryteria planowania 292
5.3. Algorytmy planowania 294
5.4. Planowanie wątków 308
5.5. Planowanie wieloprocesorowe 311
5.6. Planowanie CPU w czasie rzeczywistym 320
5.7. Przykłady systemów operacyjnych 330
5.8. Ocena algorytmów 341
5.9. Podsumowanie 347
Ćwiczenia 349
Bibliografia 352
Dalsze lektury 352
CZĘŚĆ 3 SYNCHRONIZACJA PROCESÓW 354
Rozdział 6. Narzędzia synchronizacji 356
6.1. Podstawy 356
6.2. Problem sekcji krytycznej 359
6.3. Rozwiązanie Petersona 362
6.4. Sprzętowe środki synchronizacji 365
6.5. Blokady muteksowe 372
6.6. Semafory 374
6.7. Monitory 378
6.8. Żywotność 386
6.9. Ocena 388
6.10. Podsumowanie 390
Ćwiczenia 392
Bibliografia 394
Dalsze lektury 394
Rozdział 7. Przykłady synchronizacji 396
7.1. Klasyczne problemy synchronizacji 397
7.2. Synchronizacja w jądrze 404
7.3. Synchronizacja POSIX-owa 408
7.4. Synchronizacja w Javie 412
7.5. Podejścia alternatywne 420
7.6. Podsumowanie 424
Ćwiczenia 425
Bibliografia 427
Dalsze lektury 427
Rozdział 8. Zakleszczenia 428
8.1. Model systemu 429
8.2. Zakleszczenie w aplikacjach wielowątkowych 431
8.3. Charakterystyka zakleszczenia 434
8.4. Metody postępowania z zakleszczeniami 438
8.5. Zapobieganie zakleszczeniom 440
8.6. Unikanie zakleszczeń 443
8.7. Wykrywanie zakleszczenia 451
8.8. Likwidowanie zakleszczenia 457
8.9. Podsumowanie 458
Ćwiczenia 459
Bibliografia 464
Dalsze lektury 464
CZĘŚĆ 4 ZARZĄDZANIE ZASOBAMI PAMIĘCI 466
Rozdział 9. Pamięć główna (operacyjna) 468
9.1. Podstawy 469
9.2. Przydział ciągły pamięci 477
9.3. Stronicowanie 482
9.4. Struktura tablicy stron 495
9.5. Wymiana 502
9.6. Przykład: 32- i 64-bitowe architektury Intela 505
9.7. Przykład – architektura ARMv8 509
9.8. Podsumowanie 511
Ćwiczenia 513
Bibliografia 516
Dalsze lektury 516
Rozdział 10. Pamięć wirtualna 518
10.1. Podstawy 519
10.2. Stronicowanie na żądanie 522
10.3. Kopiowanie przy zapisie 530
10.4. Zastępowanie stron 532
10.5. Przydział ramek 547
10.6. Szamotanie 555
10.7. Kompresja pamięci 563
10.8. Przydział pamięci dla jądra 564
10.9. Inne rozważania 569
10.10. Przykłady z systemów operacyjnych 577
10.11. Podsumowanie 581
Ćwiczenia 583
Bibliografia 588
Dalsze lektury 588
CZĘŚĆ 5 ZARZĄDZANIE PAMIĘCIĄ MASOWĄ 590
Rozdział 11. Struktura pamięci masowej 592
11.1. Przegląd struktur pamięci masowej 593
11.2. Planowanie dysków twardych (HDD) 603
11.3. Planowanie nieruchomych urządzeń pamięci (NVM) 608
11.4. Wykrywanie i korygowanie błędów 610
11.5. Zarządzanie urządzeniami pamięci masowej 611
11.6. Zarządzanie obszarem wymiany 617
11.7. Podłączanie pamięci masowej 620
11.8. Struktury RAID 625
11.9. Podsumowanie 640
Ćwiczenia 641
Bibliografia 646
Dalsze lektury 646
Rozdział 12. Systemy wejścia-wyjścia 648
12.1. Przegląd 649
12.2. Sprzęt wejścia-wyjścia 649
12.3. Użytkowy interfejs wejścia-wyjścia 663
12.4. Podsystem wejścia-wyjścia w jądrze 672
12.5. Przekształcanie zamówień wejścia-wyjścia na operacje sprzętowe 684
12.6. Strumienie (STREAMS) 687
12.7. Wydajność 689
12.8. Podsumowanie 693
Ćwiczenia 694
Bibliografia 697
Dalsze lektury 697
CZĘŚĆ 6 SYSTEM PLIKÓW 698
Rozdział 13. Interfejs systemu plików 700
13.1. Pojęcie pliku 701
13.2. Metody dostępu 713
13.3. Struktura katalogowa 717
13.4. Ochrona 728
13.5. Pliki odwzorowane w pamięci 734
13.6. Podsumowanie 739
Ćwiczenia 740
Bibliografia 743
Dalsze lektury 743
Rozdział 14. Implementacja systemu plików 744
14.1. Budowa systemu plików 745
14.2. Operacje systemu plików 748
14.3. Implementacja katalogu 752
14.4. Metody przydziału 753
14.5. Zarządzanie wolną przestrzenią 764
14.6. Wydajność i osiągi 768
14.7. Rekonstrukcja 774
14.8. Przykład – system plików WAFL 779
14.9. Podsumowanie 784
Ćwiczenia 785
Bibliografia 787
Dalsze lektury 787
Rozdział 15. Wewnętrzna organizacja systemów plików 788
15.1. Systemy plików 788
15.2. Montowanie systemu plików 790
15.3. Partycje i montowanie 793
15.4. Dzielenie plików 795
15.5. Wirtualne systemy plików 796
15.6. Zdalne systemy plików 798
15.7. Semantyka spójności 803
15.8. NFS 804
15.9. Podsumowanie 812
Ćwiczenia 813
Bibliografia 815
Dalsze lektury 815