Friday, October 26, 2007

Computer Systems: A Programmer's Perspective



This book (CS:APP) stems from an introductory systems course that we developed at Carnegie Mellon University in the Fall of 1998, called "Introduction to Computer
Systems" (ICS). The presentation is based on the following principles, which aim to help the students become better programmers and to help prepare them for upper-level systems courses:

* Students should be introduced to computer systems from the perspective of a programmer, rather from the more traditional perspective of a system implementer.
* Students should get a view of the complete system, comprising the hardware, operating system, compiler, and network.
* Students learn best by developing and evaluating real programs that run on real machines.



We cover data representations, machine level representations of C programs, processor architecture, program optimizations, the memory hierarchy, linking, exceptional control flow (exceptions, interrupts, processes, and Unix signals), performance measurement, virtual memory and memory management, system-level I/O, basic network programming, and basic concurrent programming. These concepts are supported by series of fun and hands-on lab assignments. See the manuscript Preface for more details.

Contents:
I Program Structure and Execution
2 Representing and Manipulating Information
3 Machine-Level Representation of C Programs
4 Processor Architecture
5 Optimizing Program Performance
6 The Memory Hierarchy
II Running Programs on a System
7 Linking
8 Exceptional Control Flow
9 Measuring Program Execution Time
10 Virtual Memory
III Interaction and Communication Between Programs
11 Concurrent Programming with Threads
12 Network Programming
A Error handling
B Solutions to Practice Problems





Or here





No comments: