计算机系统
赵欢 杨科华
前言
随着智能技术的飞速发展,计算机系统能力成为解决我国信息技术发展瓶颈和实施大型工程的关键。计算机系统能力是指能够利用计算机系统层面的基本原理来构建以计算机技术为核心的应用系统,以及解决实际工程问题的能力。对于计算机专业的学生来说,具备计算机系统能力是其相对其他非计算机专业学生的一大优势,这一点已得到普遍认可,并已在实践中得到证实。
本书作为“计算机系统”或“计算机系统导论”“计算机系统基础”课程的教材,从程序员的角度说明了计算机系统的基本原理及底层实现机制,期望程序员能够成为:
• 更有效率的程序员——能有效地找出并消除程序中的bug,更好地进行程序性能调优。
• 更有“底”气的程序员——能够深入了解计算机系统中的一些底层实现,能够结合计算机的底层实现写出更可靠、更安全的程序。
• 更为全面的程序员——为后续的计算机“系统”级课程做好准备,提高解决复杂问题、设计复杂系统的能力。
虽然不同计算机系统的硬件和软件千差万别,但计算机系统的构建原理以及在计算机系统上的程序转换和执行机理是相通的,因而,本书仅介绍一种特定计算机系统平台下的相关内容。本书所用的环境为IA-32/x86-64+Linux+GCC+C语言。
全书共11章,旨在阐述计算机系统的核心概念。
第1章是计算机系统概论,介绍计算机系统的基本功能和基本组成、程序的开发与执行过程、计算机系统层次结构等内容。
第2章介绍计算机系统是如何用二进制来表示信息的,以及如何通过上下文来将同样的二进制字节序列识别为不同的数据对象。
第3章将实际的计算机系统分别抽象描述成一个最小系统与原型系统,并在这两个系统上讨论程序的执行过程。
第4章介绍汇编语言的概念与特点,并详细讲解了ATT汇编语言的典型指令。
第5章以整数与浮点数为例说明如何利用不同的二进制编码来实现对不同数据的存储和表达。
第6章介绍程序的机器级表示,通过对比C语言代…