登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入   新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2024年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書

『簡體書』计算机系统基础(基于LoongArch指令系统)

書城自編碼: 4121979
分類:簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 袁春风、鲍培明
國際書號(ISBN): 9787302686033
出版社: 清华大学出版社
出版日期: 2025-05-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 86.9

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
地下结构抗震设计理论与方法
《 地下结构抗震设计理论与方法 》

售價:HK$ 294.8
1848:欧洲革命之年
《 1848:欧洲革命之年 》

售價:HK$ 196.9
克林索尔的最后一个夏天(精装刷边版,黑塞自传式小说)
《 克林索尔的最后一个夏天(精装刷边版,黑塞自传式小说) 》

售價:HK$ 49.5
东岸纪事
《 东岸纪事 》

售價:HK$ 86.9
财富聚变时代: 发掘逆周期的生存智慧
《 财富聚变时代: 发掘逆周期的生存智慧 》

售價:HK$ 85.8
组合数、递推序列与同余式
《 组合数、递推序列与同余式 》

售價:HK$ 184.8
自由之困:非自由主义如何塑造美国历史
《 自由之困:非自由主义如何塑造美国历史 》

售價:HK$ 107.8
零号琴(日本科幻大师飞浩隆花十年写的长篇代表作!2019年星云奖*佳长篇小说得主!)
《 零号琴(日本科幻大师飞浩隆花十年写的长篇代表作!2019年星云奖*佳长篇小说得主!) 》

售價:HK$ 99.0

編輯推薦:
本书作者在计算机系统领域有着丰富的教学与实践经验,特别是在计算机系统能力培养方面有着令人瞩目的成果和影响力。
本书主要介绍与计算机系统相关的核心概念及其关联关系。主线分明,系统性强。从程序员视角出发,以程序的编译转换、链接加载和执行过程为主线进行介绍;强调指令集架构与系统各层次之间的关联,将LoongArch指令系统以及基于LoongArch架构和Linux平台的ABI规范融入全书各章节,并提供大量典型习题以供读者练习。
本书基于龙芯架构LoongArch指令系统,采用LoongArch Linux GCC C语言开发环境,主要介绍与计算机系统相关的核心概念及其关联关系。主要内容包括数据的表示和运算、程序的转换和指令系统、程序的机器级表示、程序的链接和加载执行、存储器层次结构、虚拟存储器、进程控制和异常控制流、I/O操作的实现等。本教材将从程序员视角出发,基于单处理器计算机系统各抽象层之间的关联关系,以可执行文件的生成和加载、进程的正常执行和异常处理、应用程序中I/O操作的底层实现机制、硬件与操作系统之间的协同关系为主要内容,重点构建计算机系统各抽象层之间的系统级关联知识体系,
內容簡介:
本书主要介绍与计算机系统相关的基础性内容和核心概念,解释这些概念如何相互关联并最终影响程序执行的结果和性能。本书共9章,主要包括数据的表示和运算、LoongArch指令系统、程序的转换及机器级表示、程序的链接和加载执行、存储器层次结构、虚拟存储器、进程控制和异常控制流以及I/O操作的实现等内容。 來源:香港大書城megBookStore,http://www.megbook.com.hk
本书内容详尽,概念清楚,通俗易懂,实例丰富,并提供大量典型习题以供读者练习。本书可以作为高等学校计算机专业本科学生计算机系统方面的基础性教材,也可以作为有关专业研究生或计算机技术人员的参考书。
關於作者:
袁春风,南京大学二级教授,CCF杰出教育奖、-华为“智能基座”优秀教师奖、宝钢优秀教师奖和系统能力培养杰出贡献奖获得者,南京大学赵世良讲座教授。目前任“101计划”计算机系统导论课程建设及虚拟教研室负责人、中国开放指令生态(RISC-V)联盟人才发展组组长、CCF体系结构专委会委员、江苏省计算机学会体系结构专委会副主任。在相关领域承担科研项目50多项,发表科研论文100多篇,两次获江苏省科技进步二等奖。发表教改论文20多篇;获国家级教学成果一等奖、二等奖各1项、江苏省教学成果特等奖2项、二等奖1项、国家优秀教材二等奖1项;主持国家精品课程和国家精品资源共享课各1门;主持国家级线上一流课程2门、江苏省精品课程和线下一流课程1门;主编国家级规划教材1套、江苏省精品教材和培优教材各1本、江苏省重点建设教材2本;主持的2门网络课程分别获得江苏省多媒体课件特等奖和江苏省网络课件大赛一等奖。
目錄
第1章计算机系统概述1
1.1计算机系统基本工作原理1
1.1.1冯·诺依曼结构基本思想1
1.1.2冯·诺依曼机基本结构2
1.1.3程序和指令的执行过程3
1.2程序的开发与运行5
1.2.1程序设计语言和翻译程序5
1.2.2从源程序到可执行文件7
1.2.3可执行文件的启动和执行8
1.3计算机系统的层次结构10
1.3.1计算机系统抽象层的转换10
1.3.2计算机系统核心层之间的关联12
1.3.3计算机系统的不同用户13
1.4计算机系统性能评价15
1.4.1计算机性能的定义15
1.4.2计算机性能的测试16
1.4.3用指令执行速度进行性能评估18
1.4.4用基准程序进行性能评估19
1.4.5阿姆达尔定律20
1.5本章小结21
习题21
第2章数据的机器级表示与处理24
2.1数制和编码24
2.1.1信息的二进制编码24
2.1.2进位计数制26
2.1.3定点数与浮点数29
2.1.4定点数的编码表示30
2.2整数的表示34
2.2.1无符号整数和带符号整数的表示34
2.2.2C语言中的整数及其相互转换34
2.3浮点数的表示36
2.3.1浮点数的表示范围37
2.3.2浮点数的规格化37
2.3.3IEEE 754浮点数标准38
2.3.4C语言中的浮点数类型41
2.4非数值数据的编码表示43
2.4.1逻辑值43
2.4.2西文字符43
2.4.3汉字字符44
2.5数据的宽度和存储45
2.5.1数据的宽度和单位45
2.5.2数据的存储和排列顺序47
2.6数据的基本运算51
2.6.1按位运算和逻辑运算51
2.6.2左移和右移运算51
2.6.3位扩展和位截断运算52
2.6.4整数加减运算53
2.6.5整数乘除运算56
2.6.6常量的乘除运算58
2.6.7浮点数运算59
2.7本章小结65
习题65
目录计算机系统基础(基于LoongArch指令系统)第3章程序转换与指令系统72
3.1程序转换概述72
3.1.1机器指令和汇编指令73
3.1.2ISA概述73
3.1.3指令系统设计风格75
3.1.4机器代码的生成过程76
3.2LA32/LA64指令系统81
3.2.1LoongArch指令系统概述81
3.2.2机器指令格式83
3.2.3操作数类型84
3.2.4寄存器组织86
3.2.5寻址方式87
3.3LA32/LA64基础整数指令89
3.3.1基础整数指令概述89
3.3.2整数运算类指令91
3.3.3移位指令98
3.3.4普通访存指令100
3.3.5程序执行流控制指令105
3.4LA32/LA64基础浮点指令110
3.4.1基础浮点指令集概述110
3.4.2浮点普通访存指令110
3.4.3浮点运算类指令112
3.4.4浮点转换指令113
3.4.5浮点传送指令115
3.5本章小结119
习题119
第4章程序的机器级表示122
4.1过程调用的机器级表示122
4.1.1LoongArch的过程调用约定122
4.1.2变量的作用域和生存期126
4.1.3按值传递参数和按地址传递参数128
4.1.4递归过程调用132
4.1.5非静态局部变量的存储分配134
4.1.6入口参数的传递与分配137
4.2流程控制语句的机器级表示142
4.2.1选择语句的机器级表示142
4.2.2循环语句的机器级表示146
4.3复杂数据类型的分配和访问149
4.3.1数组的分配和访问149
4.3.2结构体数据的分配和访问154
4.3.3联合体数据的分配和访问156
4.3.4数据的对齐159
4.4越界访问和缓冲区溢出161
4.4.1缓冲区溢出161
4.4.2缓冲区溢出攻击163
4.4.3缓冲区溢出攻击的防范165
4.5本章小结168
习题169
第5章程序的链接与加载执行180
5.1编译、汇编和静态链接180
5.1.1编译和汇编180
5.1.2可执行文件的生成181
5.2目标文件格式183
5.2.1ELF目标文件格式183
5.2.2可重定位文件格式184
5.2.3可执行文件格式188
5.2.4可执行文件的存储器映像190
5.3符号表和符号解析191
5.3.1符号和符号表191
5.3.2符号解析194
5.3.3与静态库的链接197
5.4符号的重定位199
5.4.1重定位信息200
5.4.2重定位过程200
5.4.3LoongArch代码的重定位203
5.5动态链接206
5.5.1动态链接的特性206
5.5.2程序加载时的动态链接207
5.5.3程序运行时的动态链接208
5.5.4位置无关代码210
5.5.5位置无关可执行文件214
5.6库打桩机制215
5.6.1编译时打桩215
5.6.2链接时打桩216
5.6.3运行时打桩217
5.7可执行文件的加载和执行219
5.7.1可执行文件的加载219
5.7.2程序和指令的执行过程220
5.7.3CPU的基本功能和基本组成221
5.7.4打断程序正常执行的事件223
5.8本章小结223
习题224
第6章存储器层次结构229
6.1存储器概述229
6.1.1存储器的分类229
6.1.2主存储器的组成和基本操作230
6.1.3层次化存储结构231
6.1.4程序访问的局部性232
6.2半导体随机存取存储器234
6.2.1基本存储元件234
6.2.2DRAM芯片235
6.2.3SDRAM芯片技术237
6.2.4内存条及其与CPU的连接238
6.2.5存储器芯片的扩展240
6.2.6主存控制器241
6.3外部存储器242
6.3.1磁盘存储器的结构242
6.3.2磁盘存储器的性能指标244
6.3.3闪速存储器和U盘245
6.3.4固态硬盘246
6.4cache247
6.4.1cache的基本工作原理247
6.4.2cache的映射方式249
6.4.3cache的替换算法255
6.4.4cache的写策略258
6.4.5cache的设计259
6.4.6cache和程序性能263
6.5本章小结267
习题267
第7章虚拟存储器271
7.1虚拟存储器概述271
7.1.1虚拟存储器的基本概念271
7.1.2进程的虚拟地址空间272
7.1.3虚拟存储器的基本类型274
7.2页式虚拟存储器的实现275
7.2.1页表和页表项的结构275
7.2.2页式存储管理总体结构276
7.2.3页式虚拟存储地址转换278
7.2.4快表(TLB)278
7.3具有TLB和cache的存储系统280
7.3.1层次化存储系统结构281
7.3.2CPU访存过程282
7.3.3cache的4种查找方式283
7.4存储保护机制284
7.5实例: LoongArch架构的虚拟存储系统285
7.5.1与虚拟存储管理相关的CSR285
7.5.2LoongArch架构的虚拟地址空间288
7.5.3直接映射地址翻译模式289
7.5.4页表映射模式下的TLB访问290
7.5.5页表映射模式下的多级页表结构294
7.5.6页表映射模式下的多级页表遍历296
7.6实例: Intel Core i7 Linux平台297
7.6.1Core i7的层次化存储器结构297
7.6.2Core i7的地址转换机制297
7.7Linux操作系统的虚拟存储管理300
7.7.1mmap()函数的功能300
7.7.2共享库的映射302
7.7.3私有的写时拷贝对象302
7.8本章小结305
习题305
第8章进程与异常控制流308
8.1进程与进程的上下文切换308
8.1.1程序和进程的概念308
8.1.2进程的逻辑控制流309
8.1.3进程的上下文切换310
8.2异常和中断312
8.2.1异常和中断的基本概念312
8.2.2异常的分类313
8.2.3中断的分类317
8.2.4异常和中断的响应317
8.3LoongArch Linux平台的异常和中断机制319
8.3.1支持的异常/中断类型319
8.3.2异常/中断相关的CSR320
8.3.3异常/中断的响应优先级321
8.3.4异常/中断的响应过程和处理322
8.3.5异常/中断处理程序的入口地址324
8.3.6LoongArch Linux平台中的异常处理325
8.3.7LoongArch中的系统调用机制328
8.4Linux中的进程控制330
8.4.1进程的创建、休眠和终止330
8.4.2进程ID的获取和子进程的回收333
8.4.3程序的加载运行335
8.5Linux系统中的信号与非本地跳转339
8.5.1Linux系统中的信号处理机制339
8.5.2信号的发送340
8.5.3信号的捕获和信号处理342
8.5.4非本地跳转处理343
8.6本章小结345
习题346
第9章I/O操作的实现352
9.1I/O子系统概述352
9.2用户空间I/O软件354
9.2.1用户程序中的I/O函数354
9.2.2文件的基本概念357
9.2.3系统级I/O函数358
9.2.4C标准I/O库函数361
9.3内核空间I/O软件366
9.3.1设备无关I/O软件层366
9.3.2设备驱动程序370
9.3.3中断服务程序376
9.4I/O硬件与软件的接口378
9.4.1输入/输出设备378
9.4.2基于总线的互连结构378
9.4.3I/O接口的功能和结构381
9.4.4I/O端口及其编址383
9.4.5中断系统387
9.5本章小结388
习题389
参考文献393
內容試閱
随着基于大数据处理的人工智能时代的到来,基于PC构建起来的专业教学内容已经远远不能反映现代社会对计算机专业人才的培养要求。原先高等学校计算机专业人才培养强调“程序”设计,而现在更强调“系统”设计。这需要我们重新规划教学课程体系,调整教学理念和教学内容,加强学生的计算机系统能力培养,使学生能够深刻理解计算机系统的整体概念,更好地掌握软/硬件协同设计和程序设计技术,从而培养出更多满足业界需求的各类计算机专业人才。不管培养计算机系统哪个层面的计算机技术人才,计算机专业教育都要重视学生“系统观”的培养。本书是为加强高等学校计算机类专业学生的“系统观”而提供的一本用于计算机系统基础类课程教学的教材。
1. 本书的写作思路和内容组织
本书从程序员视角出发,以高级语言程序的开发和运行过程为主线,将该过程中的每个环节涉及的硬件和软件基本概念关联起来,试图建立一个完整的计算机系统层次结构框架,使读者了解计算机系统全貌和相关知识体系,初步理解计算机系统中的每个抽象层及其相互转换关系,理解高级语言程序、指令集体系结构、操作系统、编译器、链接器等之间的相互关联,对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解,从而在程序的调试、性能优化、移植和健壮性保证等方面提升能力,并为后续的“计算机组成原理”“操作系统”“编译原理”“计算机体系结构”等课程打下坚实基础。
本书的具体内容包括程序中处理的数据在机器中的表示和运算、程序中各类控制语句对应的机器级代码的结构、可执行目标代码的链接生成、可执行目标代码中的指令序列在机器上的执行过程、存储访问过程、打断程序正常执行的机制,以及程序中的I/O操作功能如何通过请求操作系统内核提供的系统调用服务来完成等。
虽然构建计算机系统的各类硬件和软件千差万别,但计算机系统的构建原理以及在计算机系统上的程序转换和执行机理是相通的,因而,本书主要介绍一种特定计算机系统平台下的相关内容。本书所用的平台为LoongArch Linux GCC C语言。
本书以高级语言程序为出发点来组织内容,按照“自顶向下”的方式,从高级语言程序→汇编语言程序→机器指令序列→控制信号的顺序,展现程序从编程设计、编译转换、链接到最终运行的整个过程。对于存储访问机制和异常控制流这两部分内容,本书在介绍基本原理的基础上,还简要介绍了LA32/LA64 Linux系统的具体实现(带的章节)。若将本书用作教材,则这部分可以选择不作为课堂教学内容,而作为学生的自学材料。
本书共9章,从逻辑上分为三部分。第1章作为导引,基于一个简单模型机简要介绍计算机系统概述内容;第2~5章为第一部分——可执行文件的生成和加载执行,主要围绕程序的编译、汇编、链接、加载和执行进行介绍,包括信息的表示和运算、指令系统和程序的机器级表示等;第6~7章为第二部分——程序的存储访问,主要介绍存储层次结构和访存局部性、主存储器、外部存储器、cache、虚拟存储机制等;第8~9章为第三部分——硬件与操作系统之间的协同机制,主要介绍进程的上下文切换、进程控制、异常和中断处理、程序中I/O操作的底层实现机制。
本书各章的主要内容说明如下。
第1章计算机系统概述
主要介绍计算机系统的基本工作原理、计算机的基本组成、程序的开发与执行过程、计算机系统层次结构和计算机系统性能评价。
第2章数据的机器级表示与处理
主要介绍各类数据在计算机中的表示与运算。计算机中的算术运算与现实中的算术运算有所区别,例如,一个整数的平方可能为负数;两个正整数的乘积可能比乘数小;浮点数运算时可能不满足结合律。计算机算术运算的这些特性使得有些程序产生意想不到的结果,甚至造成安全漏洞,许多程序员为此感到困惑和苦恼。本章将从数据的机器级表示及其基本运算电路层面来解释计算机算术运算的本质特性,从而使程序员能够清楚地理解由于计算机算术的局限性而造成的异常程序行为。
第3章程序转换与指令系统
计算机硬件只能理解机器语言程序,机器语言标准规范是位于软件和硬件交界面的指令集体系结构,即指令系统。本章主要介绍高级语言程序转换为机器代码的过程以及指令系统相关的基本内容,包括指令中的操作数类型、寻址方式、操作类型以及LA32和LA64指令集架构及其常用指令。
第4章程序的机器级表示
主要介绍C语言程序中的过程调用和控制语句(如选择、循环等结构语句)以及各类数据结构(如数组、指针、结构体、联合体等)元素的访问所对应的机器级代码。高级语言程序员使用高度抽象的过程调用、控制语句和数据结构等来实现算法,因而无法了解程序在计算机中执行的细节,无法真正理解程序设计中许多的抽象概念,也就很难解释清楚某些程序的行为和执行结果。本章在机器级汇编指令层面来解释程序的行为,因而能对程序执行结果进行较为清楚的说明。通过本章学习将会明白诸如以下一些问题的答案: 过程调用时按值传递参数和按地址传递参数的本质差别是什么?缓冲区溢出漏洞是如何造成的?为什么递归调用会耗内存?为什么同样的程序在32位架构和64位架构上执行结果会不同?指针操作的本质是什么?
第5章程序的链接与加载执行
主要介绍如何将多个程序模块链接生成一个可执行目标文件并加载执行。通过介绍与链接相关的目标文件格式、符号解析、重定位、静态库、共享库以及可执行文件的加载等内容,使读者清楚了解为何不能出现同名全局变量、为何可出现同名静态变量等编程问题。此外,链接生成的可执行文件与程序加载、虚拟地址空间和存储器映射等重要内容相关,对理解操作系统中存储管理方面的内容非常有用。可执行文件加载后的执行过程就是其包含的一条条指令的执行过程。
第6章存储器层次结构
指令执行过程中需要通过访问存储器来取指令或读写操作数。通常,程序员以为程序代码和数据按序存放在线性地址构成的主存空间中,实际上计算机中并不只有主存,高速缓存和外存等存储器也与程序的执行相关。因此,存储单元不一定是指主存单元,访存过程也不是仅指访问主存的过程,而是指访问整个存储系统的过程。本章将介绍如何构成层次结构存储系统以及在该系统中的访存过程。层次结构存储系统能获得较好效果的一个很重要的原因是,程序中的存储访问具有局部性特点,因此,本章将详细介绍如何通过改善程序的时间局部性和空间局部性来提高程序执行的性能。
第7章虚拟存储器
在链接生成的可执行文件中,其指令代码和数据的地址并不是主存地址,而是一个物理上并不存在的逻辑地址。每个可执行文件的代码和数据都映射到一个统一的虚拟地址空间,因此,在可执行文件执行过程中涉及逻辑地址向主存地址转换等实现虚拟存储器的一整套机制,这部分内容涉及指令系统、操作系统和硬件等多层次间的关联和协同。本章主要介绍页式虚拟存储器机制。
第8章进程与异常控制流
可执行文件被加载后就变成了一个进程,在正常执行过程中,CPU会因为内部异常或外部中断事件而打断原程序的执行,转去执行操作系统提供的针对这些特殊事件的处理程序。这种由于某些特殊情况引起用户程序的正常执行被打断所形成的意外控制流称为异常控制流。显然,计算机系统必须提供一种机制使得自身能够实现异常控制流。本章主要介绍硬件层和操作系统层中涉及的内部异常和外部中断的异常控制流实现机制,包括进程与进程上下文切换、异常的响应和处理、中断的响应和处理,以及系统调用的实现等。
第9章I/O操作的实现
所有高级语言的运行时系统都提供了执行I/O功能的高级机制,如C语言中提供了像fread、printf和scanf等这样的标准I/O库函数。通过I/O函数提出I/O请求到设备响应并完成I/O功能,整个过程涉及多层次的I/O软件和I/O硬件的协调工作。本章主要介绍与I/O操作相关的软硬件协同内容,主要包括文件的概念、系统级I/O函数、C标准I/O库函数、设备控制器的基本功能和结构、I/O端口的编址方式、外设与主机之间的I/O控制方式、系统总线和系统互连、中断处理机制以及如何利用陷阱指令将用户I/O请求转换为I/O硬件操作的过程。
2. 读者所需的背景知识
本书假定读者有一定的C语言程序设计基础,已经掌握了C语言的语法和各类控制语句、数据类型及其运算、各类表达式、函数调用和C语言的标准库函数等相关知识。
此外,本书对于程序中指令的执行过程进行了介绍,这涉及布尔代数、逻辑运算电路、存储部件等内容,因而本书假定读者具有数字逻辑电路基础知识。本书大多数C语言程序对应的机器级表示都是基于LA32/LA64 Linux平台用GCC编译器生成的,本书会在介绍程序的机器级表示之前,先简要介绍32位LoongArch架构LA32和64位LoongArch架构LA64,包括其机器语言和汇编语言,因而读者无需任何指令系统和机器级语言的背景知识。
3. 使用本书作为教材的课程
传统的高校计算机类专业课程体系按计算机系统层次结构横向切分,自下而上分成“数字逻辑电路”“计算机组成原理”“汇编程序设计”“操作系统”“编译原理”“程序设计”等课程,而且每门课程都仅局限在本抽象层,相互之间很少关联,因而很难形成对完整计算机系统的全面认识。
本书在借鉴国内外相关课程教学内容和相关教材的基础上编写而成,适合在完成程序设计基础课程后学习,本书内容贯穿计算机系统各抽象层,是关于计算机系统的最基础内容,因而使用本书作为教材开设的课程适用于所有计算机类相关专业。
使用本书作为教材开设的课程名称可以是“计算机系统基础”“计算机系统导论”或类似名称,可以有以下几种安排方案。章节内容课程①②③④1计算机系统概述√√√√2数据的机器级表示与处理√√√√3程序转换与指令系统√√√√4程序的机器级表示√√√5程序的链接与加载执行√√6存储器层次结构√√√7虚拟存储器√√√8进程与异常控制流√9I/O操作的实现√√对于上表说明如下:
 第①种课程适合软件工程等不需要深入掌握底层硬件细节的专业。开设该课程后,无需开设“数字逻辑电路”“汇编程序设计”“计算机组成原理”“微机原理与接口技术”等偏硬件类课程,只要在课程第2章中补充一些布尔代数和基本门电路的内容即可。本书将底层指令系统和微架构的基本内容与高级语言程序、操作系统部分概念、编译和链接的基本内容有机联系在一起,作为一门完整的课程进行教学,不仅能缩减大量课时,还可以通过该课程的讲授为学生的系统能力培养打下坚实基础。因为课程内容较多,建议开设为一学年课程,第一学期学习第1~5章,第二学期学习第6~9章。每学期总学时数为54~64。
 第②种课程适合计算机工程、计算机系统等偏系统或硬件的专业。可以在该课程前或该课程后,开设一门将数字逻辑电路和计算机组成原理的内容合并的课程,专门介绍数字逻辑和微架构设计技术;也可以在该课程之前先开设“数字逻辑电路”课程,之后再开设“计算机组成与系统结构”“操作系统”等课程。建议开设为一学期课程,根据带章节内容是否讲解,总学时数为60~80。
 第③和第④种课程适合其他与计算机相关的非计算机专业或大专类计算机专业,在学时受限的情况下,可选择一些基本内容进行讲授。建议开设为一学期课程,总学时为60~80。
4. 如何阅读本书
本书的出发点是试图将计算机系统每个抽象层中涉及的重要概念通过程序的开发和运行过程为主线串起来,因而本书涉及的所有问题和内容都从程序出发,这些内容涉及程序中数据的表示及运算、程序对应的机器级表示、多个程序模块的链接、程序的加载及运行、程序执行过程中的异常中断事件、程序中的I/O操作等。本书从读者熟悉的程序开发和运行过程出发,介绍计算机系统基本概念,可以使读者将新学的概念与已有的知识建立关联,不断拓展和深化知识体系。因为所有内容从程序出发,所以所有内容都可以通过具体程序进行验证,边学边实践中使所学知识转化为实践能力。
本书虽然涉及内容较广,但所有内容之间具有非常紧密的关联,因而建议读者在阅读本书时采用“整体性”学习方法,通过第1章的学习先建立一个粗略的计算机系统整体框架,然后不断地通过后续章节的学习,将新的内容与前面内容关联起来,逐步细化计算机系统框架内容,最终形成比较完整的、相互密切关联的计算机系统整体概念。
本书提供了大量的例题和课后习题,这些题目大多是具体的程序示例,通过对这些示例的分析或验证性实践,读者可以对基本概念有更加深刻的理解。因此,在阅读本书时,若遇到一些难以理解的概念,可以先不用仔细琢磨,而是通过具体程序的反汇编代码来对照基本概念和相关手册中的具体规定进行理解。
本书提供的小贴士对理解书中的基本概念有用,由于篇幅有限,这些补充资料不可能占用很大篇幅,因而大多是简要内容。如果读者希望了解更多的细节内容,可以自行到互联网上查找。
本书内容虽然涉及高级语言程序设计、数字逻辑电路、汇编语言程序、计算机组成与系统结构、操作系统、编译器和链接器等,但主要是讲解它们之间的关联,而不提供其细节,如果读者想要了解更详细的内容,还要阅读关于这些内容的专门书籍。不过,若读者学完本书后再去阅读这些书籍,则会轻松很多。
本书以LoongArch Linux系统平台为案例进行介绍,给出的机器级代码主要是在LA32或LA64架构机器中生成的。为了更好地理解不同架构平台的差别,深刻理解操作系统、编译程序、链接程序和指令集架构(ISA)等之间的相互协同和关联关系,可以对照学习如x86 Linux、RISCV Linux等不同系统平台的相关内容。
5. 致谢
衷心感谢在本书的编写过程中给予热情鼓励和中肯建议的各位专家、同事和学生们,正是因为有他们的鞭策、鼓励和协助才能顺利完成本书的编写。
在本书的编写过程中,得到了龙芯中科技术股份有限公司和中国科学院计算技术研究所张福新、汪文祥、高燕萍、薛峰、李欣宇等多位龙芯处理器架构和计算机体系结构专家及工程技术人员的热情帮助和技术支持,他们为本书的编写提供了大量的技术资料和相应实验系统支撑,并帮助搭建了本地计算机上及远程服务器上基于LA32架构和LA64架构的不同系统编程实验环境。
特别感谢本书合著者鲍培明老师的辛勤付出,她对书中所有LoongArch指令集架构的机器级代码进行了设计和验证,对书中LoongArch架构相关内容进行了组织编撰,并根据LA手册中的相关规定以及C语言程序对应的LA机器级代码,对编写的内容进行了详尽的核实和调整。
本书是作者在南京大学从事“计算机组成与系统结构”和“计算机系统基础”两门课程教学所积累的部分讲稿内容的基础上编写而成的,同时也是在《计算机系统基础(第2版)》、《计算机系统: 基于x86 Linux平台》等教材基础上编写而成的,感谢南京大学各位同仁和各届学生对讲稿内容和教学过程所提出的宝贵的反馈和改进意见,使得本教材的内容得以不断地改进和完善,特别感谢《计算机系统基础(第2版)》、《计算机系统: 基于x86 Linux平台》等教材的合著者余子濠博士,本书的编写采纳了他在编写这些教材过程中提出的许多非常好的建议。
特别感谢清华大学出版社为本书的编写和出版工作提供了极大的支持,本书的责任编辑极其专业和非常细致的工作为本书的出版质量提供了可靠的保证。
6. 结束语
本书广泛参考了国内外相关的经典教材和教案,在内容上力求做到取材先进并反映技术发展现状;在内容的组织和描述上力求概念准确、语言通俗易懂、实例深入浅出,并尽量利用图示和实例来解释和说明问题。但是,由于计算机系统相关技术在不断发展,新的思想、概念、技术和方法不断涌现,加之作者水平有限,在编写中难免存在不当或遗漏之处,恳请广大读者对本书的不足之处给予指正,以便在后续的版本中予以改进。
袁春风于南京2025年1月

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2025 (香港)大書城有限公司  All Rights Reserved.