Search results

RSS feed for this result

4 results

Book
xxxvi, 1084 pages : illustrations (some color) ; 24 cm
  • Part I: Program Structure and Execution Chapter 1: A Tour of Computer Systems Chapter 2: Representing and Manipulating Information Chapter 3: Machine-Level Representation of Programs Chapter 4: Processor Architecture Chapter 5: Optimizing Program Performance Chapter 6: The Memory Hierarchy Part II: Running Programs on a System Chapter 7: Linking Chapter 8: Exceptional Control Flow Chapter 9: Virtual Memory Part III: Interaction and Communication Between Programs Chapter 10: System-Level I/O Chapter 11: Network Programming Chapter 12: Concurrent Programming Appendix Error Handling.
  • (source: Nielsen Book Data)9780134092669 20160619
&>standalone product; MasteringEngineering(R) does not come packaged with this content. If you would like to purchase both the physical text and MasteringEngineering search for 0134123832 / 9780134123837 Computer Systems: A Programmer's Perspective plus MasteringEngineering with Pearson eText - Access Card Package, 3/e Package consists of: *013409266X/9780134092669 Computer Systems: A Programmer's Perspective, 3/e *0134071921/9780134071923 MasteringEngineering with Pearson eText -- Standalone Access Card -- for Computer Systems: A Programmer's Perspective, 3/e MasteringEngineering should only be purchased when required by an instructor. For courses in Computer Science and Programming Computer systems: A Programmer's Perspective explains the underlying elements common among all computer systems and how they affect general application performance. Written from the programmer's perspective, this book strives to teach readers how understanding basic elements of computer systems and executing real practice can lead them to create better programs. Spanning across computer science themes such as hardware architecture, the operating system, and systems software, the Third Edition serves as a comprehensive introduction to programming. This book strives to create programmers who understand all elements of computer systems and will be able to engage in any application of the field--from fixing faulty software, to writing more capable programs, to avoiding common flaws. It lays the groundwork for readers to delve into more intensive topics such as computer architecture, embedded systems, and cybersecurity. This book focuses on systems that execute an x86-64 machine code, and recommends that programmers have access to a Linux system for this course. Programmers should have basic familiarity with C or C++. Also available with MasteringEngineering MasteringEngineering is an online homework, tutorial, and assessment system, designed to improve results through personalized learning. This innovative online program emulates the instructor's office hour environment, engaging and guiding students through engineering concepts with self-paced individualized coaching With a wide range of activities available, students can actively learn, understand, and retain even the most difficult concepts. Students, if interested in purchasing this title with MasteringEngineering, ask your instructor for the correct package ISBN and Course ID. Instructors, contact your Pearson representative for more information.
(source: Nielsen Book Data)9780134092669 20160619
Engineering Library (Terman)
CS-107-01
Book
xxxiv, 1043 p. : ill. ; 24 cm.
For Computer Systems, Computer Organization and Architecture courses in CS, EE, and ECE departments. Few students studying computer science or computer engineering will ever have the opportunity to build a computer system. On the other hand, most students will be required to use and program computers on a near daily basis. Computer Systems: A Programmer's Perspective introduces the important and enduring concepts that underlie computer systems by showing how these ideas affect the correctness, performance, and utility of application programs. The text's hands-on approach (including a comprehensive set of labs) helps students understand the "under-the-hood" operation of a modern computer system and prepares them for future courses in systems topics such as compilers, computer architecture, operating systems, and networking. Visit the CSS:AP web page http://csapp.cs.cmu.edu for more information and resources.
(source: Nielsen Book Data)9780136108047 20160603
Engineering Library (Terman)
CS-107-01
Book
xxix, 978 p. : ill. (some col.) ; 24 cm.
  • (NOTE: Each chapter concludes with Summary.) Preface. 1. A Tour of Computer Systems. Information Is Bits + Context. Programs Are Translated by Other Programs into Different Forms. It Pays to Understand How Compilation Systems Work. Processors Read and Interpret Instructions Stored in Memory. Caches Matter. Storage Devices Form a Hierarchy. The Operating System Manages the Hardware. Systems Communicate with Other Systems Using Networks. The Next Step. I. PROGRAM STRUCTURE AND EXECUTION. 2. Representing and Manipulating Information. Information Storage. Integer Representations. Integer Arithmetic. Floating Point. 3. Machine-Level Representation of Programs. A Historical Perspective. Program Encodings. Data Formats. Accessing Information. Arithmetic and Logical Operations. Control. Procedures. Array Allocation and Access. Heterogeneous Data Structures. Alignment. Putting It Together: Understanding Pointers. Life in the Real World: Using the GDB Debugger. Out-of-Bounds Memory References and Buffer Overflow. Floating-Point Code. Embedding Assembly Code in C Programs. 4. Processor Architecture. The Y86 Instruction Set Architecture. Overview of Logic Design and the Hardware Control Language. A Sequential Implementation. General Principles of Pipelining. Pipelined Implementations. 5. Optimizing Program Performance. Capabilities and Limitations of Optimizing Compilers. Expressing Program Performance. Program Example. Eliminating Loop Inefficiencies. Reducing Procedure Calls. Eliminating Unneeded Memory References. Understanding Modern Processors. Reducing Loop Overhead. Converting to Pointer Code. Enhancing Parallelism. Putting It Together: Summary of Results for Optimizing Combining Code. Branch Prediction and Misprediction Penalties. Understanding Memory Performance. Life in the Real World: Performance Improvement Techniques. Identifying and Eliminating Performance Bottlenecks. 6. The Memory Hierarchy. Storage Technologies. Locality. The Memory Hierarchy. Cache Memories. Writing Cache-Friendly Code. Putting It Together: Exploiting Locality in Your Programs. II. RUNNING PROGRAMS ON A SYSTEM. 7. Linking. Compiler Drivers. Static Linking. Object Files. Relocatable Object Files. Symbols and Symbol Tables. Symbol Resolution. Relocation. Executable Object Files. Loading Executable Object Files. Dynamic Linking with Shared Libraries. Loading and Linking Shared Libraries from Applications. Position-Independent Code (PIC). Tools for Manipulating Object Files. 8. Exceptional Control Flow. Exceptions. Processes. System Calls and Error Handling. Process Control. Signals. Nonlocal Jumps. Tools for Manipulating Processes. 9. Measuring Program Execution Time. The Flow of Time on a Computer Systems. Measuring Time by Interval Counting. Cycle Counters. Measuring Program Execution Time with Cycle Counters. Time-of-Day Measurements. Putting It Together: An Experimental Protocol. Looking into the Future. Life in the Real World: An Implementation of the K-Best Measurement Scheme. Lessons Learned. 10. Virtual Memory. Physical and Virtual Addressing. Address Spaces. VM as a Tool for Caching. VM as a Tool for Memory Management. VM as a Tool for Memory Protection. Address Translation. Case Study: The Pentium/Linux Memory System. Memory Mapping. Dynamic Memory Allocation. Garbage Collection. Common Memory-Related Bugs in C Programs. Recapping Some Key Ideas about Virtual Memory. III. INTERACTION AND COMMUNICATION BETWEEN PROGRAMS. 11. System-Level I/O. Unix I/O. Opening and Closing Files. Reading and Writing Files. Robust Reading and Writing with the R10 Package. Reading File Metadata. Sharing Files. I/O Redirection. Standard I/O. Putting It Together: Which I/O Functions Should I Use? 12. Network Programming. The Client-Server Programming Model. Networks. The Global IP Internet. The Sockets Interface. Web Servers. Putting It Together: The TINY Web Server. 13. Concurrent Programming. Concurrent Programming with Processes. Concurrent Programming with I/O Multiplexing. Concurrent Programming with Threads. Shared Variables in Threaded Programs. Synchronizing Threads with Semaphores. Putting It Together: A Concurrent Server Based on Pre-Threading. Other Concurrency Issues. Appendix A. HCL Descriptions of Processor Control Logic. HCL Reference Manual. SEQ. SEQ+. PIPE. Appendix B. Error Handling. Error Handling in Unix Systems. Error-Handling Wrappers. The csapp .h Header File. The csapp .c Source File.
  • (source: Nielsen Book Data)9780130340740 20160528
For Computer Organization and Architecture and Computer Systems courses in CS and EE and ECE departments. Developed out of an introductory course at Carnegie Mellon University, this text explains the important and enduring concepts underlying all computer systems, and shows the concrete ways that these ideas affect the correctness, performance, and utility of application programs. The text's concrete and hands-on approach will help students understand what is going on "under the hood" of a computer system.
(source: Nielsen Book Data)9780130340740 20160528
Engineering Library (Terman)
CS-107-01
Book
xii, 272 p. : ill. ; 24 cm.
Introduces the features of the C programming language, discusses data types, variables, operators, control flow, functions, pointers, arrays, and structures, and looks at the UNIX system interface.
(source: Nielsen Book Data)9780131103702 20160609
Engineering Library (Terman), eReserve
CS-107-01