Struktura organizacyjna i architektura systemów komputerowych - Helion
Tytuł oryginału: The Essentials of Computer Organization and Architecture
Tłumaczenie: Michał Dadan (wstęp, rozdz. 1-5), Piotr Pilch (rozdz. 6-10), Andrzej Grażyński (rozdz. 11, dod. A-C)
ISBN: 83-7361-430-3
stron: 672, Format: B5, okładka: twarda
Data wydania: 2004-06-30
Księgarnia: Helion
Cena książki: 69,00 zł
Komputery już dawno stały się zjawiskiem powszechnym i nie są już traktowane jak magiczne skrzynki. Praktycznie wszyscy znają już możliwości ich praktycznego wykorzystania. W dobie intuicyjnych systemów operacyjnych, technologii plug-and-play i postępującego uproszczenia wszelkich operacji związanych z komputerami wiedza o architekturze i organizacji systemów komputerowych może wydawać się potrzebna jedynie wąskiej grupie specjalistów-sprzętowców. Jest jednak inaczej. Ogólna znajomość tego, co kryje się pod "maską" komputera potrzebna jest każdemu użytkownikowi komputera. Dzięki niej programista zrozumie, z czego wynikają błędy w działaniu programu, twórca systemów czasu rzeczywistego zoptymalizuje wykorzystanie procesora przez system, a osoba decydująca się na zakup nowego sprzętu we właściwy sposób zinterpretuje "obiektywne" testy przytaczane przez producentów w materiałach reklamowych.
Struktura organizacyjna i architektura systemów komputerowych to przystępne omówienie organizacji i architektury współczesnych komputerów. Książka, stworzona zgodnie z założeniami komitetu ACM-IEEE Computing Curricula 2001, nadaje się idealnie jako podręcznik dla kursu wprowadzającego w tą tematykę. Zawarte w niej zagadnienia zilustrowane są licznymi przykładami zaczerpniętymi z rzeczywistego świata, co dodatkowo ułatwia ich zrozumienie.
- Historia rozwoju komputerów.
- Sposoby przedstawiania danych, notacje i kody.
- Logika binarna i algebra Boole'a.
- Organizacja pracy systemu komputerowego, cykle maszynowe, magistrala, lista rozkazów, asembler.
- Tryby adresowania.
- Przechowywanie danych w pamięci komputera.
- Narzędzia programistyczne i systemy operacyjne.
- Alternatywne architektury komputerów.
- Analiza wydajności systemów komputerowych.
- Sieci komputerowe.
Doskonale dobrane proporcje pomiędzy objętością tekstu i poziomem szczegółowości oraz opisywanie wyłącznie istotnych aspektów zagadnienia powodują, że książka stanowi doskonałe źródło naprawdę przydatnej wiedzy.
Osoby które kupowały "Struktura organizacyjna i architektura systemów komputerowych", wybierały także:
- Superinteligencja. Scenariusze, strategie, zagro 66,67 zł, (14,00 zł -79%)
- Poradnik design thinking - czyli jak wykorzysta 48,28 zł, (14,00 zł -71%)
- Kosymulacja. Elastyczne projektowanie i symulacja wielodomenowa 38,39 zł, (11,90 zł -69%)
- F# 4.0 dla zaawansowanych. Wydanie IV 96,45 zł, (29,90 zł -69%)
- Systemy reaktywne. Wzorce projektowe i ich stosowanie 65,31 zł, (20,90 zł -68%)
Spis treści
Struktura organizacyjna i architektura systemów komputerowych -- spis treści
Wstęp (13)
Rozdział 1. Wprowadzenie (25)
- 1.1. Przegląd wiadomości (25)
- 1.2. Główne podzespoły komputera (27)
- 1.3. Przykładowy system - jak nie pogubić się w technicznym żargonie (28)
- 1.4. Organizacje ustanawiajÄ…ce standardy (33)
- 1.5. Historia rozwoju komputerów (34)
- 1.5.1. Generacja "zerowa" - mechaniczne maszyny liczÄ…ce (1642 - 1945) (35)
- 1.5.2. Pierwsza generacja - komputery na lampach próżniowych (1945 - 1953) (36)
- 1.5.3. Druga generacja - komputery tranzystorowe (1954 - 1965) (38)
- 1.5.4. Trzecia generacja - komputery zbudowane z układów scalonych (1965 - 1980) (41)
- 1.5.5. Czwarta generacja - komputery oparte na układach o dużym stopniu scalenia (1980 - ?) (45)
- 1.5.6. Prawo Moore'a (46)
- 1.6. Hierarchiczna struktura komputerów (47)
- 1.7. Model von Neumanna (49)
- 1.8. Inne modele komputerów (51)
- Podsumowanie (52)
- Dodatkowe źródła informacji (53)
- Bibliografia (53)
- Utrwalenie podstawowych terminów i pojęć (54)
- Ćwiczenia (55)
Rozdział 2. Reprezentacja danych w systemach komputerowych (57)
- 2.1. Wprowadzenie (57)
- 2.2. Pozycyjne systemy liczbowe (57)
- 2.3. Zamiana liczb z systemu dwójkowego na dziesiętny (59)
- 2.3.1. Przeliczanie liczb całkowitych bez znaku (59)
- 2.3.2. Przeliczanie ułamków (61)
- 2.3.3. Przeliczanie liczb między systemami, których podstawy są potęgami dwójki (63)
- 2.4. Reprezentacja liczb całkowitych ze znakiem (64)
- 2.4.1. Kod prosty (64)
- 2.4.2. Kody uzupełnieniowe (68)
- 2.5. Zapis liczb zmiennoprzecinkowych (72)
- 2.5.1. Prosty model (74)
- 2.5.2. Arytmetyka zmiennoprzecinkowa (76)
- 2.5.3. Precyzja obliczeń zmiennoprzecinkowych (76)
- 2.5.4. Standard zmiennoprzecinkowy IEEE-754 (78)
- 2.6. Kody znaków (79)
- 2.6.1. Kodowanie dwójkowo-dziesiętne (79)
- 2.6.2. EBCDIC (80)
- 2.6.3. ASCII (81)
- 2.6.4. Unicode (83)
- 2.7. Metody kodowania stosowane przy nagrywaniu i przesyłaniu danych (84)
- 2.7.1. Kod bez powrotu do zera (NRZ) (85)
- 2.7.2. Kodowanie bez powrotu do zera z inwersjÄ… (86)
- 2.7.3. Modulacja fazy (kodowanie manchesterskie) (86)
- 2.7.4. Modulacja częstotliwości (87)
- 2.7.5. Kodowanie serii ograniczonej długości (RLL) (88)
- 2.8. Wykrywanie i korekcja błędów (89)
- 2.8.1. Cykliczna kontrola nadmiarowa (90)
- 2.8.2. Kody Hamminga (93)
- 2.8.3. Kodowanie Reeda-Solomana (98)
- Podsumowanie (99)
- Dodatkowe źródła informacji (99)
- Bibliografia (100)
- Utrwalenie podstawowych terminów i pojęć (101)
- Ćwiczenia (102)
Rozdział 3. Algebra Boole'a i logika cyfrowa (107)
- 3.1. Wstęp (107)
- 3.2. Algebra Boole'a (108)
- 3.2.1. Wyrażenia boolowskie (108)
- 3.2.2. Tożsamości boolowskie (110)
- 3.2.3. Upraszczanie wyrażeń boolowskich (112)
- 3.2.4. Zaprzeczenie (113)
- 3.2.5. Sposoby prezentacji funkcji boolowskich (115)
- 3.3. Bramki logiczne (116)
- 3.3.1. Symbole bramek logicznych (117)
- 3.3.2. Bramki uniwersalne (117)
- 3.3.3. Bramki kilkuwejściowe (118)
- 3.4. Komponenty cyfrowe (119)
- 3.4.1. Układy cyfrowe i ich związek z algebrą Boole'a (119)
- 3.4.2. Układy scalone (120)
- 3.5. Układy kombinacyjne (121)
- 3.5.1. Podstawowe pojęcia (121)
- 3.5.2. Przykłady typowych układów kombinacyjnych (121)
- 3.6. Układy sekwencyjne (126)
- 3.6.1. Podstawowe pojęcia (127)
- 3.6.2. Zegary (127)
- 3.6.3. Przerzutniki (128)
- 3.6.4. Przykłady układów sekwencyjnch (131)
- 3.7. Projektowanie układów (133)
- Podsumowanie rozdziału (134)
- Dodatkowe źródła informacji (135)
- Bibliografia (136)
- Utrwalenie podstawowych terminów i pojęć (136)
- Ćwiczenia (137)
- Szczegóły: mapy Karnaugha (142)
- 3A.1. Wprowadzenie (142)
- 3A.2. Terminologia i omówienie map Karnaugha (143)
- 3A.3. Upraszczanie funkcji dwóch zmiennych przy użyciu map Karnaugha (145)
- 3A.4. Upraszczanie funkcji trzech zmiennych przy użyciu map Karnaugha (146)
- 3A.5. Upraszczanie funkcji czterech zmiennych przy użyciu map Karnaugha (149)
- 3A.6. Warunki bez znaczenia (151)
- 3A.7. Podsumowanie (152)
- Ćwiczenia (152)
Rozdział 4. MARIE: wprowadzenie do budowy prostego komputera (155)
- 4.1. Wstęp (155)
- 4.1.1. Podstawy budowy i organizacji procesora (155)
- 4.1.2. Magistrala (157)
- 4.1.3. Zegary (161)
- 4.1.4. Podsystem wejścia-wyjścia (162)
- 4.1.5. Organizacja pamięci i adresowanie (163)
- 4.1.6. Przerwania (166)
- 4.2. MARIE (166)
- 4.2.1. Architektura (167)
- 4.2.2. Rejestry i magistrale (168)
- 4.2.3. Architektura zbioru rozkazów (169)
- 4.2.4. Notacja "rejestr-przesunięcie" (172)
- 4.3. Przetwarzanie rozkazów (174)
- 4.3.1. Cykl "pobierz, dekoduj, wykonaj" (175)
- 4.3.2. Przerwania a obsługa I/O (175)
- 4.4. Prosty program (177)
- 4.5. Omówienie asemblerów (178)
- 4.5.1. Jakie funkcje właściwie pełni asembler? (179)
- 4.5.2. Po co używać asemblera? (182)
- 4.6. Rozszerzanie naszego zbioru rozkazów (182)
- 4.7. Dekodowanie - czysto sprzętowe czy realizowane za pośrednictwem mikrokodu? (187)
- 4.8. Przykładowe architektury prawdziwych komputerów (189)
- 4.8.1. Architektury Intela (191)
- 4.8.2. Architektury MIPS (194)
- Podsumowanie (196)
- Dodatkowe źródła informacji (197)
- Bibliografia (198)
- Utrwalenie podstawowych terminów i pojęć (199)
- Ćwiczenia (200)
Rozdział 5. Bliższe spojrzenie na architektury zbioru rozkazów (205)
- 5.1. Wstęp (205)
- 5.2. Formaty instrukcji (205)
- 5.2.1. Decyzje podejmowane przy projektowaniu zbiorów rozkazów (206)
- 5.2.2. Little Endian kontra Big Endian (207)
- 5.2.3. Przechowywanie danych wewnÄ…trz CPU - na stosie czy w rejestrach? (209)
- 5.2.4. Liczba operandów i długość rozkazów (210)
- 5.2.5. Rozszerzalne kody operacji (213)
- 5.3. Rodzaje rozkazów (215)
- 5.4. Adresowanie (216)
- 5.4.1. Typy danych (216)
- 5.4.2. Tryby adresowania (217)
- 5.5. Potokowość na poziomie instrukcji (220)
- 5.6. Przykłady prawdziwych architektur ISA (224)
- 5.6.1. Intel (225)
- 5.6.2. MIPS (225)
- 5.6.3. Wirtualna maszyna Javy (226)
- Podsumowanie (230)
- Dodatkowe źródła informacji (231)
- Bibliografia (231)
- Utrwalenie podstawowych terminów i pojęć (232)
- Ćwiczenia (233)
Rozdział 6. Pamięć (237)
- 6.1. Wprowadzenie (237)
- 6.2. Typy pamięci (237)
- 6.3. Hierarchia pamięci (239)
- 6.3.1. Lokalność odwołań (241)
- 6.4. Pamięć podręczna (241)
- 6.4.1. Schematy odwzorowania pamięci podręcznej (244)
- 6.4.2. Reguły zastępowania (250)
- 6.4.3. Efektywny czas dostępu i współczynnik trafień (252)
- 6.4.4. Kiedy pamięć podręczna przestaje wydajnie funkcjonować? (252)
- 6.4.5. Zasady zapisywania do pamięci podręcznej (253)
- 6.5. Pamięć wirtualna (254)
- 6.5.1. Stronicowanie (255)
- 6.5.2. Wskaźnik ECD w przypadku używania stronicowania (260)
- 6.5.3. Połączenie elementów - zastosowanie pamięci podręcznej, buforów TLB i stronicowania (262)
- 6.5.4. Zalety i wady stronicowania oraz pamięci wirtualnej (264)
- 6.5.5. Segmentacja (265)
- 6.5.6. Stronicowanie połączone z segmentacją (266)
- 6.6. Praktyczny przykład zarządzania pamięcią (266)
- Podsumowanie (267)
- Dodatkowe publikacje (268)
- Bibliografia (269)
- Utrwalenie podstawowych terminów i pojęć (269)
- Ćwiczenia (270)
Rozdział 7. Systemy wejścia-wyjścia i magazynowania danych (277)
- 7.1. Wprowadzenie (277)
- 7.2. Prawo Amdahla (278)
- 7.3. Architektury systemów I/O (279)
- 7.3.1. Metody sterowania układami I/O (280)
- 7.3.2. Działanie magistrali I/O (284)
- 7.3.3. Kolejne spojrzenie na układy I/O sterowane przerwaniami (287)
- 7.4. Technologia dysków magnetycznych (289)
- 7.4.1. Napędy dysków twardych (290)
- 7.4.2. Dyski elastyczne (dyskietki) (295)
- 7.5. Dyski optyczne (297)
- 7.5.1. CD-ROM (297)
- 7.5.2. DVD (300)
- 7.5.3. Metody zapisu dysków optycznych (301)
- 7.6. Taśma magnetyczna (302)
- 7.7. RAID (304)
- 7.7.1. RAID-0 (305)
- 7.7.2. RAID-1 (306)
- 7.7.3. RAID-2 (306)
- 7.7.4. RAID-3 (307)
- 7.7.5. RAID-4 (308)
- 7.7.6. RAID-5 (309)
- 7.7.7. RAID-6 (310)
- 7.7.8. Hybrydowe systemy RAID (311)
- 7.8. Kompresja danych (311)
- 7.8.1. Kodowanie statystyczne (313)
- 7.8.2. Systemy słownikowe Ziv-Lempel (LZ) (320)
- 7.8.3. Kompresja GIF (324)
- 7.8.4. Kompresja JPEG (325)
- Podsumowanie (329)
- Dodatkowe publikacje (330)
- Bibliografia (331)
- Utrwalenie podstawowych terminów i pojęć (332)
- Ćwiczenia (333)
- Dodatkowe informacje na temat implementacji wybranych systemów dyskowych (336)
- 7A.1 Wprowadzenie (336)
- 7A.2 Tryby transmisji danych (336)
- 7A.3. SCSI (338)
- 7A.4. Sieci SAN (350)
- 7A.5. Inne połączenia I/O (351)
- 7A.6. Podsumowanie (353)
- Ćwiczenia (354)
Rozdział 8. Oprogramowanie systemowe (357)
- 8.1. Wprowadzenie (357)
- 8.2. Systemy operacyjne (358)
- 8.2.1. Historia systemów operacyjnych (359)
- 8.2.2. Projektowanie systemu operacyjnego (364)
- 8.2.3. Usługi systemu operacyjnego (365)
- 8.3. Åšrodowiska chronione (370)
- 8.3.1. Wirtualne maszyny (370)
- 8.3.2. Podsystemy i partycje (372)
- 8.3.3. Åšrodowiska chronione i ewolucja architektur systemowych (374)
- 8.4. Narzędzia programowania (376)
- 8.4.1. Asemblery i ich tłumaczenie (377)
- 8.4.2. Konsolidatory (379)
- 8.4.3. Biblioteki DLL (381)
- 8.4.4. Kompilatory (382)
- 8.4.5. Interpretery (386)
- 8.5. Java - coś więcej (387)
- 8.6. Oprogramowanie bazodanowe (393)
- 8.7. Menedżery transakcji (399)
- Podsumowanie (400)
- Dodatkowe publikacje (401)
- Bibliografia (402)
- Utrwalenie podstawowych terminów i pojęć (403)
- Ćwiczenia (404)
Rozdział 9. Alternatywne architektury (407)
- 9.1. Wprowadzenie (407)
- 9.2. Komputery oparte na architekturze RISC (408)
- 9.3. Taksonomia Flynna (414)
- 9.4. Architektury wieloprocesorowe i przetwarzania równoległego (417)
- 9.4.1. Architektura superskalarna i VLIW (418)
- 9.4.2. Procesory wektorowe (420)
- 9.4.3. Sieci połączeniowe (421)
- 9.4.4. Systemy wieloprocesorowe współdzielące pamięć (425)
- 9.4.5. Obliczenia rozproszone (429)
- 9.5. Alternatywne metody przetwarzania równoległego (430)
- 9.5.1. Obliczenia oparte na przepływie danych (430)
- 9.5.2. Sieci neuronowe (433)
- 9.5.3. Macierze systoliczne (436)
- Podsumowanie (437)
- Dodatkowe publikacje (438)
- Bibliografia (438)
- Utrwalenie podstawowych terminów i pojęć (440)
- Ćwiczenia (441)
Rozdział 10. Analiza i pomiar wydajności (445)
- 10.1. Wprowadzenie (445)
- 10.2. Podstawowe równanie określające wydajność komputera (445)
- 10.3. Matematyczne podstawy (447)
- 10.3.1. Czym jest średnia? (448)
- 10.3.2. statystyka i semantyka (453)
- 10.4. Benchmarking (455)
- 10.4.1. Częstotliwość zegara oraz wskaźniki MIPS i FLOPS (456)
- 10.4.2. Syntetyczne programy wzorcowe - Whetstone, Linpack i Dhrystone (458)
- 10.4.3. Programy wzorcowe organizacji SPEC (459)
- 10.4.4. Programy wzorcowe organizacji TPC (463)
- 10.4.5. Symulacja systemu (470)
- 10.5. Optymalizacja wydajności procesora (471)
- 10.5.1. Optymalizacja rozgałęzień (471)
- 10.5.2. Zastosowanie dobrych algorytmów i prostego kodu (474)
- 10.6. Wydajność dysku (477)
- 10.6.1. Zrozumienie problemu (478)
- 10.6.2. Kwestie zwiÄ…zane z fizycznymi komponentami dysku (479)
- 10.6.3. Kwestie zwiÄ…zane z logicznymi komponentami dysku (480)
- Podsumowanie (485)
- Dodatkowe publikacje (486)
- Bibliografia (487)
- Utrwalenie podstawowych terminów i pojęć (488)
- Ćwiczenia (489)
Rozdział 11. Organizacja i architektura sieci komputerowych (495)
- 11.1. Wprowadzenie (495)
- 11.2. Wczesne sieci biznesowe (495)
- 11.3. Wczesne sieci akademickie; zalążek internetu (497)
- 11.4. Protokoły sieciowe i ich unifikacja w ramach ISO/OSI (499)
- 11.4.1. Przykład (500)
- 11.4.2. Model odniesienia OSI (501)
- 11.5. Architektura sieci TCP/IP (505)
- 11.5.1. Warstwa IP w wersji 4. (506)
- 11.5.2. Ograniczenia zwiÄ…zane z IPv4 (509)
- 11.5.3. Protokół transportowy TCP (511)
- 11.5.4. Protokół TCP w akcji (514)
- 11.5.5. IP w wersji 6. (517)
- 11.6. Organizacja sieci (520)
- 11.6.1. Fizyczne media transmisyjne (520)
- 11.6.2. Karty sieciowe (527)
- 11.6.3. Powtarzacze (527)
- 11.6.4. Koncentratory (528)
- 11.6.5. Przełączniki (529)
- 11.6.6. Mostki i bramy (529)
- 11.6.7. Routery i marszrutowanie (530)
- 11.7. Szybkie Å‚Ä…cza cyfrowe (539)
- 11.7.1. Hierarchia cyfrowa (539)
- 11.7.2. ISDN (543)
- 11.7.3. Transfer asynchroniczny (546)
- 11.8. Rzut oka na internet (547)
- 11.8.1. Internet "z doskoku" (548)
- 11.8.2. Internet - skok wzwyż (555)
- Podsumowanie (555)
- Dodatkowe źródła informacji (556)
- Bibliografia (557)
- Utrwalenie podstawowych terminów i pojęć (558)
- Ćwiczenia (559)
Dodatek A Struktury danych w obliczeniach komputerowych (563)
- A.1. Wstęp (563)
- A.2. Fundamentalne struktury danych (563)
- A.2.1. Tablice (564)
- A.2.2. Kolejki i listy wiÄ…zane (565)
- A.2.3. Stosy (567)
- A.3. Drzewa (569)
- A.4. Grafy (575)
- Podsumowanie (578)
- Dodatkowe źródła informacji (578)
- Bibliografia (578)
- Ćwiczenia (579)
Dodatek B SÅ‚ownik (583)
Dodatek C Odpowiedzi i wskazówki do wybranych ćwiczeń (625)
Skorowidz (639)