本课程主要介绍可执行文件中的代码如何在CPU中执行,如何从存储器中取指令,以及如何从存储器中取数据或存结果。在本课程中,我们主要围绕以下问题进行讲解。
计算机中的CPU是如何执行程序的?
CPU中包含哪些基本的功能部件?
存放代码和数据的主存储器如何构成?
存放文件的磁盘存储器是怎么工作的?
CPU如何把一个虚拟地址转换为主存地址?
如何利用高速缓存技术加快访问存储器的速度?
IA-32/Linux平台如何实现存储访问?
高级语言程序设计(最好有C语言程序设计的基础)
教材:袁春风. 计算机系统基础(第2版) [M]. 北京:机械工业出版社,2018(第5-6章)
参考书目:Randal E. Bryant, David R. O'Hallaron. 深入理解计算机系统(原书第3版)[M]. 龚奕利,贺莲译 北京:机械工业出版社,2016
1.学习“计算机系统基础”系列课程时,最重要的学习方法是什么?
首先,不要死记硬背,关键是要不断将所学内容关联起来,以真正理解所学内容。
其次,要多动手实践。不明白的地方就编写一个程序,通过打印结果或利用gdb等调试工具查看机器级代码来分析。
此外,多提问和多参与讨论。真理越辩越明,在与他人的讨论过程中,往往会忽然开朗,有时,一个问题自己冥思苦想几天都想不明白,但实际上课程讨论区早就有人讨论过了,或者在讨论区一提问,马上就有人帮你解决了。
2.“计算机系统基础”系列课程属于硬件课程还是软件课程?
该系列课程涉及到其他很多课程,包括硬件课程和软件课程。它与高级语言程序设计、组成原理、汇编、编译、链接和操作系统等课程的内容有关。虽然涉及到很多其他课程的内容,但是,我们在本系列课程中只会讲解这些课程内容之间的关联,而不会讲解这些课程的细节内容,例如,本课程不会讲解如何实现编译器和如何实现操作系统。
3.《计算机系统基础》系列一共包含几门慕课?
包含以下三门已经上线的理论课程和另外两门将要上线的实践类课程。
(1)计算机系统基础(一):程序的表示、转换与链接。
(2)计算机系统基础(二):程序的执行和存储访问。
(3)计算机系统基础(三):异常、中断和输入/输出。
( 4 )计算机系统基础(四):编程与调试实践。
(5)计算机系统基础(五):x86模拟器 编程实践。