认证学习
计算机系统基础(三):异常、中断和输入/输出
分享
课程详情
课程评价
spContent=在前两门课中你学习了可执行文件的生成、加载和执行。是否所有程序总能按部就班地正常执行到结束呢?如果发生了异常或者外部中断请求,该怎么办?键盘、磁盘等外设操作无法用一条指令完成,该怎么办?如果你想知道这些问题,就请参加“计算机系统基础(三):异常、中断和输入/输出”课程学习吧!
—— 课程团队
课程概述

本课程主要介绍可执行文件中的代码在执行过程中,如果发生了内部异常事件或外部中断请求,CPU如何进行异常/中断响应,以调出操作系统内核中的异常处理程序或中断服务程序执行,以及用户程序如何通过陷阱指令调出操作系统提供的系统调用服务例程来实现输入/输出操作。主要包括以下几个问题:

-什么是进程的逻辑控制流?

-为何会形成进程的异常控制流?

-进程上下文切换如何形成异常控制流?

-异常和中断如何形成异常控制流?

-IA-32/Linux如何进行异常/中断处理?

-如何通过系统调用实现程序中的I/O操作?

-外部设备如何与主机互连?

-基本的输入/输出方式有哪几种?

-内核空间I/O软件如何控制I/O硬件?

课程大纲
预备知识

高级语言程序设计(最好有C语言程序设计的基础)

参考资料

教材:袁春风. 计算机系统基础(第2版) [M]. 北京:机械工业出版社,2018(7-8两章)

参考书目:Randal E. Bryant, David R. O'Hallaron. 深入理解计算机系统(原书第3版)[M]. 龚奕利,贺莲译 北京:机械工业出版社,2016

常见问题

1.学习“计算机系统基础”系列课程时,最重要的学习方法是什么?

首先,不要死记硬背,关键是要不断将所学内容关联起来,以真正理解所学内容。

其次,要多动手实践。不明白的地方就编写一个程序,通过打印结果或利用gdb等调试工具查看机器级代码来分析。

此外,多提问和多参与讨论。真理越辩越明,在与他人的讨论过程中,往往会忽然开朗,有时,一个问题自己冥思苦想几天都想不明白,但实际上课程讨论区早就有人讨论过了,或者在讨论区一提问,马上就有人帮你解决了。

2.“计算机系统基础”系列课程属于硬件课程还是软件课程?

该系列课程涉及到其他很多课程,包括硬件课程和软件课程。它与高级语言程序设计、组成原理、汇编、编译、链接和操作系统等课程的内容有关。虽然涉及到很多其他课程的内容,但是,我们在本课程中只会讲解这些课程内容之间的关联,而不会讲解这些课程的细节内容,例如,本课程不会讲解如何实现编译器和如何实现操作系统。


3.《计算机系统基础》系列一共包含几门慕课?

包含以下三门已经上线的理论课程和另外两门将要上线的实践类课程。

(1)计算机系统基础(一):程序的表示、转换与链接。

(2)计算机系统基础(二):程序的执行和存储访问。

(3)计算机系统基础(三):异常、中断和输入/输出。

(4)计算机系统基础(四):编程与调试实践。

(5)计算机系统基础(五):x86模拟器编程实践。