Systemy operacyjne. Architektura, funkcjonowanie i projektowanie. Wydanie IX - ebook
Systemy operacyjne. Architektura, funkcjonowanie i projektowanie. Wydanie IX - 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
Spis treści
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...
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-3760-2 |
Rozmiar pliku: | 22 MB |