Szczegóły ebooka

Systemy operacyjne. Architektura, funkcjonowanie i projektowanie. Wydanie IX

Systemy operacyjne. Architektura, funkcjonowanie i projektowanie. Wydanie IX

William Stallings

Ebook

Systemy operacyjne cały czas są wzbogacane o innowacje i ulepszenia. Stają się też coraz bardziej wyspecjalizowane, co wynika z rosnącej różnorodności maszyn, które mają obsłużyć. Wystarczy tu wskazać systemy wbudowane, smartfony, komputery osobiste i komputery główne (ang. mainframe) oraz superkomputery, a także specjalne systemy czasu rzeczywistego. Znajomość wewnętrznych mechanizmów systemu i architektury jądra okazuje się zatem niezwykle istotna dla programistów i inżynierów. Bez tej wiedzy trudno mówić o niezawodności tworzonego oprogramowania.

Ta książka jest kolejnym, gruntownie przejrzanym i zaktualizowanym wydaniem klasycznego podręcznika, w którym jasno i wyczerpująco wyjaśniono koncepcje, strukturę i mechanizmy rządzące funkcjonowaniem nowoczesnych systemów operacyjnych. Wnikliwie omówiono również podstawowe zasady projektowania systemów operacyjnych i powiązano je ze współczesnymi zagadnieniami projektowymi oraz kierunkami rozwoju systemów operacyjnych. Aby zilustrować prezentowane treści, jako przykładami posłużono się czterema systemami: Windows, Android, Unix i Linux. W ten sposób koncepcje projektowe omawiane w danym rozdziale są natychmiast popierane rzeczywistymi przykładami.

Najważniejsze zagadnienia:

  • Przegląd systemów operacyjnych
  • Współbieżność i rozproszone zarządzanie procesami
  • Zarządzanie pamięcią i pamięć wirtualna
  • Bezpieczeństwo systemów operacyjnych
  • Operacje wejścia-wyjścia i zarządzanie przestrzenią dyskową
  • Odporność na awarie

Systemy operacyjne: poznaj i zaprojektuj!

DODATKOWE ROZDZIAŁY

Przedmowa (23)

O autorze (33)

CZĘŚĆ I. PODSTAWY (35)

Rozdział 1. Rzut oka na system komputerowy (37)

  • 1.1. PODSTAWOWE SKŁADOWE (38)
  • 1.2. EWOLUCJA MIKROPROCESORÓW (40)
  • 1.3. WYKONANIE ROZKAZU (40)
  • 1.4. PRZERWANIA (43)
    • Przerwania i cykl rozkazowy (45)
    • Przetwarzanie przerwania (47)
    • Przerwania wielokrotne (50)
  • 1.5. HIERARCHIA PAMIĘCI (53)
  • 1.6. PAMIĘĆ PODRĘCZNA (56)
    • Motywy (56)
    • Zasady działania pamięci podręcznej (56)
    • Projektowanie pamięci podręcznej (58)
  • 1.7. BEZPOŚREDNI DOSTĘP DO PAMIĘCI (60)
  • 1.8. ORGANIZACJA WIELOPROCESOROWA I WIELORDZENIOWA (61)
    • Wieloprocesory symetryczne (62)
    • Komputery wielordzeniowe (64)
  • 1.9. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (66)
    • Podstawowe pojęcia (66)
    • Pytania sprawdzające (66)
    • Zadania (67)
  • DODATEK 1A. CHARAKTERYSTYKA WYDAJNOŚCI PAMIĘCI DWUPOZIOMOWYCH (69)
    • Lokalność (70)
    • Działanie pamięci dwupoziomowej (72)
    • Wydajność (73)

Rozdział 2. Przegląd systemów operacyjnych (77)

  • 2.1. CELE I FUNKCJE SYSTEMU OPERACYJNEGO (78)
    • System operacyjny jako interfejs użytkownik - komputer (79)
    • System operacyjny jako zarządca zasobów (81)
    • Łatwość ewolucji systemu operacyjnego (82)
  • 2.2. ROZWÓJ SYSTEMÓW OPERACYJNYCH (83)
    • Przetwarzanie seryjne (83)
    • Proste systemy wsadowe (84)
    • Wieloprogramowe systemy wsadowe (87)
    • Systemy z podziałem czasu (90)
  • 2.3. NAJWAŻNIEJSZE OSIĄGNIĘCIA (92)
    • Proces (93)
    • Zarządzanie pamięcią (96)
    • Ochrona informacji i bezpieczeństwo (99)
    • Planowanie operowania zasobami (99)
  • 2.4. DROGA DO WSPÓŁCZESNYCH SYSTEMÓW OPERACYJNYCH (101)
  • 2.5. TOLEROWANIE AWARII (104)
    • Podstawowe pojęcia (104)
    • Wady (106)
    • Mechanizmy systemu operacyjnego (106)
  • 2.6. PROBLEMY PROJEKTOWANIA SYSTEMÓW OPERACYJNYCH WIELOPROCESORÓW I KOMPUTERÓW WIELORDZENIOWYCH (107)
    • Rozważania dotyczące wieloprocesorowego symetrycznego SO (107)
    • Rozważania dotyczące wielordzeniowych SO (108)
  • 2.7. PRZEGLĄD SYSTEMU MICROSOFT WINDOWS (110)
    • Rodowód (110)
    • Architektura (111)
    • Model klient-serwer (114)
    • Wątki i SMP (115)
    • Obiekty systemu Windows (116)
  • 2.8. TRADYCYJNE SYSTEMY UNIKSOWE (118)
    • Historia (118)
    • Opis (119)
  • 2.9. NOWOCZESNE SYSTEMY UNIKSOWE (120)
    • System V Release 4 (SVR4) (122)
    • System BSD (122)
    • Solaris 11 (122)
  • 2.10. LINUX (123)
    • Historia (123)
    • Struktura modularna (124)
    • Składowe jądra (126)
  • 2.11. ANDROID (129)
    • Architektura oprogramowania Androida (129)
    • Środowisko wykonawcze Androida (132)
    • Architektura systemu Android (135)
    • Czynności (136)
    • Zarządzanie zasilaniem (136)
  • 2.12. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (137)
    • Podstawowe pojęcia (137)
    • Pytania sprawdzające (138)
    • Zadania (138)

CZĘŚĆ II. PROCESY (141)

Rozdział 3. Pojęcie procesu i przebieg sterowania (143)

  • 3.1. CZYM JEST PROCES? (145)
    • Podstawy (145)
    • Procesy i bloki kontrolne procesów (146)
  • 3.2. STANY PROCESU (147)
    • Dwustanowy model procesu (150)
    • Tworzenie i likwidowanie procesów (151)
    • Model pięciostanowy (153)
    • Procesy zawieszone (157)
  • 3.3. OPIS PROCESU (162)
    • Struktury sterowania systemu operacyjnego (163)
    • Struktury sterowania procesu (165)
  • 3.4. STEROWANIE PROCESAMI (172)
    • Tryby wykonywania (172)
    • Tworzenie procesów (174)
    • Przełączanie procesów (174)
  • 3.5. WYKONYWANIE SYSTEMU OPERACYJNEGO (178)
    • Jądro nieprocesowe (178)
    • Wykonywanie w procesach użytkownika (179)
    • System operacyjny oparty na procesach (180)
  • 3.6. ZARZĄDZANIE PROCESAMI W SYSTEMIE UNIX SVR4 (181)
    • Stany procesu (181)
    • Opis procesu (183)
    • Sterowanie procesami (186)
  • 3.7. PODSUMOWANIE (186)
  • 3.8. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (187)
    • Podstawowe pojęcia (187)
    • Pytania sprawdzające (187)
    • Zadania (188)

Rozdział 4. Wątki (193)

  • 4.1. PROCESY I WĄTKI (194)
    • Wielowątkowość (195)
    • Funkcjonowanie wątków (198)
  • 4.2. RODZAJE WĄTKÓW (200)
    • Wątki poziomu użytkownika i wątki poziomu jądra (200)
    • Inne organizacje (205)
  • 4.3. WIELORDZENIOWOŚĆ I WIELOWĄTKOWOŚĆ (207)
    • Wydajność oprogramowania na wielu rdzeniach (207)
    • Przykład zastosowania: oprogramowanie gier Valve (210)
  • 4.4. ZARZĄDZANIE PROCESAMI I WĄTKAMI W SYSTEMIE WINDOWS (212)
    • Zarządzanie zadaniami drugoplanowymi i cyklami istnienia aplikacji (213)
    • Proces w systemie Windows (214)
    • Obiekty procesów i wątków (215)
    • Wielowątkowość (217)
    • Stany wątków (217)
    • Zaplecze podsystemów SO (218)
  • 4.5. ZARZĄDZANIE WĄTKAMI I WIELOPRZETWARZANIEM SYMETRYCZNYM W SYSTEMIE SOLARIS (219)
    • Architektura wielowątkowa (219)
    • Uzasadnienie (220)
    • Struktura procesu (220)
    • Wykonanie wątku (222)
    • Przerwania jako wątki (223)
  • 4.6. ZARZĄDZANIE PROCESAMI I WĄTKAMI W SYSTEMIE LINUX (223)
    • Prace Linuxa (223)
    • Wątki Linuxa (225)
    • Przestrzenie nazw Linuxa (226)
  • 4.7. ZARZĄDZANIE PROCESAMI I WĄTKAMI W SYSTEMIE ANDROID (229)
    • Aplikacje Androida (229)
    • Czynności (230)
    • Procesy i wątki (232)
  • 4.8. WIELKA CENTRALNA EKSPEDYCJA W SYSTEMIE MAC OS X (233)
  • 4.9. PODSUMOWANIE (235)
  • 4.10. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (236)
    • Podstawowe pojęcia (236)
    • Pytania sprawdzające (236)
    • Zadania (236)

Rozdział 5. Współbieżność ? wzajemne wykluczanie i synchronizacja (243)

  • 5.1. WZAJEMNE WYKLUCZANIE ? PODEJŚCIA PROGRAMOWE (246)
    • Algorytm Dekkera (246)
    • Algorytm Petersona (250)
  • 5.2. PODSTAWY WSPÓŁBIEŻNOŚCI (251)
    • Prosty przykład (252)
    • Szkodliwa rywalizacja (254)
    • Kwestie związane z systemem operacyjnym (255)
    • Interakcja procesów (255)
    • Wymagania dotyczące wzajemnego wykluczania (259)
  • 5.3. WZAJEMNE WYKLUCZANIE ? ZAPLECZE SPRZĘTOWE (260)
    • Blokowanie przerwań (260)
    • Specjalne rozkazy maszynowe (261)
  • 5.4. SEMAFORY (263)
    • Wzajemne wykluczanie (269)
    • Problem producenta-konsumenta (269)
    • Implementacja semaforów (275)
  • 5.5. MONITORY (277)
    • Monitor z sygnałem (277)
    • Alternatywny model monitora z powiadamianiem i rozgłaszaniem (281)
  • 5.6. PRZEKAZYWANIE KOMUNIKATÓW (283)
    • Synchronizacja (284)
    • Adresowanie (285)
    • Format komunikatów (287)
    • Dyscyplina kolejkowania (287)
    • Wzajemne wykluczanie (288)
  • 5.7. PROBLEM CZYTELNIKÓW I PISARZY (290)
    • Czytelnicy mają pierwszeństwo (291)
    • Pisarze mają pierwszeństwo (291)
  • 5.8. PODSUMOWANIE (294)
  • 5.9. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (295)
    • Podstawowe pojęcia (295)
    • Pytania sprawdzające (295)
    • Zadania (296)

Rozdział 6. Współbieżność ? zakleszczenia i głodzenie (311)

  • 6.1. NA CZYM POLEGA ZAKLESZCZENIE (312)
    • Zasoby niezużywalne (316)
    • Zasoby zużywalne (317)
    • Grafy przydziału zasobów (318)
    • Warunki występowania zakleszczenia (320)
  • 6.2. ZAPOBIEGANIE ZAKLESZCZENIOM (321)
    • Wzajemne wykluczanie (321)
    • Przetrzymywanie i oczekiwanie (321)
    • Brak wywłaszczeń (322)
    • Czekanie cykliczne (322)
  • 6.3. UNIKANIE ZAKLESZCZEŃ (322)
    • Odmowa wszczynania procesu (323)
    • Odmowa przydziału zasobu (324)
  • 6.4. WYKRYWANIE ZAKLESZCZEŃ (328)
    • Algorytm wykrywania zakleszczenia (328)
    • Rekonstrukcja (uzdrawianie) (329)
  • 6.5. POŁĄCZONE STRATEGIE POSTĘPOWANIA Z ZAKLESZCZENIAMI (330)
  • 6.6. PROBLEM OBIADUJĄCYCH FILOZOFÓW (331)
    • Rozwiązanie z użyciem semaforów (332)
    • Rozwiązanie z użyciem monitora (333)
  • 6.7. MECHANIZMY WSPÓŁBIEŻNOŚCI W SYSTEMIE UNIX (334)
    • Potoki (335)
    • Komunikaty (335)
    • Pamięć dzielona (335)
    • Semafory (336)
    • Sygnały (336)
  • 6.8. MECHANIZMY WSPÓŁBIEŻNOŚCI W JĄDRZE LINUXA (337)
    • Operacje niepodzielne (338)
    • Wirujące blokady (339)
    • Semafory (342)
    • Bariery (343)
  • 6.9. ELEMENTARNE OPERACJE SYNCHRONIZACJI W SYSTEMIE SOLARIS (345)
    • Zamek wzajemnego wykluczania (346)
    • Semafory (347)
    • Blokada czytelnicy - pisarz (347)
    • Zmienne warunków (348)
  • 6.10. MECHANIZMY SYNCHRONIZACJI W SYSTEMIE WINDOWS (348)
    • Funkcje czekania (348)
    • Obiekty dyspozytora (349)
    • Sekcje krytyczne (350)
    • Wąskie blokady czytelnicy - pisarze i zmienne warunków (351)
    • Synchronizacja bez blokad (351)
  • 6.11. KOMUNIKACJA MIĘDZYPROCESOWA W SYSTEMIE ANDROID (352)
  • 6.12. PODSUMOWANIE (353)
  • 6.13. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (354)
    • Pytania sprawdzające (354)
    • Zadania (354)

CZĘŚĆ III. PAMIĘĆ (363)

Rozdział 7. Zarządzanie pamięcią (365)

  • 7.1. WYMAGANIA DOTYCZĄCE ZARZĄDZANIA PAMIĘCIĄ (366)
    • Przemieszczanie (367)
    • Ochrona (368)
    • Współużytkowanie (368)
    • Organizacja logiczna (369)
    • Organizacja fizyczna (369)
  • 7.2. PODZIAŁ PAMIĘCI (370)
    • Podział stały (371)
    • Podział dynamiczny (374)
    • System kumplowski (377)
    • Przemieszczanie (380)
  • 7.3. STRONICOWANIE (381)
  • 7.4. SEGMENTACJA (385)
  • 7.5. PODSUMOWANIE (386)
  • 7.6. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (386)
    • Podstawowe pojęcia (386)
    • Pytania sprawdzające (387)
    • Zadania (387)
  • Dodatek 7.A. ŁADOWANIE I KONSOLIDACJA (390)
    • Ładowanie (390)
    • Konsolidacja (394)

Rozdział 8. Pamięć wirtualna (397)

  • 8.1. SPRZĘT I STRUKTURY STEROWANIA (398)
    • Lokalność i pamięć wirtualna (400)
    • Stronicowanie (402)
    • Segmentacja (413)
    • Połączenie stronicowania i segmentacji (414)
    • Ochrona i dzielenie (415)
  • 8.2. OPROGRAMOWANIE SYSTEMU OPERACYJNEGO (417)
    • Zasady pobierania (418)
    • Zasady umiejscawiania (419)
    • Zasady zastępowania (419)
    • Zarządzanie zbiorem rezydującym (426)
    • Zasady czyszczenia (433)
    • Kontrola załadowania (434)
  • 8.3. ZARZĄDZANIE PAMIĘCIĄ W SYSTEMACH UNIX I SOLARIS (436)
    • System stronicowania (436)
    • Alokator pamięci jądra (439)
  • 8.4. ZARZĄDZANIE PAMIĘCIĄ W LINUXIE (440)
    • Pamięć wirtualna Linuxa (441)
    • Przydział pamięci w jądrze (443)
  • 8.5. ZARZĄDZANIE PAMIĘCIĄ W SYSTEMIE WINDOWS (445)
    • Mapa adresów wirtualnych w systemie Windows (445)
    • Stronicowanie w systemie Windows (445)
    • Wymiana w systemie Windows (447)
  • 8.6. ZARZĄDZANIE PAMIĘCIĄ W ANDROIDZIE (447)
  • 8.7. PODSUMOWANIE (448)
  • 8.8. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (449)
    • Podstawowe pojęcia (449)
    • Pytania sprawdzające (449)
    • Zadania (450)

CZĘŚĆ IV. PLANOWANIE (455)

Rozdział 9. Planowanie jednoprocesorowe (457)

  • 9.1. RODZAJE PLANOWANIA PROCESORA (459)
    • Planowanie długoterminowe (461)
    • Planowanie średnioterminowe (461)
    • Planowanie krótkoterminowe (462)
  • 9.2. ALGORYTMY PLANOWANIA (462)
    • Kryteria planowania krótkoterminowego (462)
    • Zastosowanie priorytetów (463)
    • Alternatywne zasady planowania (465)
    • Porównanie efektywności (478)
    • Planowanie uczciwych udziałów (482)
  • 9.3. TRADYCYJNE PLANOWANIE UNIKSOWE (486)
  • 9.4. PODSUMOWANIE (488)
  • 9.5. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (489)
    • Podstawowe pojęcia (489)
    • Pytania sprawdzające (489)
    • Zadania (490)

Rozdział 10. Planowanie wieloprocesorowe, wielordzeniowe i w czasie rzeczywistym (495)

  • 10.1. PLANOWANIE WIELOPROCESOROWE I WIELORDZENIOWE (496)
    • Ziarnistość (497)
    • Zagadnienia projektowe (498)
    • Planowanie procesów (500)
    • Planowanie wątków (502)
    • Wielordzeniowe planowanie wątków (508)
  • 10.2. PLANOWANIE CZASU RZECZYWISTEGO (509)
    • Podstawy (509)
    • Charakterystyka systemów czasu rzeczywistego (510)
    • Planowanie czasu rzeczywistego (513)
    • Planowanie terminów nieprzekraczalnych (515)
    • Planowanie monotonicznego tempa (519)
    • Odwrócenie priorytetów (522)
  • 10.3. PLANOWANIE W SYSTEMIE LINUX (525)
    • Planowanie czasu rzeczywistego (525)
    • Planowanie poza czasem rzeczywistym (526)
  • 10.4. PLANOWANIE W SYSTEMIE UNIX SVR4 (528)
  • 10.5. PLANOWANIE W SYSTEMIE UNIX FREEBSD (530)
    • Klasy priorytetów (530)
    • SMP i zaplecze wielordzeniowości (531)
  • 10.6. PLANOWANIE W SYSTEMIE WINDOWS (533)
    • Priorytety procesów i wątków (534)
    • Planowanie wieloprocesorowe (536)
  • 10.7. PODSUMOWANIE (536)
  • 10.8. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (537)
    • Podstawowe pojęcia (537)
    • Pytania sprawdzające (537)
    • Zadania (537)

CZĘŚĆ V. WEJŚCIE-WYJŚCIE I PLIKI (541)

Rozdział 11. Zarządzanie wejściem-wyjściem i planowanie dysków (543)

  • 11.1. URZĄDZENIA WEJŚCIA-WYJŚCIA (544)
  • 11.2. ORGANIZACJA FUNKCJI WEJŚCIA-WYJŚCIA (546)
    • Ewolucja funkcji wejścia-wyjścia (547)
    • Bezpośredni dostęp do pamięci (547)
  • 11.3. ZAGADNIENIA PROJEKTOWANIA SYSTEMU OPERACYJNEGO (549)
    • Cele projektowe (549)
    • Logiczna struktura funkcji wejścia-wyjścia (550)
  • 11.4. BUFOROWANIE WEJŚCIA-WYJŚCIA (552)
    • Bufor pojedynczy (553)
    • Bufor podwójny (555)
    • Bufor cykliczny (555)
    • Użyteczność buforowania (555)
  • 11.5. PLANOWANIE DYSKÓW (556)
    • Parametry wydajnościowe dysku (556)
    • Sposoby planowania dysku (559)
  • 11.6. RAID (564)
    • RAID ? poziom 0 (565)
    • RAID ? poziom 1 (570)
    • RAID ? poziom 2 (571)
    • RAID ? poziom 3 (571)
    • RAID ? poziom 4 (572)
    • RAID ? poziom 5 (573)
    • RAID ? poziom 6 (573)
  • 11.7. PAMIĘĆ PODRĘCZNA DYSKU (574)
    • Zagadnienia projektowe (574)
    • Zagadnienia dotyczące wydajności (576)
  • 11.8. WEJŚCIE-WYJŚCIE W SYSTEMIE UNIX SVR4 (578)
    • Pamięć podręczna buforów (578)
    • Kolejka znakowa (580)
    • Niebuforowane wejście-wyjście (580)
    • Urządzenia uniksowe (580)
  • 11.9. WEJŚCIE-WYJŚCIE W SYSTEMIE LINUX (581)
    • Planowanie dysku (581)
    • Linuksowa podręczna pamięć stron (584)
  • 11.10. WEJŚCIE-WYJŚCIE W SYSTEMIE WINDOWS (585)
    • Podstawowe własności wejścia-wyjścia (585)
    • Wejście-wyjście asynchroniczne i synchroniczne (586)
    • Programowa realizacja RAID (587)
    • Kopie-cienie tomów dyskowych (587)
    • Szyfrowanie tomów (587)
  • 11.11. PODSUMOWANIE (587)
  • 11.12. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (588)
    • Podstawowe pojęcia (588)
    • Pytania sprawdzające (589)
    • Zadania (589)

Rozdział 12. Zarządzanie plikami (593)

  • 12.1. W SKRÓCIE (594)
    • Pliki i systemy plików (594)
    • Struktura pliku (595)
    • Systemy zarządzania plikami (597)
  • 12.2. ORGANIZACJA I DOSTĘP DO PLIKÓW (600)
    • Sterta (601)
    • Plik sekwencyjny (603)
    • Indeksowany plik sekwencyjny (603)
    • Plik indeksowy (604)
    • Plik bezpośredniego dostępu, czyli plik haszowany (605)
  • 12.3. B-DRZEWA (605)
  • 12.4. KATALOGI PLIKÓW (609)
    • Zawartość (609)
    • Struktura (610)
    • Nazewnictwo (612)
  • 12.5. DZIELENIE PLIKÓW (612)
    • Prawa dostępu (612)
    • Dostęp jednoczesny (614)
  • 12.6. BLOKOWANIE REKORDÓW (615)
  • 12.7. ZARZĄDZANIE PAMIĘCIĄ DRUGORZĘDNĄ (616)
    • Lokowanie plików (616)
    • Zarządzanie wolną przestrzenią (622)
    • Tomy, inaczej ? woluminy (624)
    • Niezawodność (624)
  • 12.8. ZARZĄDZANIE PLIKAMI W SYSTEMIE UNIX (625)
    • I-węzły (626)
    • Umiejscawianie plików (628)
    • Katalogi (629)
    • Struktura tomu (630)
  • 12.9. WIRTUALNY SYSTEM PLIKÓW W LINUXIE (630)
    • Obiekt superbloku (632)
    • Obiekt i-węzła (633)
    • Obiekt k-wpisu (633)
    • Obiekt pliku (633)
    • Pamięci podręczne (634)
  • 12.10. SYSTEM PLIKÓW WINDOWS (634)
    • Podstawowe cechy NTFS (634)
    • Wolumin NTFS i struktura pliku (635)
    • Odtwarzalność (638)
  • 12.11. ZARZĄDZANIE PLIKAMI W ANDROIDZIE (639)
    • System plików (639)
    • SQLite (641)
  • 12.12. PODSUMOWANIE (641)
  • 12.13. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (642)
    • Podstawowe pojęcia (642)
    • Pytania sprawdzające (643)
    • Zadania (643)

CZĘŚĆ VI. SYSTEMY WBUDOWANE (645)

Rozdział 13. Wbudowane systemy operacyjne (647)

  • 13.1. SYSTEMY WBUDOWANE (648)
    • Pojęcie systemu wbudowanego (648)
    • Procesory aplikacji a procesory do zadań specjalnych (650)
    • Mikroprocesory (650)
    • Mikrokontrolery (652)
    • Systemy głęboko wbudowane (653)
  • 13.2. CHARAKTERYSTYKA WBUDOWANYCH SYSTEMÓW OPERACYJNYCH (653)
    • Środowiska macierzyste i docelowe (655)
    • Metody opracowywania (657)
    • Adaptacja istniejących handlowych systemów operacyjnych (657)
    • Wbudowany system operacyjny skonstruowany w określonym celu (657)
  • 13.3. WBUDOWANY LINUX (658)
    • Charakterystyka wbudowanego Linuxa (658)
    • Systemy plików wbudowanego Linuxa (661)
    • Zalety wbudowanego Linuxa (661)
    • uClinux (662)
    • Android (665)
  • 13.4. TinyOS (665)
    • Bezprzewodowe sieci czujników (665)
    • Cele systemu TinyOS (666)
    • Składowe TinyOS-a (668)
    • Planista TinyOS-a (670)
    • Przykładowa konfiguracja (671)
    • Interfejs zasobów TinyOS-a (673)
  • 13.5. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (675)
    • Podstawowe pojęcia (675)
    • Pytania sprawdzające (675)
    • Zadania (675)

Rozdział 14. Maszyny wirtualne (679)

  • 14.1. KONCEPCJA MASZYNY WIRTUALNEJ (680)
  • 14.2. HIPERWIZORY (683)
    • Hiperwizory (684)
    • Parawirtualizacja (686)
    • Wirtualizacja z asystą sprzętu (687)
    • Aplikacje wirtualne (688)
  • 14.3. WIRTUALIZACJA KONTENEROWA (688)
    • Jądrowe grupy sterowania (689)
    • Pojęcie kontenera (689)
    • Kontenerowy system plików (693)
    • Mikrousługi (694)
    • Docker (694)
  • 14.4. ZAGADNIENIA DOTYCZĄCE PROCESORÓW (695)
  • 14.5. ZARZĄDZANIE PAMIĘCIĄ (697)
  • 14.6. ZARZĄDZANIE WEJŚCIEM-WYJŚCIEM (699)
  • 14.7. HIPERWIZOR VMWARE ESXI (701)
  • 14.8. MICROSOFTOWY HYPER-V I ODMIANY XENA (703)
  • 14.9. MASZYNA WIRTUALNA JAVY (705)
  • 14.10. ARCHITEKTURA MASZYNY WIRTUALNEJ LINUX VSERVER (706)
    • Architektura (706)
    • Planowanie procesów (707)
  • 14.11. PODSUMOWANIE (709)
  • 14.12. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (709)
    • Podstawowe pojęcia (709)
    • Pytania (problemy) sprawdzające (710)
    • Zadania (710)

Rozdział 15. Bezpieczeństwo systemów operacyjnych (711)

  • 15.1. INTRUZI I ZŁOŚLIWE OPROGRAMOWANIE (712)
    • Zagrożenia dostępu do systemu (712)
    • Środki zaradcze (714)
  • 15.2. PRZEPEŁNIENIE BUFORA (716)
    • Ataki z przepełnieniem bufora (717)
    • Obrona w fazie kompilacji (720)
    • Obrona w fazie wykonania (723)
  • 15.3. KONTROLOWANIE DOSTĘPU (725)
    • Kontrolowanie dostępu w systemie plików (725)
    • Zasady kontrolowania dostępu (727)
  • 15.4. KONTROLOWANIE DOSTĘPU W SYSTEMIE UNIX (733)
    • Konwencjonalna kontrola dostępu do plików uniksowych (733)
    • Listy kontroli dostępu w UNIX-ie (735)
  • 15.5. HARTOWANIE SYSTEMÓW OPERACYJNYCH (736)
    • Instalowanie systemu operacyjnego ? ustawienia początkowe i łatanie (737)
    • Usuwanie zbędnych usług, aplikacji i protokołów (738)
    • Konfigurowanie użytkowników, grup i uwierzytelniania (739)
    • Kształtowanie kontroli zasobów (739)
    • Wprowadzanie dodatkowych środków bezpieczeństwa (740)
    • Testowanie bezpieczeństwa systemu (740)
  • 15.6. DBAŁOŚĆ O BEZPIECZEŃSTWO (741)
    • Rejestrowanie zdarzeń (741)
    • Składowanie i archiwizowanie danych (742)
  • 15.7. BEZPIECZEŃSTWO W SYSTEMIE WINDOWS (742)
    • Schemat kontroli dostępu (743)
    • Żeton dostępu (743)
    • Deskryptory bezpieczeństwa (744)
  • 15.8. PODSUMOWANIE (748)
  • 15.9. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (748)
    • Podstawowe pojęcia (748)
    • Pytania sprawdzające (749)
    • Zadania (749)

Rozdział 16. Systemy operacyjne chmur i internetu rzeczy (753)

  • 16.1. OBLICZENIA W CHMURZE (754)
    • Elementy chmury obliczeniowej (754)
    • Modele usług chmurowych (756)
    • Modele realizacyjne chmur (757)
    • Wzorcowa architektura chmury obliczeniowej (760)
  • 16.2. CHMUROWE SYSTEMY OPERACYJNE (763)
    • Infrastruktura jako usługa (763)
    • Wymagania na chmurowy system operacyjny (765)
    • Ogólna architektura chmurowego systemu operacyjnego (766)
    • OpenStack (772)
  • 16.3. INTERNET RZECZY (IR) (780)
    • Rzeczy w internecie rzeczy (781)
    • Rozwój IR (781)
    • Elementy urządzeń podłączonych do IR (782)
    • IR i kontekst chmury (782)
  • 16.4. SYSTEMY OPERACYJNE IR (785)
    • Urządzenia ograniczone (785)
    • Wymagania dotyczące SOIR (787)
    • Architektura SOIR (789)
    • RIOT (790)
  • 16.5. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (793)
    • Podstawowe pojęcia (793)
    • Pytania sprawdzające (793)

DODATKI (795)

Dodatek A. Zagadnienia współbieżności (797)

  • A.1. SZKODLIWA RYWALIZACJA I SEMAFORY (798)
    • Sformułowanie problemu (798)
    • Pierwsza próba (798)
    • Druga próba (800)
    • Trzecia próba (801)
    • Czwarta próba (802)
    • Dobra próba (803)
  • A.2. PROBLEM ZAKŁADU FRYZJERSKIEGO (805)
    • Nieuczciwy zakład fryzjerski (805)
    • Uczciwy zakład fryzjerski (808)
  • A.3. Zadania (810)

Dodatek B. Projekty i zadania z programowania systemów operacyjnych (811)

  • B.1. PROJEKTY DOTYCZĄCE SEMAFORÓW (812)
  • B.2. PROJEKT DOTYCZĄCY SYSTEMÓW PLIKÓW (813)
  • B.3. OS/161 (813)
  • B.4. SYMULACJE (814)
  • B.5. PROJEKTY PROGRAMISTYCZNE (815)
    • Projekty zdefiniowane w podręczniku (815)
    • Dodatkowe większe projekty programistyczne (815)
    • Małe projekty programistyczne (816)
  • B.6. PROJEKTY BADAWCZE (816)
  • B.7. ZADANIA TYPU "PRZECZYTAJ I ZDAJ SPRAWĘ" (817)
  • B.8. PRACE DO NAPISANIA (817)
  • B.9. TEMATY DO DYSKUSJI (817)
  • B.10. BACI (818)

Literatura (819)

Źródła i zasady ich udostępnienia (831)

Skorowidz (833)

SPIS TREŚCI ROZDZIAŁÓW ONLINE

Rozdział 17. Protokoły sieciowe (1005)

  • 17.1. ZAPOTRZEBOWANIE NA ARCHITEKTURĘ PROTOKOŁÓW (1007)
  • 17.2. ARCHITEKTURA PROTOKOŁÓW TCP/IP (1010)
    • Warstwy TCP/IP (1010)
    • Protokoły TCP i UDP (1011)
    • Protokoły IP i IPv6 (1012)
    • Działanie TCP/IP (1014)
    • Zastosowania TCP/IP (1016)
  • 17.3. GNIAZDA (1017)
    • Pojęcie gniazda (1017)
    • Wywołania interfejsu gniazd (1018)
  • 17.4. PRACA SIECIOWA W SYSTEMIE LINUX (1019)
    • Wysyłanie danych (1022)
    • Odbieranie danych (1022)
  • 17.5. PODSUMOWANIE (1023)
  • 17.6. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (1023)
    • Podstawowe pojęcia (1023)
    • Pytania sprawdzające (1024)
    • Zadania (1024)
  • Dodatek 17A. TFTP ? BANALNY PROTOKÓŁ PRZESYŁANIA PLIKÓW (1027)
    • Wprowadzenie do TFTP (1027)
    • Pakiety TFTP (1027)
    • Rzut oka na przesyłanie (1029)
    • Błędy i opóźnienia (1030)
    • Składnia, semantyka i koordynacja w czasie (1031)

Rozdział 18. Przetwarzanie rozproszone, klient-serwer i grona (1033)

  • 18.1. OBLICZENIA W UKŁADZIE KLIENT-SERWER (1034)
    • Co to są obliczenia klient-serwer? (1034)
    • Aplikacje klient-serwer (1036)
    • Warstwa pośrednia (1043)
  • 18.2. ROZPROSZONE PRZEKAZYWANIE KOMUNIKATÓW (1045)
    • Niezawodność a zawodność (1047)
    • Blokowanie a nieblokowanie (1048)
  • 18.3. ZDALNE WYWOŁANIA PROCEDUR (1048)
    • Przekazywanie parametrów (1050)
    • Reprezentowanie parametrów (1050)
    • Wiązanie klienta z serwerem (1050)
    • Synchroniczne czy niesynchroniczne (1051)
    • Mechanizmy obiektowe (1051)
  • 18.4. GRONA, CZYLI KLASTRY (1052)
    • Konfigurowanie gron (1053)
    • Zagadnienia projektowe systemów operacyjnych (1055)
    • Architektura grona komputerów (1057)
    • Grona w porównaniu z SMP (1058)
  • 18.5. SERWER GRONA W SYSTEMIE WINDOWS (1058)
  • 18.6. BEOWULF I GRONA LINUKSOWE (1060)
    • Właściwości Beowulfa (1060)
    • Oprogramowanie Beowulfa (1061)
  • 18.7. PODSUMOWANIE (1062)
  • 18.8. LITERATURA (1063)
  • 18.9. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (1063)
    • Podstawowe pojęcia (1063)
    • Pytania sprawdzające (1064)
    • Zadania (1064)

Rozdział 19. Rozproszone zarządzanie procesami (1067)

  • 19.1. WĘDRÓWKA PROCESÓW (1068)
    • Uzasadnienie (1068)
    • Mechanizmy wędrówki procesów (1069)
    • Negocjowanie wędrówki (1073)
    • Eksmisja (1074)
    • Przeniesienia z wywłaszczaniem lub bez wywłaszczania (1075)
  • 19.2. ROZPROSZONE STANY GLOBALNE (1075)
    • Stany globalne i migawki rozproszone (1075)
    • Algorytm migawki rozproszonej (1078)
  • 19.3. ROZPROSZONE WZAJEMNE WYKLUCZANIE (1080)
    • Koncepcje rozproszonego wzajemnego wykluczania (1080)
    • Porządkowanie zdarzeń w systemie rozproszonym (1083)
    • Kolejka rozproszona (1086)
    • Metoda przekazywania żetonu (1089)
  • 19.4. ZAKLESZCZENIE ROZPROSZONE (1091)
    • Zakleszczenie w przydziale zasobów (1091)
    • Zakleszczenie w przekazywaniu komunikatów (1097)
  • 19.5. PODSUMOWANIE (1102)
  • 19.6. LITERATURA (1102)
  • 19.7. PODSTAWOWE POJĘCIA, PYTANIA SPRAWDZAJĄCE I ZADANIA (1104)
    • Podstawowe pojęcia (1104)
    • Pytania sprawdzające (1104)
    • Zadania (1105)

Rozdział 20. Prawdopodobieństwo i procesy stochastyczne w zarysie (1107)

  • 20.1. PRAWDOPODOBIEŃSTWO (1108)
    • Definicje prawdopodobieństwa (1108)
    • Prawdopodobieństwo warunkowe i niezależność (1111)
    • Twierdzenie Bayesa (1112)
  • 20.2. ZMIENNE LOSOWE (1113)
    • Funkcje rozkładu i gęstości (1113)
    • Ważne rozkłady (1114)
    • Wiele zmiennych losowych (1117)
  • 20.3. ELEMENTARNE KONCEPCJE PROCESÓW STOCHASTYCZNYCH (1118)
    • Statystyka pierwszego i drugiego rzędu (1119)
    • Stacjonarne procesy stochastyczne (1120)
    • Gęstość widmowa (1121)
    • Przyrosty niezależne (1122)
    • Ergodyczność (1126)
  • 20.4. ZADANIA (1127)

Rozdział 21. Analiza kolejek (1131)

  • 21.1. ZACHOWANIE KOLEJEK - PROSTY PRZYKŁAD (1133)
  • 21.2. PO CO ANALIZOWAĆ KOLEJKI? (1138)
  • 21.3. MODELE KOLEJEK (1140)
    • Kolejka jednoserwerowa (1140)
    • Kolejka wieloserwerowa (1144)
    • Podstawowe zależności obsługi masowej (1145)
    • Założenia (1146)
  • 21.4. KOLEJKI JEDNOSERWEROWE (1147)
  • 21.5. KOLEJKI WIELOSERWEROWE (1150)
  • 21.6. PRZYKŁADY (1150)
    • Serwer bazy danych (1150)
    • Obliczanie percentyli (1152)
    • Wieloprocesor ściśle powiązany (1153)
    • Problem wieloserwera (1154)
  • 21.7. KOLEJKI Z PRIORYTETAMI (1156)
  • 21.8. SIECI KOLEJEK (1157)
    • Dzielenie i łączenie strumieni ruchu (1158)
    • Kolejki posobne (tandemowe) (1159)
    • Twierdzenie Jacksona (1159)
    • Zastosowanie w sieci komutacji pakietów (1160)
  • 21.9. INNE MODELE KOLEJEK (1161)
  • 21.10. SZACOWANIE PARAMETRÓW MODELU (1162)
    • Próbkowanie (1162)
    • Błędy próbkowania (1164)
  • 21.11. LITERATURA (1165)
  • 21.12. ZADANIA (1165)

Projekt programistyczny nr 1. Opracowanie powłoki (1169)

Projekt programistyczny nr 2. Powłoka dyspozytora HOST (1173)

Dodatek C. Problematyka współbieżności (1181)

Dodatek D. Projektowanie obiektowe (1191)

Dodatek E. Prawo Amdahla (1203)

Dodatek F. Tablice haszowania (1207)

Dodatek G. Czas odpowiedzi (1211)

Dodatek H. Pojęcia systemów kolejkowania (1217)

Dodatek I. Złożoność algorytmów (1223)

Dodatek J. Urządzenia pamięci dyskowej (1227)

Dodatek K. Algorytmy kryptograficzne (1239)

Dodatek L. Instytucje normalizacyjne (1251)

Dodatek M. Gniazda ? wprowadzenie dla osób programujących (1263)

Dodatek N. Międzynarodowy alfabet wzorcowy (IRA) (1291)

Dodatek O. BACI ? system współbieżnego programowania Ben-Ariego (1295)

Dodatek P. Sterowanie procedurami (1307)

Dodatek Q. ecos (1313)

Słownik (1329)

Skorowidz (1343)

  • Tytuł: Systemy operacyjne. Architektura, funkcjonowanie i projektowanie. Wydanie IX
  • Autor: William Stallings
  • Tytuł oryginału: Operating Systems: Internals and Design Principles (9th Edition)
  • Tłumaczenie: Zdzisław Płoski
  • ISBN: 978-83-283-3760-2, 9788328337602
  • Data wydania: 2018-08-31
  • Format: Ebook
  • Identyfikator pozycji: syopa9
  • Wydawca: Helion