Ãëàâíàÿ    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
Ïðåäìåòíûé óêàçàòåëü
Linking, relocation, of absolute references      560—561
Linking, relocation, of PC-relative references      559—560
Linking, relocation, of sections and symbol definitions      557
Linking, relocation, of symbol references within sections      558—561
Linking, relocation, steps in      557—558
Linking, shared libraries, from applications      568—570
Linking, static      542—543
Linking, symbols/symbol tables      545—548
Linux operating system      5 8 18
Linux operating system, kernel virtual memory      721
Linux operating system, origin of      18
Linux operating system, page fault exception handling      723—724
Linux operating system, page tables      721—722
Linux operating system, virtual memory areas (segments)      722—723
Linux operating system, virtual memory system      721—724
Linux operating system, Web page      21
Lisp programming languages      66
listen [Unix] convert active socket to listening socket      820
Listening descriptors, compared to connected descriptors      823
listening socket      821
Little Endian      34 34—35
Load Effective Address      143—144
Load forwarding, in PIPE      364
load instruction      434—435
Load interlock      337
Load time      540
Load/store architecture      264
Load/use hazards      343
Load/use hazards, handling by stalling      336
Load/use hazards, load interlock      337
loaders      542 564
Loaders, how they work      565—566
Loading      564
Local area network (LAN)      803
Local automatic variables      870
Local static variables      870
Local symbols      546
Locality      478 456 478—482 700—701
Locality of instruction fetches      480—481
Locality of references to program data      478—480
Locality, exploiting in programs      523—524
Locality, principle of      478
Locality, spatial      478
Locality, summary of      481—482
Locality, temporal      478
Lock-and-copy      887
Locking a mutex      878
logic design      271—280
Logic design, combinational circuits      272—274
Logic design, word-level combinational circuits      274—278
Logic gate      271
Logic synthesis      271
Logic synthesis programs      271
Logic, combinational      309
logical blocks      471
Logical control flow      594 594—595
Logical flow      594
Logical operations in C      49—50
long double [C] long double type      135
long int [C] long int type      135
long [C] long integer type      8 33 51
longjmp [C Stdlib] nonlocal jump      635 637
Lookback address      812
Loop inefficiencies, eliminating      387—391
Loop overhead, reducing      408—412
Loop splitting      415—420
Loop unrolling      409 382
Loops      158—166 183
Loops and temporal/spatial locality      481
Loops for loops      164—166
Loops while loops      161—163
Loops, do-while loops      158—160
Loops, rearranging to increase spatial locality      517—520
Lower-case conversion routines      389
Lower-case conversion routines, comparative performance of      390
Lower-case conversion routines, LRU replacement policy      485
Lower-case conversion routines, Lvalue assignable value      201
Machine check exception      593
Machine-language instructions      4
Machine-level code      129—130
Machine-level representation of programs      123—252
Machine-level representation of programs and C programming language      124
Machine-level representation of programs, accessing information      136—143
Machine-level representation of programs, accessing information, data movement example      141—143
Machine-level representation of programs, accessing information, data movement, instructions      138—141
Machine-level representation of programs, accessing information, operand specifiers      137—138
Machine-level representation of programs, alignment      198—200
Machine-level representation of programs, alignment, and Microsoft Windows      199
Machine-level representation of programs, arithmetic and logical operations      143—148
Machine-level representation of programs, arithmetic and logical operations, binary operations      143—145
Machine-level representation of programs, arithmetic and logical operations, Load Effective Address      143—144
Machine-level representation of programs, arithmetic and logical operations, shift operations      145—146
Machine-level representation of programs, arithmetic and logical operations, special arithmetic operations      147—148
Machine-level representation of programs, arithmetic and logical operations, unary operations      143—145
Machine-level representation of programs, array allocation and access      180—191
Machine-level representation of programs, array allocation and access, arrays and loops      183
Machine-level representation of programs, array allocation and access, basic principles      180—181
Machine-level representation of programs, array allocation and access, dynamically allocated arrays      188—191
Machine-level representation of programs, array allocation and access, fixed size arrays      186—188
Machine-level representation of programs, array allocation and access, nested arrays      183—186
Machine-level representation of programs, array allocation and access, pointer arithmetic      182—183
Machine-level representation of programs, buffer overflow      206—211
Machine-level representation of programs, control      148—170
Machine-level representation of programs, control, condition codes      149—150
Machine-level representation of programs, control, conditional branches, translating      156—158
Machine-level representation of programs, control, jump instructions/encodings      152—156
Machine-level representation of programs, control, loops      158—166
Machine-level representation of programs, control, switch statements      166—170
Machine-level representation of programs, data formats      135
Machine-level representation of programs, embedding assembly code in C programs      223—230
Machine-level representation of programs, embedding assembly code in C programs, basic inline assembly      224—226
Machine-level representation of programs, embedding assembly code in C programs, extended form of asm      226—230
Machine-level representation of programs, floating-point code      211—223
Machine-level representation of programs, floating-point code, floating-point arithmetic instructions      217—220
Machine-level representation of programs, floating-point code, floating-point data movement and conversion operations      215—217
Machine-level representation of programs, floating-point code, floating-point registers      211—212
Machine-level representation of programs, floating-point code, stack evaluation of expressions      212—215
Machine-level representation of programs, floating-point code, testing/comparing floating-point values      221—223
Machine-level representation of programs, floating-point code, using floating point in procedures      220—221
Machine-level representation of programs, heterogeneous data structures      191—198
Machine-level representation of programs, heterogeneous data structures, structures      191—194
Machine-level representation of programs, heterogeneous data structures, unions      194—198
Machine-level representation of programs, historical perspective      125—128
Machine-level representation of programs, Intel architecture      125—128
Machine-level representation of programs, Intel architecture, 80286 microprocessor      126
Machine-level representation of programs, Intel architecture, 8080 microprocessor      126
Machine-level representation of programs, Intel architecture, i386 microprocessor      126
Machine-level representation of programs, Intel architecture, i486 microprocessor      126
Machine-level representation of programs, Intel architecture, Pentium      126—127
Machine-level representation of programs, Intel architecture, Pentium 4      126—127
Machine-level representation of programs, Intel architecture, Pentium II      126
Machine-level representation of programs, Intel architecture, Pentium III      126
Machine-level representation of programs, Intel architecture, Pentium/MMX      126
Machine-level representation of programs, Intel architecture, PentiumPro      126—127
Machine-level representation of programs, out-of-bounds memory references      206—211
Machine-level representation of programs, pointers      201—204
Machine-level representation of programs, pointers, function pointers      203
Machine-level representation of programs, pointers, underlying concepts      201
Machine-level representation of programs, pointers, use in C      202
Machine-level representation of programs, procedures      170—180 178—180
Machine-level representation of programs, procedures, procedure example      174—178
Machine-level representation of programs, procedures, recursive procedures      178—180
Machine-level representation of programs, procedures, register usage conventions      173—174
Machine-level representation of programs, procedures, stack frame structure      170—171
Machine-level representation of programs, procedures, transferring control      172
Machine-level representation of programs, program encodings      128—135
Machine-level representation of programs, program encodings, code examples      130—133
Machine-level representation of programs, program encodings, formatting      133—135
Machine-level representation of programs, program encodings, machine-level code      129—130
Macroscopic events      653
Main memory      8 460 11 12 471
Main memory, accessing      463—464
Main threads      862
malloc [C Stdlib] allocate heap storage      737 16 129 189 199 731—734 746 755 763 765
mangling      549
Mapping variables to memory      870
mark function      757—758
Mark phase      757
Mark&Sweep algorithm      755
Mark&Sweep algorithm, pseudo-code for      758
Mark&Sweep garbage collectors      757 757—758
Mark&Sweep garbage collectors, TMax (maximum two's-complement number)      52
Mark&Sweep garbage collectors, UMax (maximum unsigned number)      52
Masking operations      48
McCarthy, John      755
Mcllroy, Doug      14
megahertz (MHz)      382
Memory      8
Memory allocation      702—703
Memory bus      463
memory controller      459
Memory hierarchy      72 12—13 455—536
Memory hierarchy, blocks      484
Memory hierarchy, blocks, replacing/evicting      485
Memory hierarchy, cache hits      485
Memory hierarchy, cache management      486
Memory hierarchy, cache memories      487—506
Memory hierarchy, cache memories, direct-mapped caches      490—497
Memory hierarchy, cache memories, fully associative caches      499—503
Memory hierarchy, cache memories, generic organization      488—490
Memory hierarchy, cache memories, instruction caches/unified caches      504
Memory hierarchy, cache memories, issues with writes      503—504
Memory hierarchy, cache memories, L2 cache      487
Memory hierarchy, cache memories, L3 cache      487
Memory hierarchy, cache memories, LI cache      487
Memory hierarchy, cache memories, performance impact of cache parameters      505—506
Memory hierarchy, cache memories, set associative caches      497—499
Memory hierarchy, cache misses      485—486
Memory hierarchy, caching in      484—486
Memory hierarchy, central idea of      484
Memory hierarchy, defined      482
Memory hierarchy, example of      13 483
Memory hierarchy, levels in      483
Memory hierarchy, locality      478—482
Memory hierarchy, locality, exploiting in programs      523—524
Memory hierarchy, locality, of instruction fetches      480—481
Memory hierarchy, locality, of references to program data      478—480
Memory hierarchy, locality, summary of      481—482
Memory hierarchy, mapping variables to      870
Memory hierarchy, random-access memory (RAM), memory modules      459—460
Memory hierarchy, storage technologies      457—477
Memory hierarchy, storage technologies, disk storage      464—476
Memory hierarchy, storage technologies, random-access memory (RAM)      457—464
Memory hierarchy, storage technologies, trends in      476—477
Memory hierarchy, summary of concepts      486—487
Memory hierarchy, transfer units      484
memory leaks      764
Memory management and virtual memory      701—703
Memory management and virtual memory, linking      701—702
Memory management and virtual memory, loading      703
Memory management and virtual memory, memory allocation      702—703
Memory management and virtual memory, sharing      702
Memory Management Unit (MMU)      694
Memory mapping      703 724 724—730
Memory mapping, execve function      727—728
Memory mapping, fork function      727
Memory mapping, mmap function      728—730
Memory mapping, shared objects      725—727
memory modules      459 459—460
Memory mountain      573 512—516
Memory mountain, Pentium III Xeon      514
Memory references      137
Memory references, unneeded, eliminating      393—395
Memory stage      281
Memory stage, PIPE      342
Memory stage, PIPE, logic      343
Memory stage, SEQ      291 303—304
Memory system      456
Memory utilization      735
Memory, aliasing      380
Memory, instruction processing stage      281
Memory, virtual      692 13—14 16—17 28 691—774
Memory-mapped I/O      472
Memory-mapped object      724
Memory-related bugs in C programs      759—764
Memory-related bugs in C programs, allowing stack buffer overflows      760—761
Memory-related bugs in C programs, dereferencing bad pointers      759—760
Memory-related bugs in C programs, free heap blocks, referencing data in      763
Memory-related bugs in C programs, memory leaks      764
Memory-related bugs in C programs, nonexistent variables, referencing      762
Memory-related bugs in C programs, off-by-one errors      761—762
Memory-related bugs in C programs, pointer arithmetic, misunderstanding      762
Memory-related bugs in C programs, reading uninitialized memory      760
Memory-related bugs in C programs, referencing pointers instead objects pointed to      762
Memory-related bugs in C programs, same-size pointers and objects      761
mem_brk [CS:APP] top of heap      744
mem_init [CS:APP] initialize heap      744
mem_sbrk [CS:APP] extend heap      744
Metadata      789
MHz (megahertz)      382
mhz [CS:APP] clock rate function      665
Microscopic events      653
Microseconds ($\mu s$)      653
Middle bits, indexing with      496—497
Milliseconds (ms)      653
MIME types      827
Minimum block size      739
MIPS Technologies      358
Mispredicted branches      343—344 349
Mispredicted branches, processing      346
Miss penalty      505
Miss rate      505
mmap [Unix] map disk object      728 703 723 728—729
MMU (Memory Management Unit)      694
mm_coalesce [CS:APP] merge memory blocks      749
mm_free [CS:APP] free memory blocks      749 748—749
mm_ijk [CS:APP] matrix multiply      518
mm_ikj [CS:APP] matrix multiply      518
mm_init [CS:APP] allocator: initialize heap      747
mm_jik [CS:APP] matrix multiply      518
mm_jki [CS:APP] matrix multiply      518
mm_ki j [CS:APP] matrix multiply      518
mm_kji [CS:APP] matrix multiply      518
mm_malloc [CS:APP] allocate memory block      750
Mockapetris, Paul      816
Mode bit      596
Mode, kernel      589 597 596 655
Mode, supervisor      596
Mode, user      590 597 596 655
Modern processors      395—408
Modern processors, block diagram of      396
Modern processors, functional unit performance      399—400
Modern processors, overall operation      395—399
Modern processors, processing of operations by the EU      402—403
Modern processors, processor operation      400—408
Modern processors, translating instructions into operations      401—402
Monitor      882
Monotonically nondecreasing assumption, relaxing      736
Monotonicity      92
Moore's law      727 127—128
Moore, Gordon      127
motherboard      8
mountain [CS:APP] generate memory mountain      513
Mouse      8
movb [IA32] move byte      139
movl [IA32] move double word      138 139
movsbl [IA32] move and sign-extend byte to double word      139
movw [IA32] move word      139
movzbl [IA32] move and zero-extend byte to double word      139
mull [IA32] unsigned multiply      747 147—48
1 2 3 4 5 6 7 8 9 10 11
blank
Ðåêëàìà
blank
blank
HR
@Mail.ru
       © Ýëåêòðîííàÿ áèáëèîòåêà ïîïå÷èòåëüñêîãî ñîâåòà ìåõìàòà ÌÃÓ, 2004-2024
Ýëåêòðîííàÿ áèáëèîòåêà ìåõìàòà ÌÃÓ | Valid HTML 4.01! | Valid CSS! Î ïðîåêòå