INNE EBOOKI AUTORA
Wydawca:
Format:
epub, mobi, ibuk
Podstawy systemów operacyjnych to dziesiąte, najnowsze wydanie najlepszego na świecie podręcznika o systemach operacyjnych, stosowanego powszechnie na uczelniach wyższych w Polsce. Opisano w nim rozwój systemów, budowę sprzętu, zarządzanie procesami i pamięcią. Omówiono podsystem wejścia-wyjścia, nowe technologie i rozwiązania programowe, związane z rozwojem urządzeń pamięci zewnętrznej oraz szyn łączących je z procesorem i pamięcią główną. Sporo miejsca poświęcono systemom rozproszonym i zagadnieniom dotyczącym ochrony i bezpieczeństwa informacji. Omówiono także przykładowe systemy operacyjne, w tym najnowszy Windows i Linux. Wielką zaletą książki jest przystępny język, czytelne rysunki i ćwiczenia do każdego rozdziału.
Podręcznik jest przeznaczony dla studentów informatyki na wszystkich uczelniach wyższych.
Książka została wydana w dwóch tomach, aby ułatwić Czytelnikom korzystanie z niej.
W Tomie I zostały omówione następujące zagadnienia:
• Czym są systemy operacyjne, co robią, jak są pomyślane i zbudowane
• Pojęcia procesu i współbieżności stanowiące sedno nowoczesnych systemów operacyjnych
• Metody synchronizacji procesów i postępowania z zakleszczeniami
• Zarządzanie pamięcią główną (operacyjną) podczas wykonywania procesu
• Wykorzystanie i działanie pamięci masowej oraz wejścia-wyjścia w nowoczesnym systemie komputerowym
• Działanie systemów plików w nowoczesnym systemie komputerowym
Rok wydania | 2021 |
---|---|
Liczba stron | 800 |
Kategoria | Aplikacje, programy użytkowe |
Wydawca | Wydawnictwo Naukowe PWN |
ISBN-13 | 978-83-01-21402-9 |
Numer wydania | 1 |
Język publikacji | polski |
Informacja o sprzedawcy | ePWN sp. z o.o. |
INNE EBOOKI AUTORA
POLECAMY
Ciekawe propozycje
Spis treści
Przedmowa XXI | |
CZĘŚĆ PRZEGLĄD | 1 |
Rozdział 1. Wstęp | 3 |
1.1. Co robią systemy operacyjne? | 4 |
1.2. Organizacja systemu komputerowego | 8 |
1.3. Architektura systemu komputerowego | 19 |
1.4. Działania systemu operacyjnego | 27 |
1.5. Zarządzanie zasobami | 35 |
1.6. Ochrona i bezpieczeństwo | 41 |
1.7. Wirtualizacja | 43 |
1.8. Systemy rozproszone | 45 |
1.9. Struktury danych jądra | 47 |
1.10. Środowiska obliczeniowe | 51 |
1.11. Wolne systemy operacyjne i systemy o otwartym kodzie | 60 |
1.12. Podsumowanie | 67 |
Ćwiczenia | 68 |
Dalsze lektury | 72 |
Bibliografia | 73 |
Rozdział 2. Struktury systemów operacyjnych 75 | |
2.1. Usługi systemu operacyjnego | 76 |
2.2. Interfejs użytkownika z systemem operacyjnym | 78 |
2.3. Wywołania systemowe | 83 |
2.4. Usługi systemowe | 98 |
2.5. Konsolidatory i ładowacze | 100 |
2.6. Dlaczego aplikacje zależą od systemu operacyjnego | 103 |
2.7. Projektowanie i implementowanie systemów operacyjnych | 105 |
2.8. Struktura systemu operacyjnego | 108 |
2.9. Budowanie i rozruch systemu operacyjnego | 121 |
2.10. Usuwanie błędów z systemu operacyjnego | 126 |
2.11. Podsumowanie | 131 |
Ćwiczenia | 133 |
Dalsze lektury | 136 |
Bibliografia | 136 |
CZĘŚĆ 2 ZARZĄDZANIE PROCESAMI 137 | |
Rozdział 3. Procesy 139 | |
3.1. Koncepcja procesu | 140 |
3.2. Planowanie procesów | 146 |
3.3. Działania na procesach | 152 |
3.4. Komunikacja międzyprocesowa (IPC) | 161 |
3.5. IPC w systemach z pamięcią dzieloną | 163 |
3.6. IPC w systemach z przekazywaniem komunikatów | 166 |
3.7. Przykłady systemów IPC | 171 |
3.8. Komunikacja w systemach klient-serwer | 186 |
3.9. Podsumowanie | 196 |
Ćwiczenia | 197 |
Dalsze lektury | 200 |
Bibliografia | 200 |
Rozdział 4. Wątki i współbieżność | 201 |
4.1. Przegląd | 202 |
4.2. Programowanie wielordzeniowe | 205 |
4.3. Modele wielowątkowości | 209 |
4.4. Biblioteki wątków | 212 |
4.5. Wątkowość niejawna | 221 |
4.6. Problemy wątkowości | 234 |
4.7. Przykłady systemów operacyjnych | 242 |
4.8. Podsumowanie | 244 |
Ćwiczenia | 246 |
Dalsze lektury | 248 |
Bibliografia | 248 |
Rozdział 5. Planowanie przydziału CPU (jednostki centralnej) | 249 |
5.1. Pojęcia podstawowe | 250 |
5.2. Kryteria planowania | 255 |
5.3. Algorytmy planowania | 257 |
5.4. Planowanie wątków | 271 |
5.5. Planowanie wieloprocesorowe | 274 |
5.6. Planowanie CPU w czasie rzeczywistym | 283 |
5.7. Przykłady systemów operacyjnych | 293 |
5.8. Ocena algorytmów | 304 |
5.9. Podsumowanie | 310 |
Ćwiczenia | 312 |
Dalsze lektury | 315 |
Bibliografia | 315 |
CZĘŚĆ 3 SYNCHRONIZACJA PROCESÓW317 | |
Rozdział 6. Narzędzia synchronizacji | 319 |
6.1. Podstawy | 319 |
6.2. Problem sekcji krytycznej | 322 |
6.3. Rozwiązanie Petersona | 325 |
6.4. Sprzętowe środki synchronizacji | 328 |
6.5. Blokady muteksowe | 335 |
6.6. Semafory | 337 |
6.7. Monitory | 341 |
6.8. Żywotność | 349 |
6.9. Ocena | 351 |
6.10. Podsumowanie | 353 |
Ćwiczenia | 355 |
Dalsze lektury | 357 |
Bibliografia | 357 |
Rozdział 7. Przykłady synchronizacji 359 | |
7.1. Klasyczne problemy synchronizacji | 360 |
7.2. Synchronizacja w jądrze | 367 |
7.3. Synchronizacja POSIX-owa | 371 |
7.4. Synchronizacja w Javie | 375 |
7.5. Podejścia alternatywne | 383 |
7.6. Podsumowanie | 387 |
Ćwiczenia | 388 |
Dalsze lektury | 390 |
Bibliografia | 390 |
Rozdział 8. Zakleszczenia 391 | |
8.1. Model systemu | 392 |
8.2. Zakleszczenie w aplikacjach wielowątkowych | 394 |
8.3. Charakterystyka zakleszczenia | 397 |
8.4. Metody postępowania z zakleszczeniami | 401 |
8.5. Zapobieganie zakleszczeniom | 403 |
8.6. Unikanie zakleszczeń | 406 |
8.7. Wykrywanie zakleszczenia | 414 |
8.8. Likwidowanie zakleszczenia | 420 |
8.9. Podsumowanie | 421 |
Ćwiczenia | 422 |
Dalsze lektury | 427 |
Bibliografia | 427 |
CZĘŚĆ 4 ZARZĄDZANIE ZASOBAMI PAMIĘCI | 429 |
Rozdział 9. Pamięć główna (operacyjna) | 431 |
9.1. Podstawy | 432 |
9.2. Przydział ciągły pamięci | 440 |
9.3. Stronicowanie | 445 |
9.4. Struktura tablicy stron | 458 |
9.5. Wymiana | 465 |
9.6. Przykład: 32- i 64-bitowe architektury Intela | 468 |
9.7. Przykład – architektura ARMv8 | 472 |
9.8. Podsumowanie | 474 |
Ćwiczenia | 476 |
Dalsze lektury | 479 |
Bibliografia | 479 |
Rozdział 10. Pamięć wirtualna 481 | |
10.1. Podstawy | 482 |
10.2. Stronicowanie na żądanie | 485 |
10.3. Kopiowanie przy zapisie | 493 |
10.4. Zastępowanie stron | 495 |
10.5. Przydział ramek | 510 |
10.6. Szamotanie | 518 |
10.7. Kompresja pamięci | 526 |
10.8. Przydział pamięci dla jądra | 527 |
10.9. Inne rozważania | 532 |
10.10. Przykłady z systemów operacyjnych | 540 |
10.11. Podsumowanie | 544 |
Ćwiczenia | 546 |
Dalsze lektury | 551 |
Bibliografia | 551 |
CZĘŚĆ 5 ZARZĄDZANIE PAMIĘCIĄ MASOWĄ | 553 |
Rozdział 11. Struktura pamięci masowej | 555 |
11.1. Przegląd struktur pamięci masowej | 556 |
11.2. Planowanie dysków twardych (HDD) | 566 |
11.3. Planowanie nieruchomych urządzeń pamięci (NVM) | 571 |
11.4. Wykrywanie i korygowanie błędów | 573 |
11.5. Zarządzanie urządzeniami pamięci masowej | 574 |
11.6. Zarządzanie obszarem wymiany | 580 |
11.7. Podłączanie pamięci masowej | 583 |
11.8. Struktury RAID | 588 |
11.9. Podsumowanie | 603 |
Ćwiczenia | 604 |
Dalsze lektury | 609 |
Bibliografia | 609 |
Rozdział 12. Systemy wejścia-wyjścia | 611 |
12.1. Przegląd | 612 |
12.2. Sprzęt wejścia-wyjścia | 612 |
12.3. Użytkowy interfejs wejścia-wyjścia | 626 |
12.4. Podsystem wejścia-wyjścia w jądrze | 635 |
12.5. Przekształcanie zamówień wejścia-wyjścia na operacje sprzętowe | 647 |
12.6. Strumienie (STREAMS) | 650 |
12.7. Wydajność | 652 |
12.8. Podsumowanie | 656 |
Ćwiczenia | 657 |
Dalsze lektury | 660 |
Bibliografia | 660 |
CZĘŚĆ 6 SYSTEM PLIKÓW | 661 |
Rozdział 13. Interfejs systemu plików | 663 |
13.1. Pojęcie pliku | 664 |
13.2. Metody dostępu | 676 |
13.3. Struktura katalogowa | 680 |
13.4. Ochrona | 691 |
13.5. Pliki odwzorowane w pamięci | 697 |
13.6. Podsumowanie | 702 |
Ćwiczenia | 703 |
Dalsze lektury | 706 |
Bibliografia | 706 |
Rozdział 14. Implementacja systemu plików | 707 |
14.1. Budowa systemu plików | 708 |
14.2. Operacje systemu plików | 711 |
14.3. Implementacja katalogu | 715 |
14.4. Metody przydziału | 716 |
14.5. Zarządzanie wolną przestrzenią | 727 |
14.6. Wydajność i osiągi | 731 |
14.7. Rekonstrukcja | 737 |
14.8. Przykład – system plików WAFL | 742 |
14.9. Podsumowanie | 747 |
Ćwiczenia | 748 |
Dalsze lektury | 750 |
Bibliografia | 750 |
Rozdział 15. Wewnętrzna organizacja systemów plików 751 | |
15.1. Systemy plików | 751 |
15.2. Montowanie systemu plików | 753 |
15.3. Partycje i montowanie | 756 |
15.4. Dzielenie plików | 758 |
15.5. Wirtualne systemy plików | 759 |
15.6. Zdalne systemy plików | 761 |
15.7. Semantyka spójności | 766 |
15.8. NFS | 767 |
15.9. Podsumowanie | 775 |
Ćwiczenia | 776 |
Dalsze lektury | 778 |
Bibliografia | 778 |