The English version of this book has been famous. He is called "the greatest computer textbook" by many professionals. The famous American Carnegie University's Computer Science Department has always used this book as a teaching material. The thorough story of programmer's eyes The Ding's work. Author Randal E. Bryant is Director of Computer Science, ACM and IEEE Double Academic Secretary, ACM and IEEE Double Academy (FELLOW), which has received many ACMs and IEEE awards. This book is divided into thirteen chapters, which introduces the representation and processing of information. The machine-level representation of the program, the processor architecture, memory hierarchy, static and dynamic links, virtual storage, system level I / O, network programming and concurrency Programming and other exciting content. Its purpose is to explain all the essential concepts of the computer system and show the reader how these concepts actually affect the correctness, performance and practicality of the application. Unlike other systematic books that are primarily for system constructors, this book is written to programmers, which is described from the perspective of programmers. This book has a bridge between software and hardware, which gives a way to help readers understand a program and its behavior from hardware and software, which also fills a domestic computer system teaching. blank. The biggest advantage of this book is to help readers understand the concept, let readers construct a layer-type computer system in their minds, representation from the lowest layer data in memory (as we have been strange floating point number), to the pipeline instruction Composition, to the virtual memory, to the compilation system, to the dynamic load library, to the final user application. This book provides a large number of examples and exercises and some answers. It is particularly worth mentioning that there is a corresponding pen or program trial for each basic concept, deepening the reader's understanding. Chapter 1 Computer System Roam 1.1 Information is Bit Context 1.2 Program Translated into Different Formats by Other Programs 1.3 How to work on how to work is a greatly beneficial 1.4 processor read and interpret the instructions stored in memory 1.4.1 system Hardware composition 1.4.2 Execution Hello Program 1.5 Cache 1.6 Forming hierarchy storage device 1.7 Operating System Management Hardware 1.7.1 Process 1.7.2 Thread 1.7.3 Virtual Memory 1.7.4 File 1.8 Using Network Systems and Other System Communication 1.9 Step 1.10 Summary reference
Chapter 2Inotation representation and processing 2.1 Information Storage 2.2 Integer Representation 2.3 Integer Operation 2.4 Floating Point 2.5 Split Reference Document Description Household Practice Questions Answer Chapter 3 Program 3.1 History 3.2 Program Coding 3.3 Data Format 3.4 Access Information 3.5 Arithmetic and Logic Operation 3.6 Control 3.7 Procedure 3.8 Arrange Distribution and Accessing 3.9 Alignment 3.11 Comprehensive: Understanding Pointer 3.12 Real Life: Using GDB Debugger 3.13 Memory Offshore reference and buffer overflow 3.14 * floating point Code 3.15 * Included in the C program 3.16 Split Chapter 4 Processor Architecture 4.1 Y86 Instruction Collective Structure 4.2 Logic Design and Hardware Control Language HCl 2714.3 Y86 Sequence Differential Principles Implementation 4.5 Y86 Tail Implementation 4.6 Sproduction Chapter 5 Optimizer Performance 5.1 Optimized Compiler Ability and Limitations 5.2 Representation Program Performance 5.3 Program Example 5.5 Low Efficiency 5.5 Reduction Procedure Call 5.6 Elimination Unnecessary Memory Reference 5.7 Understanding Modern Processor 5.8 Reduce Cycles Overhead 5.9 Conversion to Pointer Code 5.11 Improve Parallelism 5.11 Comprehensive: Optimizing Merge Code Effect Skinding 5.12 Branch Prediction and Prediction Error Punishment 5.13 Understanding Monitor Performance 5.14 Realistic Life: Performance Improvement Technology 5.15 Confirmation and Elimination Performance Bottleneck 5.16 Split Chapter 6 Memory Hierarchical Structure 6.1 Storage Technology 6.2 Partial 6.3 Memory Hierarchy 6.4 Cache 6.5 Writing Cache Friendly Code 6.6 Comprehensive: The effect of cache on program performance 6.7 Comprehensive: Using the localities in your program 6.8 Split reference document Description Homework exercises Answer
Chapter 7 Links 7.1 Compiler Drivers 7.2 Static Links 7.3 Target Files 7.4 Repetitive Locable Dediced Data Files 7.5 Symbols and Symbol Table 7.6 Symbol Resolution 7.7 Refillation 7.8 Executable Target File 7.9 Loading Executive Target File 7.10 Dynamic Link Sharing Library 7.11 From Apply Loading and link sharing libraries 7.12 * Unrelated code (PIC) 7.13 Tool 7.14 Small knot
Chapter 8 Abnormal Control Flow 8.1 Exception 8.2 Process 8.3 System Call and Error Process 8.4 Process Control 8.5 Signal 8.6 Non-Local Jump 8.7 Tools for Processes 8.8 Summary
Chapter 9 Measurement Program Execution Time 9.1 Time Stream on Computer System 9.2 Measurement Time 9.3 Period Ratio 9.4 Periodic Counter Measurement Time 9.5 Measurement of GetTimeOfDay Function 9.6 Comprehensive: A Experiment Agreement 9.7 Outlook for the future 9.8 Realistic life: K times Optimal Measurement Method 9.9 Get lessons 9.10 Split Chapter 10 Virtual Memory 10.1 Physical and Virtual Address 10.2 Address Space 10.3 VM As the Cache Tool 10.5 VM as Memory Tool 10.5 VM as a memory Protection tool 10.6 address translation 10.7 Case Study: Pentium / Linux Memory System 10.8 Memory Mapping 10.9 Dynamic Memory Allocation 10.10 Waste Collection 10.11 C Program The Common Passage Related Errors 10.12 Advance Review Review Key Concept of Virtual Memory 10.13 Split 11 System Level I / O 11.1 Unix I / O 11.2 Opening and Off File 11.3 Reading and Write File 11.4 Creating a Strong Read and Write 11.5 Read File Data 11.6 Shared File 11.7 I / O Redirection 11.8 Standard I / O 11.9 Comprehensive: Which I / O functions I should use? 11.10 Summary Chapter 12 Network Programming 12.1 Client - Server Programming Model 12.2 Network 12.3 Global IP Internet 12.4 Socket Interface 12.5 Web Server 12.6 Comprehensive: Tiny Web Server 12.7 Split Chapter 13 Concurrent Programming 13.1 Processes Based Concurrent Programming 13.2 Based on I / O multi-channel multiplexed concurrent programming 13.3 Thread-based concurrent programming 13.5 Shared variables in multi-threaded program 13.6 Sample Syndrome Thread 13.6 Synthesis: SLRC 13.7 Other Component Problems 13.8 Split Reference Reference Description Family Job exercise exercises answer Appendix A processor control logic HCL Description A.1 HCL Reference Manual A.2 SEQ A.3 SEQ A.4 PIPE
Appendix B Error Processing B.1 Unix System Error Process B.2 Error Processing Package B.3 CsApp.h Header B.4 CsApp.c Source File