Главная    Ex Libris    Книги    Журналы    Статьи    Серии    Каталог    Wanted    Загрузка    ХудЛит    Справка    Поиск по индексам    Поиск    Форум   
blank
Авторизация

       
blank
Поиск по указателям

blank
blank
blank
Красота
blank
Bryant R., O'Hallaron D.R. — Computer Systems: A Programmer's Perspective
Bryant R., O'Hallaron D.R. — Computer Systems: A Programmer's Perspective



Обсудите книгу на научном форуме



Нашли опечатку?
Выделите ее мышкой и нажмите Ctrl+Enter


Название: Computer Systems: A Programmer's Perspective

Авторы: Bryant R., O'Hallaron D.R.

Аннотация:

This book is a very unusual one because it explains computer architecture from the standpoint of the C/C++ programmer. That is, its object is to allow the programmer to understand how the architecture of the computer on which he/she programs effects the performance and execution of these programs. Things such as virtual memory, parallelization, optimization, and even logical and mathematical operations are effected by the architecture of the computer itself. For example - big endian versus little endian machines. You'd believe you wouldn't have to think about how your computer is organized at this level - that is one of the reasons you program in a high level language anyways, right? Wrong. If you have data stored in big endian format that is mathematically operated upon in a little endian machine, or vice versa, you will wind up with something quite different from what you intended. That's the kind of information this book gets into.Some have labeled this book as "hard". It really is not hard as much as it is densely packed with knowledge. You need to take each concept within each chapter and think about it before you go on to the next. If you do this you'll not only get much out of it during your initial read, you'll have a valuable reference for some time to come. To get the most of this book you should already be a capable C/C++ programmer and you should also know the building blocks of a computer. The book goes over these things very quickly but it really is not enough if you start out knowing nothing about these subjects. Highly recommended. The following is the proposed table of contents for the second edition:1 A Tour of Computer Systems 1I Program Structure and Execution 252 Representing and Manipulating Information 293 Machine-Level Representation of Programs 1454 Processor Architecture 3175 Optimizing Program Performance 4496 The Memory Hierarchy 531II Running Programs on a System 6197 Linking 6238 Exceptional Control Flow 6679 Virtual Memory 741III Interaction and Communication Between Programs 81910 System-Level I/O 82311 Network Programming 84712 Concurrent Programming 893A Error Handling 957A.1 Error Handling in Unix Systems 957A.2 Error-Handling Wrappers 959


Язык: en

Рубрика: Computer science/

Статус предметного указателя: Готов указатель с номерами страниц

ed2k: ed2k stats

Год издания: 2002

Количество страниц: 978

Добавлена в каталог: 09.02.2014

Операции: Положить на полку | Скопировать ссылку для форума | Скопировать ID
blank
Предметный указатель
"Interesting" numbers      53
%ah [IA32] program register      136
%al [IA32] program register      136
%ax [IA32] program register      136
%bh [IA32] program register      136
%bl [IA32] program register      136
%bp [IA32] program register      136
%bx [IA32] program register      136
%ch [IA32] program register      136
%cx [IA32] program register      136
%dh [IA32] program register      136
%di [IA32] program register      136
%dl [IA32] program register      136
%dx [IA32] program register      136
%eax [IA32] program register      136 173
%eax [Y86] program register      258 261
%ebp [IA32] base pointer program register      136 170—172 173
%ebp [Y86] base pointer program register      258 261
%ebx [IA32] program register      136 173
%ebx [Y86] program register      258 261
%ecx [IA32] program register      136 173
%ecx [Y86] program register      258 261
%edi [IA32] program register      136 173
%edi [Y86] program register      258 261
%edx [IA32] program register      136 173
%edx [Y86] program register      258 261
%eip [IA32] program counter      129
%esi [IA32] program register      136
%esi [Y86] program register      258 261
%esp [IA32] stack pointer program register      136 140—141 170—172
%esp [Y86] stack pointer program register      258 261 286 301 350
%si [IA32] program register      136
%sp [IA32] stack pointer program register      136
.bss section      544 544—545
.data section      544 702
.debug section      545
.line section      545
.rel.data section      545
.rel.text section      545
.rodata section      544
.strtab section      545
.symtab section      544
.text section      544 702
/proc file system      596
80286 microprocessor      126
8080 microprocessor      126
<limits.h>      54
Abel, Niels Henrik      68
Abelian group      68
Aborts      590 592
Absolute value code, and branch misprediction      427
Abstract algebra      44
accept [Unix] wait for client connection request      821 818 821—822
Access time      469
access_counter [CS:APP] read cycle counter      663
Active pages      700
Active program      655
Active socket      821
Actuator arm      468
Acyclic networks      272
Adapter      8
adder [CS:APP] CGI adder      833
Addition, two's-complement      69 69—72
Addition, unsigned      68 66—69
Additive identities      43
Additive inverse      43
addl [IA32] and double word      144 260 282 325 326 329—330
addl [Y86] add      260
addp operation      213
Address order      752
address spaces      595 694 694—695
Address spaces, linear      694
Address spaces, physical      694 694—695
Address spaces, private      595 595—596
Address spaces, virtual      694 694—695
address translation      694 704—715
Address translation with a page table      705
Address translation, end-to-end address translation      711—715
Address translation, integrating caches and VM      707
Address translation, multi level page tables      709—711
Address translation, optimizing      716
Address translation, speeding up with a translation lookaside buffer (TLB)      707—709
Address translation, symbols      705
Address, effective      555 137
Address, internet      806
Address, IP      808 809—811
Address, lookback      812
Address, memory      28
Address, physical      693
Address, return      170
Address, scalar IP      809
Address, socket      815 817—818
Address, virtual      693 129—130
Address, virtual memory      28
Addressing modes      137
add_client [CS:APP] add client to list      857 859
Adjacency matrix      530
AFS (Andrew File system)      483
Aggregate data types      129
Aggregate payload      736
alarm [Unix] schedule alarm to self      622
alarm.c [CS:APP] alarm example      622
Aliasing      380
Alignment      198 198—200 735
Alignment with Microsoft Windows      199
Allocated bit      738
Allocated block      730
Allocated virtual memory      730
Alpha (Compaq Computer Corp.)      265 425 677
ALU (arithmetic/logic unit)      9 277—278 281
ALUADD      299
AMD      128
Amdahl's Law      443 379 437 443—444
Amdahl, Gene      443
andl [IA32] add double word      144
andl [Y86] and      260 282
Andrew File System (AFS)      483
Anonymous file      724
ANSI (American National Standards Institute)      3
ANSI C standard      3 135
AOL (America Online)      210
app.error [CS:APP] report application errors      927
AR Unix archiver      554
Archimedes      107
Archives      554
Areal density      467
Ariane 5 rocket      97
Arithmetic and logical operations      143—148
Arithmetic and logical operations, binary operations      143—145
Arithmetic and logical operations, Load Effective Address      143—144
Arithmetic and logical operations, shift operations      145—146
Arithmetic and logical operations, special arithmetic operations      147—148
Arithmetic and logical operations, unary operations      143—145
Arithmetic shift      50
arithmetic/logic unit (ALU)      9 277 277—278
ARM      468
ARPA (Advanced Research Projects Administration)      816
ARPANET      816
Array allocation and access      180—191
Array allocation and access, arrays and loops      183
Array allocation and access, basic principles      180—181
Array allocation and access, dynamically allocated arrays      188—191
Array allocation and access, fixed size arrays      186—188
Array allocation and access, nested arrays      183—186
Array allocation and access, pointer arithmetic      182—183
Arrays      38 183
Arrays, dynamically allocated      188—191
Arrays, fixed size      186—188
Arrays, nested      183—186
Arrays, relation to pointer      38
ASCII      3 40
ASCII table, generating      41
ASCII, character set      40—41
asm GCC inline assembly      224
asm, extended form of      224 226—230
Assembler      4 5
Assembler directives      266
Assembler phase      4
Assembly code      149
Assembly code, writing large programs in      224
Assembly-language program      5
Associative memory      498
Asynchronous exception      590
Atom system      576
Automatic variable, local      870
background process      616
backlog      820
Bad pointers, dereferencing      759—760
badcnt.c [CS:APP] improperly synchronized Pthreads program      872—873 876
Base register, in memory reference      137
BASH Unix shell program      614
Basic block      445
Bell Laboratories      14
Berkeley sockets      816
Berners-Lee, Tim      827
Best fit      739 739—740
Bias      84—85
Biased number encoding      84
Big Endian      34—35
Bijection      52
Binary code      42
binary files      3
Binary operations      143—145 213
Binary point      81
Binary semaphores      877
Binary to two's-complement conversion      52
Binary to unsigned conversion      52
Binary translation      576
Bind function      819 818—820
Bit-level operations in C      46—49
bits      26 28
Block offset bits      489
Block pointers      747
blocked bit vector      619
Blocked signal      619
Blocking, using to increase temporal locality      520 520—523
BLOCKS      484 730 738—739
Blocks, current      741
Blocks, epilogue      746
Blocks, footer      742
Blocks, free      743 752
Blocks, free, coalescing      741
Blocks, free, splitting      740
Blocks, header      738
Blocks, minimum block size      739
Blocks, padding      738
Blocks, prologue      746
Blocks, replacing/evicting      485
bmm-ijk      521
Body, code      142
Body, response      830
bool bit-level signal      272
bool boolean signal      906
bool data type      906
Boole, George      42
Boolean algebra      42 42—46
Boolean rings      43 43—46
Boolean rings, compared to modular arithmetic      45
Bottleneck elimination      437—444
Bottleneck elimination, Amdahl's law      443—444
Bottleneck elimination, program profiling      437—439
Bottleneck elimination, using a profiler to guide optimization      439—442
Boundary tags, coalescing with      742 741—744
Boundary tags, defined      742
Boundary tags, optimization of      743
Boundschecker      576
Bovik, Harry Q.      xxviii
Branch      157
Branch penalty      426
Branch prediction      322 397 322—323 667—671
Branch prediction and misprediction penalties      425—429
Branch prediction logic      652 670—671
Branch, switch statement      166
Branch, use of term      396—397
Bridged Ethernets      804—805
bridges      804 804—805
Brooks, Frederick Jr.      224
Browser      826
Bubble      330
Buddy      754
Buddy systems      754 754—755
Buffer overflow      206—211 760—761
Buffer overflow bugs      6 760—761
Buffer overflow, battling Microsoft via      210—211
builtin_command [CS:APP] process shell command function      617
Bus      7 463 7—8
Bus interface      464
Bus transaction      463
Bypass paths      333 333—334
Byte movement instructions, comparing      139—141
Byte order, network      809
Byte ordering      34—40
Byte ordering in disassembled code      155
Byte representation, finding      131
bytes      3 28
Bytes, order      34
C library file      53
C programming language      2—3
C programming language and system-level programming      4
C programming language, benefits of      3—4
C programming language, bit-level operations in      46—49
C programming language, floating point in      92—98
C programming language, logical operations in      49—50
C programming language, multiple data format support      33
C programming language, pointers      28
C programming language, shift operations in      50—51
C standard library      3 5 16
C++      xx 27 546 549 587—588 638
C++, reference parameters      204
Cache      12 487—523
Cache block      489
Cache block offset      713
Cache bus      487
Cache hits      485
Cache lines      488
Cache management      486
Cache memories      11—12 357 429 456 478 487—506
Cache memories and streaming media workloads      522—523
Cache memories, associativity, impact of      505—506
Cache memories, block offset bits      489
Cache memories, block size, impact of      505
Cache memories, blocks      506
Cache memories, cache bus      487
Cache memories, cache lines      488 506
Cache memories, cache sets      487—488
Cache memories, cache size, impact of      505
Cache memories, cache-friendly code, writing      507—511
Cache memories, direct-mapped caches      490—497
Cache memories, fully associative caches      499—503
Cache memories, generic organization      488—490
Cache memories, hit rate      505
Cache memories, hit time      505
Cache memories, impact of caches on program performance      511—523
Cache memories, instruction caches/unified caches      504
Cache memories, issues with writes      503—504
Cache memories, L2 cache      487
Cache memories, L3 cache      487
Cache memories, LI cache      487
Cache memories, memory mountain      512—516
Cache memories, miss penalty      505
1 2 3 4 5 6 7 8 9 10 11
blank
Реклама
blank
blank
HR
@Mail.ru
       © Электронная библиотека попечительского совета мехмата МГУ, 2004-2020
Электронная библиотека мехмата МГУ | Valid HTML 4.01! | Valid CSS! О проекте