hi,小慕
课程

中国大学MOOC,为你提供一流的大学教育

hi,小mooc
认证学习
计算机系统基础(三):异常、中断和输入/输出
第14次开课
开课时间: 2025年03月10日 ~ 2025年07月07日
学时安排: 3-5小时每周
进行至第4周,共18周 已有 149 人参加
认证学习
认证成绩和证书
智能问答和解析
视频学习辅助
立即参加
课程详情
课程评价(139)
spContent=在前两门课中你学习了可执行文件的生成、加载和执行。是否所有程序总能按部就班地正常执行到结束呢?如果发生了异常或者外部中断请求,该怎么办?键盘、磁盘等外设操作无法用一条指令完成,该怎么办?如果你想知道这些问题,就请参加“计算机系统基础(三):异常、中断和输入/输出”课程学习吧!
在前两门课中你学习了可执行文件的生成、加载和执行。是否所有程序总能按部就班地正常执行到结束呢?如果发生了异常或者外部中断请求,该怎么办?键盘、磁盘等外设操作无法用一条指令完成,该怎么办?如果你想知道这些问题,就请参加“计算机系统基础(三):异常、中断和输入/输出”课程学习吧!
—— 课程团队
课程概述

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

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

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

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

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

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

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

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

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

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

课程大纲

第一周 进程和进程的上下文切换

第一周引言

第1讲 异常控制流的概念

第2讲 程序和进程

第3讲 进程的逻辑控制流

第4讲 进程的上下文切换

第5讲 进程的存储器映射

第6讲 共享对象和私有的写时拷贝对象

第7讲 用户态和内核态

第8讲 程序的加载和运行

课件PPT

第一周小测验

第二周 异常和中断

第二周引言

第1讲 异常和中断的基本概念

第2讲 异常和中断的基本处理过程

第3讲 异常的分类

第4讲 故障类异常及举例

第5讲 陷阱类和终止类异常

第6讲 中断的概念

第7讲 异常/中断的响应过程

课件PPT

第二周小测验

第三周 IA-32中的异常/中断机制

第三周引言

第1讲 x86实地址模式下异常/中断处理

第2讲 x86保护模式下异常/中断处理

第3讲 IA-32中异常/中断响应过程

第4讲 IA-32中异常/中断返回过程

课件PPT

第三周小测验

第四周 IA-32/Linux中异常/中断处理

第四周引言

第1讲 Linux中对IDT的初始化

第2讲 Linux异常处理举例

第3讲 IA-32/Linux对中断的处理

第4讲 IA-32/Linux的系统调用处理

第5讲 软中断指令int 0x80的执行过程

课件PPT

第四周小测验

第五周 用户空间I/O软件

第五周引言

第1讲 I/O子系统概述

第2讲 用户I/O软件与系统调用

第3讲 文件的基本概念

第4讲 头文件stdio.h内容理解

第5讲 文件操作举例

课件PPT

第五周小测验

第六周 系统总线和系统互连

第六周引言

第1讲 系统总线及互连概述

第2讲 总线的基本概念和性能指标

第3讲 三种系统总线及系统互连

第4讲 外设和外设控制器

课件PPT

第六周小测验

第七周 I/O方式和内核空间I/O软件

第七周引言

第1讲 程序查询方式

第2讲 中断I/O方式

第3讲 中断处理过程

第4讲 中断屏蔽和多重中断

第5讲 程序查询和中断方式的比较

第6讲 DMA方式

第7讲 内核空间I/O软件

课件PPT

第七周小测验

展开全部
预备知识

高级语言程序设计(最好有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模拟器编程实践。

南京大学
1 位授课老师
袁春风

袁春风

计算机科学与技术系教授

推荐课程

【DeepSeek适用】小白玩转AI大模型应用开发

林粒粒

189人参加

小白玩转 Python 数据分析

林粒粒

75人参加
下载
下载

下载App