WAŻNE PRZED ZAKUPEM KSIĄŻEK WYDAWNICTWA HELION PROSZĘ ZAPOZNAĆ SIĘ ZE STRONĄ "O MNIE"
Wyjątkowa promocja - szczegóły na końcu strony To już ostatnie sztuki - nie czekaj kup dziś | Strukturalna organizacja systemów komputerowych. Wydanie V
Autor: Andrew S. Tanenbaum Data wydania: 03/2006 Stron: 864 Zawiera CD-ROM Wydawnictwo Helion Cena książki: 91.00 zł Tytuł oryginału: Structured Computer Organization (5th Edition) Tłumaczenie: Andrzej Grażyński (rozdz. 6 - 9, dod. A - C), Paweł Koronkiewicz (przedmowa, rozdz. 1 - 5) ISBN: 83-[zasłonięte]-0238-0 Format: B5 Oprawa: twarda
|
| Doskonałe omówienie zasad działania współczesnych komputerów Dowiedz się, jak działają procesory i magistrale Poznaj reguły algebry logiki Odkryj tajemnice współczesnych systemów operacyjnych Dla większości użytkowników komputerów, nawet tych, dla których komputer jest narzędziem pracy, wiedza o tym urządzeniu kończy się na umiejętności instalowania i uruchamiania aplikacji. Współczesne, intuicyjne systemy operacyjne, technologie maksymalnie upraszczające pracę z komputerem, łatwe w obsłudze aplikacje -- wszystko to powoduje, że znajomość zasad funkcjonowania komputerów wydaje się nam niepotrzebna. Tymczasem taka wiedza może okazać się przydatna nie tylko specjaliście, ale również zwykłemu użytkownikowi. Dzięki niej twórcy aplikacji są w stanie zoptymalizować ich działanie i zrozumieć przyczyny błędów, projektanci urządzeń peryferyjnych wybrać najlepszy sposób komunikacji swojego produktu z komputerem, a osoby zainteresowane kupnem nowego sprzętu dokonać świadomego wyboru. W książce "Strukturalna organizacja systemów komputerowych. Wydanie V" zaprezentowano system komputerowy w ujęciu hierarchicznym, jako zespół zależnych od siebie warstw. Poznajemy go, poczynając od poziomu "logiki cyfrowej", poprzez mikroarchitekturę i poziom maszynowy, aż do poziomu systemu operacyjnego i języka asemblera. Książka przedstawia również historię rozwoju komputerów, zadania systemów operacyjnych, zasady programowania w języku maszynowym oraz architektury najpopularniejszych procesorów. Procesory i pamięć operacyjna Wykonywanie rozkazów języka maszynowego Operacje wejścia i wyjścia Arytmetyka cyfrowa Magistrale ISA, PCI oraz PCI Express Przetwarzanie danych przez procesory Programowanie w języku asemblera Działanie systemów operacyjnych Przetwarzanie rozproszone i obliczenia równoległe Dowiedz się jak działa Twój komputer.
Spis treści
O autorze (13) Przedmowa do wydania polskiego (15) Przedmowa (19) 1. Wprowadzenie (23) 1.1. Strukturalna organizacja komputera (24) 1.1.1. Języki, poziomy i maszyny wirtualne (24) 1.1.2. Współczesne komputery wielopoziomowe (26) 1.1.3. Ewolucja komputerów wielopoziomowych (29) 1.2. Kamienie milowe architektury komputerów (34) 1.2.1. Generacja 0 - komputery mechaniczne (1642 - 1945) (36) 1.2.2. Pierwsza generacja - lampy próżniowe (1945 - 1955) (38) 1.2.3. Druga generacja - tranzystory (1955 - 1965) (40) 1.2.4. Trzecia generacja - układy scalone (1965 - 1980) (43) 1.2.5. Czwarta generacja - bardzo duża skala integracji (1980 - ?) (44) 1.2.6. Piąta generacja - niewidzialne komputery (47) 1.3. Komputerowe zoo (48) 1.3.1. Siły techniczne i ekonomiczne (48) 1.3.2. Rodzaje komputerów (50) 1.3.3. Komputery jednorazowego użytku (50) 1.3.4. Mikrosterowniki (52) 1.3.5. Komputery do gier (54) 1.3.6. Komputery osobiste (55) 1.3.7. Serwery (56) 1.3.8. Grupy stacji roboczych (56) 1.3.9. Komputery mainframe (56) 1.4. Rodziny komputerów - przykłady (57) 1.4.1. Pentium 4 (58) 1.4.2. UltraSPARC III (63) 1.4.3. 8051 (64) 1.5. Komputerowe jednostki miar (66) 1.6. Układ książki (67) 2. Organizacja systemów komputerowych (71) 2.1. Procesory (71) 2.1.1. Organizacja jednostki centralnej (72) 2.1.2. Wykonanie rozkazu (73) 2.1.3. RISC i CISC (77) 2.1.4. Reguły projektowania współczesnych komputerów (78) 2.1.5. Równoległość na poziomie rozkazów (80) 2.1.6. Równoległość na poziomie procesorów (84) 2.2. Pamięć główna (88) 2.2.1. Bity (88) 2.2.2. Adresowanie pamięci (89) 2.2.3. Porządek bajtów (90) 2.2.4. Kody korekcji błędów (92) 2.2.5. Pamięć podręczna (96) 2.2.6. Obudowy i typy pamięci (99) 2.3. Pamięć pomocnicza (100) 2.3.1. Hierarchie pamięci (100) 2.3.2. Dyski magnetyczne (101) 2.3.3. Dyskietki (104) 2.3.4. Dyski IDE (105) 2.3.5. Dyski SCSI (107) 2.3.6. Macierze RAID (108) 2.3.7. Dyski CD-ROM (112) 2.3.8. Nagrywalne dyski CD (116) 2.3.9. Dyski CD wielokrotnego zapisu (118) 2.3.10. Dyski DVD (118) 2.3.11. Blu-Ray (120) 2.4. Urządzenia wejścia-wyjścia (121) 2.4.1. Magistrale (121) 2.4.2. Terminale (124) 2.4.3. Myszy (128) 2.4.4. Drukarki (130) 2.4.5. Wyposażenie telekomunikacyjne (135) 2.4.6. Cyfrowe aparaty fotograficzne (143) 2.4.7. Kody znakowe (145) 2.5. Podsumowanie (149) 3. Poziom układów logicznych (153) 3.1. Bramki i algebra Boole'a (153) 3.1.1. Bramki (154) 3.1.2. Algebra Boole'a (156) 3.1.3. Implementacja funkcji logicznych (158) 3.1.4. Równoważność układów logicznych (160) 3.2. Podstawowe układy cyfrowe (163) 3.2.1. Układy scalone (163) 3.2.2. Układy kombinacyjne (165) 3.2.3. Układy arytmetyczne (170) 3.2.4. Zegary (174) 3.3. Pamięć (175) 3.3.1. Zatrzaski (176) 3.3.2. Przerzutniki (178) 3.3.3. Rejestry (180) 3.3.4. Organizacja pamięci (182) 3.3.5. Układy pamięci (184) 3.3.6. Pamięci ROM i RAM (187) 3.4. Układy procesorów i magistrale (190) 3.4.1. Układy procesorów (190) 3.4.2. Magistrale (192) 3.4.3. Szerokość magistrali (195) 3.4.4. Taktowanie magistrali (196) 3.4.5. Arbitraż magistrali (201) 3.4.6. Operacje magistrali (204) 3.5. Przykładowe układy procesorów (206) 3.5.1. Pentium 4 (206) 3.5.2. UltraSPARC III (212) 3.5.3. 8051 (216) 3.6. Przykładowe magistrale (218) 3.6.1. Magistrala ISA (219) 3.6.2. Magistrala PCI (220) 3.6.3. PCI Express (228) 3.6.4. Universal Serial Bus (233) 3.7. Interfejs wejścia-wyjścia (236) 3.7.1. Układy wejścia-wyjścia (237) 3.7.2. Dekodowanie adresów (238) 3.8. Podsumowanie (241) 4. Poziom mikroarchitektury (247) 4.1. Przykładowa mikroarchitektura (247) 4.1.1. Ścieżka danych (249) 4.1.2. Mikrorozkazy (254) 4.1.3. Wykonywanie mikroprogramów: Mic-1 (257) 4.2. Przykładowy poziom maszynowy: IJVM (262) 4.2.1. Stosy (262) 4.2.2. Model pamięci maszyny IJVM (264) 4.2.3. Lista rozkazów IJVM (266) 4.2.4. Kompilowanie języka Java do postaci IJVM (269) 4.3. Przykładowy poziom realizacji (271) 4.3.1. Notacja mikrorozkazów (271) 4.3.2. Implementacja IJVM w architekturze Mic-1 (276) 4.4. Projektowanie poziomu mikroarchitektury (288) 4.4.1. Szybkość a koszt (288) 4.4.2. Skracanie ścieżki wykonania (291) 4.4.3. Wstępne pobieranie rozkazów: Mic-2 (297) 4.4.4. Konstrukcja potokowa: Mic-3 (301) 4.4.5. Potok siedmiostopniowy: Mic-4 (306) 4.5. Poprawianie wydajności mikroarchitektury (309) 4.5.1. Pamięć podręczna (310) 4.5.2. Przewidywanie rozgałęzień (316) 4.5.3. Wykonywanie rozkazów poza kolejnością i przemianowywanie rejestrów (321) 4.5.4. Wykonanie spekulatywne (327) 4.6. Przykłady mikroarchitektury (329) 4.6.1. Mikroarchitektura procesora Pentium 4 (330) 4.6.2. Mikroarchitektura procesora UltraSPARC III Cu (335) 4.6.3. Mikroarchitektura procesora 8051 (340) 4.7. Porównanie przykładowych mikroarchitektur (342) 4.8. Podsumowanie (344) 5. Konwencjonalny poziom maszynowy (ISA) (349) 5.1. Ogólny przegląd poziomu ISA (351) 5.1.1. Własności konwencjonalnego poziomu maszynowego (351) 5.1.2. Modele pamięci (353) 5.1.3. Rejestry (355) 5.1.4. Rozkazy (357) 5.1.5. Poziom maszynowy procesora Pentium 4 (357) 5.1.6. Poziom maszynowy procesora UltraSPARC III (359) 5.1.7. Konwencjonalny poziom maszynowy procesora 8051 (363) 5.2. Typy danych (366) 5.2.1. Dane numeryczne (366) 5.2.2. Dane nienumeryczne (367) 5.2.3. Typy danych procesora Pentium 4 (368) 5.2.4. Typy danych procesora UltraSPARC III (369) 5.2.5. Typy danych procesora 8051 (369) 5.3. Formaty rozkazów (370) 5.3.1. Kryteria projektowania formatu rozkazów (371) 5.3.2. Rozszerzalne kody operacji (373) 5.3.3. Formaty rozkazów procesora Pentium 4 (375) 5.3.4. Formaty rozkazów procesora UltraSPARC III (376) 5.3.5. Formaty rozkazów procesora 8051 (377) 5.4. Adresowanie (378) 5.4.1. Tryby adresowania (378) 5.4.2. Adresowanie natychmiastowe (379) 5.4.3. Adresowanie bezpośrednie (379) 5.4.4. Adresowanie rejestrowe (379) 5.4.5. Adresowanie pośrednie rejestrowe (380) 5.4.6. Adresowanie indeksowe (381) 5.4.7. Adresowanie indeksowe z wartością bazową (383) 5.4.8. Adresowanie stosowe (383) 5.4.9. Tryby adresowania w rozkazach rozgałęzień (386) 5.4.10. Ortogonalność kodów operacji i trybów adresowania (387) 5.4.11. Tryby adresowania procesora Pentium 4 (389) 5.4.12. Tryby adresowania procesora UltraSPARC III (391) 5.4.13. Tryby adresowania procesora 8051 (391) 5.4.14. Porównanie trybów adresowania (392) 5.5. Typy rozkazów (393) 5.5.1. Rozkazy do przenoszenia danych (393) 5.5.2. Operacje dwuargumentowe (394) 5.5.3. Operacje jednoargumentowe (395) 5.5.4. Porównania i skoki warunkowe (398) 5.5.5. Rozkazy wywoływania procedur (399) 5.5.6. Sterowanie wykonywaniem pętli (400) 5.5.7. Wejście-wyjście (402) 5.5.8. Rozkazy procesora Pentium 4 (405) 5.5.9. Rozkazy procesora UltraSPARC III (410) 5.5.10. Rozkazy procesora 8051 (413) 5.5.11. Porównanie zestawów rozkazów (416) 5.6. Sterowanie (417) 5.6.1. Sterowanie sekwencyjne i skoki (417) 5.6.2. Procedury (419) 5.6.3. Współprogramy (424) 5.6.4. Pułapki (426) 5.6.5. Przerwania (427) 5.7. Szczegółowy przykład - rozwiązanie problemu wież z Hanoi w języku asemblera (431) 5.7.1. Rozwiązanie problemu wież z Hanoi w języku asemblera Pentium 4 (432) 5.7.2. Rozwiązanie problemu wież z Hanoi w języku asemblera UltraSPARC III (434) 5.8. Architektura IA-64 i procesor Itanium 2 (437) 5.8.1. Problemy związane z architekturą Pentium 4 (437) 5.8.2. Model IA-64: jawne zrównoleglenie rozkazów (EPIC) (439) 5.8.3. Redukowanie liczby odwołań do pamięci (439) 5.8.4. Szeregowanie rozkazów (440) 5.8.5. Redukcja skoków warunkowych - predykcja (442) 5.8.6. Spekulatywne wykonywanie rozkazów LOAD (445) 5.9. Podsumowanie (445) 6. Poziom systemu operacyjnego (453) 6.1. Pamięć wirtualna (454) 6.1.1. Stronicowanie (455) 6.1.2. Implementacja stronicowania (458) 6.1.3. Stronicowanie na żądanie i koncepcja zbioru roboczego (462) 6.1.4. Taktyka wymiany stron (463) 6.1.5. Rozmiar strony a fragmentacja (465) 6.1.6. Segmentacja (466) 6.1.7. Implementacja segmentacji (469) 6.1.8. Pamięć wirtualna procesora Pentium 4 (473) 6.1.9. Pamięć wirtualna komputera UltraSPARC III (479) 6.1.10. Pamięć wirtualna a cache'owanie (482) 6.2. Wirtualne instrukcje wejścia-wyjścia (483) 6.2.1. Pliki (484) 6.2.2. Implementacja wirtualnych instrukcji wejścia-wyjścia (485) 6.2.3. Instrukcje zarządzania katalogami plików (489) 6.3. Wirtualne instrukcje przetwarzania równoległego (491) 6.3.1. Tworzenie procesów (492) 6.3.2. Problem wyścigu (492) 6.3.3. Synchronizacja procesów za pomocą semaforów (497) 6.4. Przykłady systemów operacyjnych (502) 6.4.1. Wprowadzenie (502) 6.4.2. Przykłady pamięci wirtualnych (511) 6.4.3. Przykłady wirtualnych operacji wejścia-wyjścia (515) 6.4.4. Przykłady zarządzania procesami (527) 6.5. Podsumowanie (534) 7. Poziom języka asemblera (543) 7.1. Wprowadzenie do języka asemblera (544) 7.1.1. Czym jest język asemblera? (544) 7.1.2. Dlaczego w ogóle używa się asemblerów? (545) 7.1.3. Format instrukcji asemblerowych (548) 7.1.4. Pseudoinstrukcje (552) 7.2. Makra (555) 7.2.1. Definicja, wywołanie i rozwijanie makra (555) 7.2.2. Makra z parametrami (557) 7.2.3. Zaawansowane wykorzystywanie makr (558) 7.2.4. Implementacja mechanizmu makr w asemblerach (560) 7.3. Proces asemblacji (561) 7.3.1. Asemblery dwuprzebiegowe (561) 7.3.2. Przebieg pierwszy (562) 7.3.3. Przebieg drugi (567) 7.3.4. Tablica symboli (569) 7.4. Konsolidacja i ładowanie programu (570) 7.4.1. Zadania wykonywane przez konsolidator (572) 7.4.2. Struktura modułu wynikowego (575) 7.4.3. Czas wiązania i relokacja dynamiczna (576) 7.4.4. Łączenie dynamiczne (579) 7.5. Podsumowanie (583) 8. Architektury komputerów równoległych (587) 8.1. Zrównoleglenie na poziomie układu scalonego (588) 8.1.1. Zrównoleglone wykonywanie rozkazów (589) 8.1.2. Wielowątkowość na poziomie układu scalonego (597) 8.1.3. Wieloprocesory jednoukładowe (603) 8.2. Koprocesory (609) 8.2.1. Procesory sieciowe (609) 8.2.2. Procesory multimedialne (617) 8.2.3. Kryptoprocesory (623) 8.3. Wieloprocesory ze współdzieloną pamięcią (624) 8.3.1. Wieloprocesory a wielokomputery (624) 8.3.2. Semantyka współdzielenia pamięci (632) 8.3.3. Architektura UMA wieloprocesora symetrycznego (636) 8.3.4. Wieloprocesory NUMA (646) 8.3.5. Wieloprocesory COMA (654) 8.4. Wielokomputery przekazujące komunikaty (656) 8.4.1. Sieci połączeniowe (658) 8.4.2. MPP - masywnie zrównoleglone procesory (661) 8.4.3. Obliczenia klastrowe (671) 8.4.4. Oprogramowanie komunikacyjne dla wielokomputerów (677) 8.4.5. Szeregowanie zadań (680) 8.4.6. Implementacja współdzielonej pamięci na poziomie aplikacji (681) 8.4.7. Wydajność (689) 8.5. Obliczenia siatkowe (696) 8.6. Podsumowanie (699) 9. Literatura uzupełniająca i bibliografia (703) 9.1. Propozycje dotyczące dalszej lektury (703) 9.1.1. Wprowadzenie i zagadnienia ogólne (703) 9.1.2. Organizacja systemów komputerowych (705) 9.1.3. Poziom układów logicznych (706) 9.1.4. Poziom mikroarchitektury (707) 9.1.5. Konwencjonalny poziom maszynowy (708) 9.1.6. Poziom systemu operacyjnego (709) 9.1.7. Poziom języka asemblera (710) 9.1.8. Architektury komputerów równoległych (710) 9.1.9. Liczby binarne i zmiennopozycyjne (712) 9.1.10. Programowanie w języku asemblera (713) 9.2. Alfabetyczny wykaz cytowanej literatury (713) A Liczby dwójkowe (727) A.1. Liczby o skończonej precyzji (727) A.2. Pozycyjne systemy liczbowe (730) A.3. Transformacje liczb między systemami pozycyjnymi (731) A.4. Ujemne liczby dwójkowe (735) A.5. Arytmetyka dwójkowa (737) B Liczby zmiennopozycyjne (741) B.1. Zasady arytmetyki zmiennopozycyjnej (741) B.2. Standard arytmetyki zmiennopozycyjnej IEEE-754 (745) C Programowanie w języku asemblera (751) C.1. Wprowadzenie (752) C.1.1. Język asemblera (752) C.1.2. Prosty program w języku asemblera (753) C.2. Procesor 8088 (754) C.2.1. Cykl procesora (755) C.2.2. Rejestry uniwersalne (755) C.2.3. Rejestry wskaźnikowo-indeksowe (757) C.3. Pamięć i jej adresowanie (760) C.3.1. Organizacja pamięci i segmenty (760) C.3.2. Adresowanie (762) C.4. Zestaw instrukcji procesora 8088 (767) C.4.1. Instrukcje przesyłania danych i instrukcje arytmetyczne (770) C.4.2. Operacje logiczne, bitowe i przesunięcia (773) C.4.3. Instrukcje pętli i iterowane instrukcje łańcuchowe (774) C.4.4. Skoki i wywołania podprogramów (776) C.4.5. Wywołania podprogramów (777) C.4.6. Wywołania systemowe i procedury systemu (779) C.4.7. Dodatkowe uwagi na temat instrukcji procesora 8088 (782) C.5. Asembler (783) C.5.1. Wprowadzenie (783) C.5.2. Asembler as88 (ACK) (784) C.5.3. Asembler as88 a inne asemblery dla procesora 8088 (788) C.6. Program śledzący (790) C.6.1. Polecenia programu śledzącego (792) C.7. Zaczynamy! (794) C.8. Przykłady (795) C.8.1. Hello World (796) C.8.2. Wykorzystanie rejestrów uniwersalnych (799) C.8.3. Instrukcja CALL i rejestry wskaźnikowe (800) C.8.4. Debugowanie programu drukującego elementy wektora (804) C.8.5. Manipulowanie łańcuchami i instrukcje łańcuchowe (807) C.8.6. Tablice sterujące (811) C.8.7. Buforowany i swobodny dostęp do plików (813) Skorowidz (819)
Książka jest wysyłana listem priorytetowym. Zapraszam na moje pozostałe aukcje
W chwili obecnej książka jest w cenie 91,00 zł - najniższa cena na Allegro.
|
10 dniowa gwarancja 100% satysfakcji: po prostu zwracam pieniądze "bez gadania" Bazując na opiniach Klientów, zdecydowałem się wprowadzić unikalną gwarancję, która ma zapewnić Twoje maksymalne zadowolenie z mojej oferty. Gwarancja spełnia swoją rolę w 100%. Jak to działa? Możesz wypróbować tę książkę przez 10 dni. Jeśli z jakiegokolwiek powodu, nie będziesz z niej w pełni zadowolony (mimo, że testowałeś go przez 10 dni) możesz zażądać natychmiastowego zwrotu pieniędzy bez podania przyczyny. Wystarczy, że wyślesz do mnie niezniszczoną książkę a ja zwrócę Ci Twoje pieniądze. |