本书共6章。第1章是计算机系统的导论,讲述为计算机系统的形成奠定重要基础的人物及事件,并介绍计算机系统中的几个关键概念。第2章阐述计算机系统中的信息表示,以自顶向下的方法揭示抽象数据和高级语言程序到物理的机器级表示之间的层次转换关系。第3章介绍计算机系统中的硬件基本组成,计算机硬件自底向上的层次关系以及计算机系统结构。第4章介绍高级语言程序转换成计算机硬件语言指令集组合的工作原理,并考察代码优化与计算机硬件之间的内在关系。第5章介绍计算机系统中的核心软件——操作系统,并通过一个高级语言示例程序,揭示应用程序、操作系统与计算机硬件之间的交互机制。第6章介绍计算机网络系统中的关键内容,以全球*大的网络——Internet和当前迅猛发展的移动互联网络系统为线索,阐述多计算机系统之间的软、硬件交互机制和工作原理。
本书以“层次转换”的方法介绍与计算机系统相关的核心概念和基本原理,试图帮助初学者建立计算机系统的整体概念及“系统观”。本书共分6章,主要内容包括计算机系统发展简史、数据和程序的机器级表示、数字逻辑基础、冯?诺依曼结构与哈佛结构、计算机组成与指令集结构、编译器工作原理、虚拟内存、上下文切换、Internet原理、无线网络及移动社交网络系统等。
本书可用作高等院校计算机专业和物联网工程等相关专业学生的入门教材,也可作为计算机专业人士和技术人员的参考书。
随着移动互联网、物联网和云计算的快速发展,全社会范围的计算机化显著增强,而如何培养担当这些技术发展重任的计算机专业人才的问题,国内外的专家学者和一批计算机界的有识之士进行了深入的研究和有益的探讨。其中一个重要的共识是: 与其他专业相比,计算机专业的人才培养应该更加突出“系统思维”,应该使学生能站在计算机系统整体的高度解决今后面临的应用问题。
作为西北工业大学计算机学院教学改革和陕西省教育厅本科高校“专业综合改革试点”项目中具体落实建设思路的关键内容,本书就计算机专业学生如何建立“系统观”提供了一条学习途径。与目前国内外出版的计算机系统基础类书籍相比,本书有两个基本特色: 第一,试图结合自顶向下和自底向上两种方法,阐述计算机系统的基本概念和原理。综合程序员视角和系统构建视角的核心内容,讲授计算机系统各层次之间的转换。同时,不拘泥于单计算机系统内部,而面向更加开放的网络分布式计算环境,实现计算机系统含义的延展;第二,结合国内多年一线教学实践经验及本科计算机专业课程总学时规划的现实需求,对“系统观”和“程序与计算思维”进行统筹考虑和设计,使与之对应的“计算机系统基础”与“程序设计基础”课程相互呼应、相互配合。同时,在内容设计上做好后续计算机专业核心课程(数字逻辑、计算机组成原理、数据结构、编译原理、操作系统和计算机网络)的知识铺垫。
编写本书的主要动机是让刚进入大学校门的学生,在一开始学习计算机专业课程时就对构成计算机专业基础的“计算机系统”有一个整体的、全局的和较为深入的理解,这是一项具有挑战性的任务。我们希望本书有助于具有相关教学经验的老师交流关于如何培养学生“系统思维”能力的见解,为进一步促进计算机专业人才培养贡献一份力量。
本书共6章。第1章是计算机系统的导论,讲述为计算机系统的形成奠定重要基础的人物及事件,并介绍计算机系统中的几个关键概念。第2章阐述计算机系统中的信息表示,以自顶向下的方法揭示抽象数据和高级语言程序到物理的机器级表示之间的层次转换关系。第3章介绍计算机系统中的硬件基本组成,计算机硬件自底向上的层次关系以及计算机系统结构。第4章介绍高级语言程序转换成计算机硬件语言指令集组合的工作原理,并考察代码优化与计算机硬件之间的内在关系。第5章介绍计算机系统中的核心软件——操作系统,并通过一个高级语言示例程序,揭示应用程序、操作系统与计算机硬件之间的交互机制。第6章介绍计算机网络系统中的关键内容,以全球最大的网络——Internet和当前迅猛发展的移动互联网络系统为线索,阐述多计算机系统之间的软、硬件交互机制和工作原理。
本书是多人智慧的结晶,由张羽和黄小平编著。此外,参加本书编写的人员还有张艳、郭丽、姚朋宾、刘永吉、王时雨、李林、庞晓旭、魏明菲、张谦、覃伟等。本书也是多年讲义的实践成果与积淀,感谢各位同仁和各届学生对本书原讲义内容所提出的宝贵反馈和改进意见。
感谢清华大学出版社和西北工业大学在本书编写过程中提供的支持。特别感谢本书的责任编辑清华大学出版社的张民和战晓雷老师,他们极其专业细致的审校和编辑工作为本书的出版质量提供了可靠的保证。
由于计算机系统相关技术的不断发展,加之作者水平有限,书中难免存有不足之处,恳请广大读者批评指正。
第1章绪论/1
1.1计算机系统发展简史/1
1.1.1计算机系统硬件发展史/1
1.1.2计算机系统软件发展史/9
1.2计算机系统概述/29
1.2.1计算机系统概念/29
1.2.2本书结构/35
习题/36第2章计算机系统中信息表示/37
2.1数据的机器级表示/37
2.1.1位和数据类型/37
2.1.2整数数据类型/38
2.1.3字符数据类型/40
2.1.4浮点类型/42
2.1.5十六进制表示法/43
2.1.6基本运算举例/44
2.2程序的机器级表示/47
2.2.1数据格式/50
2.2.2数据访问/51
2.2.3算术和逻辑操作/55
2.2.4控制/58
2.2.5过程/74
2.2.6数组分配和访问/79
2.2.7结构和联合/84
习题/88第3章计算机系统硬件/90
3.1数字逻辑基础/91
3.1.1数字硬件/91
3.1.2逻辑基础/92
3.1.3晶体管开关/96
3.2冯·诺依曼结构与哈佛结构/99
3.3计算机系统组成/100
3.3.1计算机基本组成/100
3.3.2微处理器/102
3.3.3存储器/104
3.3.4输入输出以及总线/107
3.4计算机指令集体系结构/110
3.4.1指令集体系结构概念/110
3.4.2指令集分类和设计/111
3.4.3几种典型的指令集/113
习题/116第4章编译系统/118
4.1计算机系统中的语言处理/118
4.1.1编译器/119
4.1.2汇编器/120
4.2编译器前端技术/121
4.2.1词法分析/122
4.2.2语法分析/123
4.2.3语法制导翻译/127
4.2.4符号表/128
4.3目标代码生成/131
4.3.1代码生成/131
4.3.2代码优化/132
习题/133第5章操作系统/134
5.1计算机操作系统概述/134
5.1.1操作系统的定义、功能
以及基本特征/134
5.1.2操作系统的分类/138
5.1.3用户与操作系统的接口/142
5.2操作系统和应用程序的启动/144
5.2.1操作系统启动/144
5.2.2应用程序启动/147
5.3应用程序、操作系统、系统硬件的交互/148
5.3.1交互概述/148
5.3.2输入和输出/153
5.3.3文件与目录/156
5.3.4虚拟存储器/160
5.3.5上下文切换/169
习题/170第6章计算机网络系统/171
6.1因特网原理/171
6.1.1什么是因特网/171
6.1.2网络边缘/176
6.1.3网络核心/179
6.1.4协议层次及其服务模型/183
6.2因特网技术基础/188
6.2.1TCP/IP协议/188
6.2.2IP地址/189
6.2.3域名系统/191
6.2.4客户/服务器模式/194
6.3无线网络原理/195
6.3.1无线网络概述/195
6.3.2无线通信/196
6.3.3无线网络拓扑/198
6.4无线网络实例/202
6.4.1WiFi: IEEE 802.11无线局域网/202
6.4.2IEEE 802.11以外的标准:
蓝牙和WiMAX/205
6.4.3蜂窝网络/207
6.4.4无线传感器网络/211
6.4.5无线Mesh网络/217
6.5社交网络基础/223
6.5.1社交网络的发展/224
6.5.2在线社交网络/226
6.5.3移动社交网络/231
习题/235参考文献/236