收藏 分销(赏)

计算机系统导论课程教学思路及课程资源建设.pdf

上传人:自信****多点 文档编号:2688296 上传时间:2024-06-04 格式:PDF 页数:6 大小:2.08MB
下载 相关 举报
计算机系统导论课程教学思路及课程资源建设.pdf_第1页
第1页 / 共6页
计算机系统导论课程教学思路及课程资源建设.pdf_第2页
第2页 / 共6页
计算机系统导论课程教学思路及课程资源建设.pdf_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第 11 期2023 年 11 月 10 日计 算 机 教 育Computer Education中图分类号:G64212计算机系统导论课程教学思路及课程资源建设袁春风1,余子濠2,朱光辉1,吴海军1,陈 璐2(1.南京大学 计算机科学与技术系,江苏 南京 210046;2.中国科学院计算技术研究所,北京 100190)摘 要:分析“101 计划”中计算机系统导论课程内容在整个计算机系统中的位置,提出课程总体建设思路;根据对 hello 程序执行过程的分析,阐述该课程与前导及后续相关系统类课程之间的关联关系和内容衔接,并说明相关系统类课程教学总体安排;最后介绍计算机系统导论课程主教材及其实践教

2、学案例与教辅教材的基本内容和教学实施方案。关键词:计算机系统导论;系统类课程;课程资源建设;教学实施方案;101 计划文章编号:1672-5913(2023)11-0012-061计算机系统导论课程内容在计算机系统中的位置图 1 是计算机系统层次结构及其抽象层转换示意图,展示从最终用户希望计算机完成的应用(问题)到电子工程师使用器件完成基本电路设计的整个转换过程。言目标程序等多个抽象层的转换。在计算机系统层次结构中,上层是下层的抽象封装,而下层则是上层的具体实现。计算机系统导论(Introduction to Computer Systems,ICS)课程涉及的内容主要位于图 1 中编程(语言

3、)程序层到功能部件/RTL(寄存器传送级)层之间,包括介于软件和硬件交界面的指令集体系结构,从高级语言源程序转换为可执行文件的过程中涉及的编译、汇编、链接等相关知识点,以及可执行文件执行过程中涉及的底层微体系结构及其与操作系统之间的协同及关联知识体系。显然,ICS 课程内容是计算机学科和计算机系统中最重要的专业基础核心内容。图 2 所示为“101 计划”建设的 12 门核心课程,其中 ICS 是计算机类专业重要基础课之一,与操作系统、计算机组成与系统结构等后续系统类课程密切相关,同时也是程序设计基础等前导课的答疑解惑课程,在整个计算机类专业人才培养体系中,该课程起着非常重要的承上启下、奠定坚实

4、基础的作用。2计算机系统导论课程建设总体思路ICS 作为计算机类专业系统能力培养的关键第一作者简介:袁春风,女,教授,研究方向为大数据计算与并行处理、Web 信息检索与本文挖掘,。图 1 计算机系统抽象层及其转换应用(问题)编程(语言)算法操作系统/虚拟机指令集体系结构(ISA)微体系结构功能部件/RTL数字电路器件计算机系统导论软件硬件计算机硬件只能理解机器语言。要将一个自然语言描述的应用问题转换为机器语言程序,要经过应用问题描述、算法抽象、高级语言程序设计、将高级语言源程序转换为特定平台中机器语专题策划:“101 计划”课程建设(一)第 11 期13课程,通过将高级语言程序与数字逻辑电路之

5、间所有相关知识点有机关联起来,为学生构造完整的计算机系统基本框架,使学生建立计算机系统整机概念,强化系统思维。通过本课程的学习,学生能从程序员角度认识计算机系统,建立高级语言程序、操作系统、编译器、汇编器、链接器、指令集系统结构、基本运算电路、存储器层次结构、I/O 子系统、操作系统等计算机系统核心层之间的关联关系,从而增强在程序调试、程序性能提升、程序移植、保证程序健壮性等程序设计与开发方面的能力,为后续的计算机组成与系统结构、操作系统、编译原理等课程的学习打基础。本课程从程序员视角出发,基于特定计算机 系 统 平 台(如 IA-32/x86-64+Linux、RISC-V+Linux、Lo

6、ongArch+Linux、ARM+Linux 等),通过介绍在特定平台上相应的应用程序开发过程中涉及的各抽象层之间的关联关系,以可执行文件的生成与加载、进程的正常执行与异常处理、应用程序中 I/O 操作的底层实现机制为线索,重点构建高级语言程序到功能部件之间的系统级关联知识体系。如图 3 所示,本课程的基础内容主要从程序的生成与程序的执行两个方面展开。算法设计与分析人工智能引论计算机系统导论数据结构计算概论离散数学数学基础计算机组成与系统结构软件工程操作系统编译原理计算机网络数据库系统程序设计基础图 2“101 计划”重点建设的 12 门核心课程1图 3 ICS 课程知识模块关系图12023

7、14计 算 机 教 育Computer Education(1)程序的生成过程主要包括预处理、编译、汇编和链接 4 个步骤,预处理阶段与计算机系统底层关系不大,本课程主要关注与编译、汇编和链接 3 个阶段相关的计算机系统层面的内容。其中,编译和汇编两个阶段涉及信息的表示与处理、程序的机器级表示,链接阶段涉及目标文件格式、多个程序模块合并时的符号解析与重定位,以及动态链接等相关概念。(2)程序的执行过程主要包括在系统中加载程序并在硬件上启动执行的过程,涉及在处理器中执行指令的过程,其中包含指令和数据的存储访问,以及程序执行过程中硬件与操作系统之间的协同。这种协同包括虚拟存储管理、进程上下文切换、

8、异常/中断处理机制以及 I/O 操作中的软硬件协同几方面。本课程的高阶内容主要从程序的性能优化、程序间通信两个方面展开。程序的性能优化又分程序本身的优化、编译优化两类;程序间通信主要包括网络编程、并发编程两个方面的内容。3计算机系统导论课程与其他系统类课程之间的关联及衔接3.1ICS 与相关课程之间的关联关系根据高等学校计算机类专业人才培养战略研究报告暨核心课程体系1中描述的 12 门核心课程各自的知识模块关系图可看出,ICS 与“计算机组成与系统结构”“操作系统”两门系统类课程存在极其密切的关联关系。(1)ICS 与“计算机组成与系统结构”课程相互重叠的知识点包括数字逻辑电路基础、数据的表示

9、与存放、补码加减运算器、指令集体系结构、汇编语言表示、指令执行过程及微架构(CPU)、异常/中断机制、层次结构存储系统、主存与 CPU 的连接、磁盘及固态硬盘、cache、虚拟存储器、总线及系统互连、I/O 接口及 I/O方式。这些重叠知识点大约占各自全部知识点的70%80%,若同时开设这两门课程,必须合理地给出两门课程内容的划分及衔接。(2)ICS 与“操作系统”课程相互关联的知识点包括可执行文件加载与进程的创建、进程存储器映射、分页机制、存储保护、特权模式、异常/中断机制、文件系统、基本 I/O 函数、系统调用机制、I/O 方式、驱动程序、中断处理程序等。显然,这些关联知识点都要包含在各自

10、课程的教学过程中,重要的是各自应从什么角度切入以及各自强化相关知识点中的哪些内容。3.2ICS 与相关课程之间的衔接思路1)ICS 课程一个进程的“前世今生”。图 4 给出 ICS 课程的细粒度知识图谱,具体教学实施过程可以按照讲述计算机系统中一个进程的“前世今生”来使学生深刻理解计算机系统。当然,要能讲清楚程序执行过程中的每个细节,必须通过后续的计算机组成与系统结构、操作系统等多门系统类课程的教学一起联合完成。图 4 中“程序的生成”过程涵盖的内容就是一个进程的“前世”,而图中“程序的执行”过程涵盖的内容就是一个进程的“今生”。在这个“故事”的讲述过程中,本课程的作用是给“故事”起一个头,并

11、给出“故事”的框架结构,把所有关键点串联起来,让学生对“故事”反映的计算机系统全貌有一个全局的认识与了解,并理解“故事”中的关键之处与后续系统类课程之间的关联关系,为后续课程进一步延续“故事情节”牵线搭桥。目前在编写完成的“101 计划”主教材计算机系统:基于 x86+Linux 平台 和计算机系统(基于 RISC-V+Linux 平台)中,都对 hello 进程的生成与执行过程给出了较为详细的描述,并分别制作了相应的知识图谱发布在公开的网站2-3 上。后续系统类课程可以在此基础上细化具体实现细节。2)ICS 课程与“计算机组成与系统结构”课程的衔接。对于后续的计算机组成与系统结构课程,可以沿

12、着 hello 进程中不同指令的执行过程继续讲“故事”。对于 hello 进程中具体的运算类指令、访存类指令、I/O 指令、流程控制类指令、异常/中断响应过程等执行电路的设计与实现,除了涉及具体的指令系统及其微架构(即中央处理器)的设计与实现,还进一步涉及运算类指令执行过程中所用的先行进位加法器、算术逻辑部件、各类专题策划:“101 计划”课程建设(一)第 11 期15乘法/除法运算电路、浮点运算器等底层运算功能部件的设计与实现,也涉及访存指令执行过程中所用的半导体存储器芯片及记忆单元,cache、MMU 等底层存储部件的实现原理,还涉及 I/O指令执行过程中所用的外设接口电路、总线事务处理、

13、总线标准等内容。如果在电路实现细节上继续深入下去,还会进一步涉及指令执行过程中的异常/中断事件的检测与响应电路、数据检错/纠错电路等的实现,以及各类高级指令流水线的实现、cache 和MMU 的具体设计与实现、多核 CPU 和多处理器及其 cache 一致性原理等。3)ICS 课程与“操作系统”课程的衔接。对于后续的操作系统课程,可以沿着 hello进程执行过程中从用户态陷入内核态执行这个关键点继续讲“故事”。在 hello 进程执行过程中,会遇到 read、fork(clone)、write、execve 等系统调用,这些系统调用对应的系统级函数都用一段包含陷阱指令的指令序列进行封装,当执行

14、到陷阱指令时,就会从用户态陷入内核态执行。CPU 执行某条访存指令时可能会发生缺页、访问违例等异常事件或者在某条指令执行结束时 CPU 发现有外部中断请求信号等,此时 CPU 通过异常/中断响应过程陷入内核态执行。对于系统发生的这些不同类型的异常/中断事件,进入内核后操作系统的处理过程及其涉及的知识点和概念各不相同,因此,操作系统课程除要给出通用异常/中断处理机制和系统调用实现框架外,还须针对不同类型的异常/中断事件分门别类进行讲解。例如,对于 read、write 等系统级 I/O 函数的处理,将涉及文件系统和设备管理;对于 fork(clone)、execve 等进程控制类系统级函数,将涉

15、及进程的描述模型、进程生命周期及其控制等内容;对于缺页、访问违例等存储访问异常事件的处理,将涉及相应的存储管理方面的内容;对于外部中断事件的处理,将涉及设备驱动程序、中断服务程序等内容。在 shell 命令行提示符下系统等待用户输入“./hello”命令过程中,当前终端输入缓冲区(键盘缓冲区)还没有输入的字符时,shell 进程被阻塞并进行进程调度,此处可以作为操作系统中进程调度及其调度算法的切 入点。此外,如果 ICS 等前导课程的教学内容还包含图 4 中的高阶部分“程序间通信”以及多核CPU、多处理器等并行处理内容,那么,操作系图 4 ICS 课程知识图谱计算机系统导论(ICS)二进制与数

16、字电路概述程序的加载与执行可执行文件的启动和加载过程exec()和f ork()mai n()函数栈帧可执行文件的存储器映像预处理编译和汇编链接程序优化程序的机器级表示信息的表示与处理可执行文件的加载编译 汇编 反汇编 汇编指示符 链接基本过程ELF目标文件格式 存储器映像 工具软件的使用在硬件上执行硬件与操作系统间的协同程序的存储器访问编译优化网络编程并发编程程序的执行存储器分类 存储技术发展历史及趋势主存储器的组成和基本操作 各类存储元特点存储芯片和内存条 CPU与主存互连及访问过程程序访问的局部性cache行与主存块的映射 cache替换策略和写策略影响Cache性能的因素 Cache对

17、程序性能的影响W ebSocket系统级I/O总线互连 I/O接口的功能和结构I/O端口编址方式 中断控制器I/O子系统的层次结构设备无关I/O软件驱动程序(三种I/O方式)中断服务程序进程和进程的控制进程逻辑控制流进程的虚存空间异常和中断分类异常和中断的响应特定架构和Li nux中异常/中断机制进程上下文切换共享对象的构建进程创建与终止进程回收和休眠Li nux信号处理机制 信号处理过程非本地跳转处理虚拟存储器虚拟存储器概述虚拟存储器实现分页式虚拟存储器 页表、快表和地址转换分段式虚拟存储器 段页式虚拟存储器虚拟存储器的起源 逻辑地址和物理地址Linux中进程的虚拟地址空间和进程控制块堆区动

18、态分配进程与异常控制流异常和中断的处理信号与非本地跳转信号处理常用函数用户空间I/O软件I/O硬件和I/O方式内核空间I/O软件系统调用封装函数的机器级代码表示系统级I/O函数C标准I/O库函数I/O流缓冲区存储系统实例完整的访存过程 页目录项和页表项结构特权模式和存储保护 虚实地址转换过程显式动态分配 mal l oc()和f ree()函数垃圾收集器 C程序中常见访存相关错误程序和指令执行过程 CPU基本功能和组成简化模型机上执行一个简单程序的过程半导体存储器硬盘存储器磁盘驱动器访问过程 磁道记录格式磁盘存储器的性能指标 固态硬盘时间局部性和空间局部性 存储器层次结构高速缓存与程序性能二进

19、制 布尔代数简介 逻辑门 加法器整数的表示原码 补码 移码 带符号整数 无符号整数 C语言中整数之间的转换和比较浮点数的表示浮点数范围和精度 IEEE754标准 舍入C语言中的浮点数类型浮点数规格化 信息存储与位操作位字节字字长 数据长度单位大端/小端 C程序中的逻辑运算和位操作算术运算补码加/减运算 标志位 整数的乘积整数乘运算的溢出问题 常量的乘/除运算浮点数运算的精度和各种异常结果的处理程序转换概述存储程序工作方式 程序转换过程计算机系统层次结构 机器指令和汇编指令指令系统概述指令集体系结构(ISA)的基本概念具体架构指令格式寄存器组织数据类型寻址方式汇编形式常用指令类型及功能访存和算术

20、逻辑运算传送/访存指令 存储器操作数 地址加载指令 定点运算指令 移位指令 按位运算指令顺序控制无条件转移指令 条件转移和条件设置指令选择语句机器级表示 循环结构的机器级表示过程调用调用/返回指令 过程调用的机器级代码结构ABI规范 栈帧结构和寄存器使用约定 递归调用非静态局部变量的存储分配 程序的存储区划分复杂数据类型处理指针/数组/结构体/联合体的分配和访问 链表的构建和操作 对齐方式缓冲区溢出数组的越界访问 越界访问和缓冲区溢出的关系缓冲区溢出攻击举例 缓冲区溢出攻击的防范可执行文件的生成符号解析和重定位符号和符号表 符号的强、弱特性 符号解析静态库的生成 静态链接器 静态链接过程重定位

21、节和重定位信息 重定位过程 动态链接和库打桩动态链接库 加载时的动态链接 运行时的动态链接位置无关代码 编译时打桩 链接时打桩 运行时打桩程序的执行程序的生成程序性能优化程序间通信202316计 算 机 教 育Computer Education统课程就可顺理成章地接着讲进程同步、进程通信等“故事”。这种通过“讲故事”的方式将所有与计算机系统相关的内容有机关联起来,将多门系统类课程教学形成一个完整的过程,可以强化学生对计算机系统的深入理解,使其深刻领会计算机系统中的软硬件协同机制,提升学生对计算机系统的综合设计与应用能力,并为后续的并行计算系统和智能计算系统相关课程的学习打下坚实的基础。4计算

22、机系统导论课程及其相关课程的实施方案进入智能化大数据时代后,计算机类专业人才培养课程体系中必定要加入更多的并行处理、智能计算等方面的课程内容,因此,必须对传统课程体系进行改革,通过摒弃过时的内容,合并重组课程内容并重新设置课程体系,以在不增加总学时的前提下在教学中增加反映学科发展的新内容。4.1新设 ICS 课程后面临的教学问题传统课程体系中都有数字逻辑电路和计算机组成原理课程,这两门课程内容关联密切,且有较多知识点重叠。同样,计算机组成原理与体系结构两门课程也关联密切,有大量知识点重合。若再新设一门 ICS 课程,则其中又有很多内容与传统的计算机组成原理课程内容重叠。在规划新的课程体系时,必

23、须思考如何重组优化这组课程的教学。由于传统课程体系中没有 ICS 课程,因而各高校会因师资配置情况或课程体系不同,对于系统类课程有不同的教学安排与课程设置,有的学校未开设专门的 ICS 课程,而是在原来计算机组成原理课程中加入部分软硬件协同的内容;有的学校在数字逻辑电路课程后面新设 ICS 课程;有的学校把数字逻辑电路与计算机组成原理课程合并,并新设了 ICS 作为后续课程;有的学校新设了 ICS 课,并将计算机组成原理与系统结构合成一门后续课程实施教学。在这些不同的教学安排与课程设置情况下,必须很好地解决这些课程内容的重组合并与前后衔接问题,这通常涉及数字逻辑电路、计算机组成原理、汇编程序设

24、计、微机原理与接口、体系结构等传统的低级语言程序设计,以及偏硬件类课程与 ICS 课程的重组合并问题,而编译原理、操作系统等系统软件类课程则不用考虑与 ICS 课程的重组合并,只要注意与 ICS 等前导课程的衔接,找到最佳切入点,以延续关于可执行文件生成与进程执行的“故事”。4.2ICS 课程与汇编语言程序设计以及偏硬件类课程的合并重组1)应取消汇编程序设计、微机原理与接口这两门课程。因为 ICS 课程中会包含关于汇编指令、汇编语言程序、汇编器等内容,且将这些内容与高级语言程序及其转换过程关联进行介绍,教学效果应比单独介绍汇编程序设计更好。对于微机原理与接口课程,其内容涵盖在 ICS、计算机组

25、成等课程中,因此也无须再开设该课程。2)应对 ICS 课程与数字逻辑电路、计算机组成原理、体系结构 3 门传统偏硬件类课程进行重组。合理规划课程教学内容及其实践项目,使一个课程内的知识点密切关联、融会贯通,并避免在不同课程教学中存在相同知识点的简单重复以及前后课程内容相互割裂的情况。科学合理的课程教学体系可用更少的课时达到更高的教学目标。针对 ICS 与 3 门偏硬件类课程内容的重组,可根据学校现有课程体系和师资情况,选择以下方案中的一种。方案:重组数字逻辑与计算机组成、ICS、体系结构 3 门课程,并按其顺序开课。数字逻辑与计算机组成课从二进制 0/1 与器件状态间的对应关系开始,自底向上从

26、功能部件到中央处理器(CPU),再到机器代码、汇编代码,最后到高级语言程序,在最底层的器件与较高层的程序间建立弱关联关系;随后的 ICS 课再从程序员视角出发,自顶向下围绕进程的“前世今生”展开,在计算机系统核心层间建立强关联关系;最后由体系结构课实施针对并行处理系统相关内容的教学。目前南京大学计算机系采用的是这种方案,为此,编写出版了配套的数字逻辑与计算机组成 计算机系统基础 两本主教材4-5及其相关专题策划:“101 计划”课程建设(一)第 11 期17的习题解答和实践教辅教材6-7,并在中国大学MOOC 平台、头歌平台开设了配套的慕课和实践课程8-13。方案:重组 ICS、数字逻辑与计算

27、机组成、体系结构 3 门课程,并按其顺序开课。前两门课的开课顺序与方案相反,先在 ICS 课中自顶向下从程序员视角通过了解进程的“前世今生”理解计算机系统,再在数字逻辑与计算机组成课中进一步细化底层微架构实现。该方案教学资源可与方案完全一致。方案:将计算机组成原理和体系结构组合成一门课,按照数字逻辑电路、ICS、计算机组成与体系结构 3 门课的顺序开课。某些学校由于外院系开课等原因无法改变传统的数字逻辑电路课教学内容,那么,可将计算机组成原理课程中与数字逻辑电路、ICS 两门课重叠的内容去掉,而将不重叠的部分合并到体系结构课中。目前编写完成的“101 计划”教材计算机系统:基于 x86+Lin

28、ux 平台 以及正在编写的配套教辅教材可用于上述 3 种方案中 ICS 教学。方案:将数字逻辑电路、ICS 和计算机组成组合成一门贯穿两学期的计算机系统课,按照计算机系统(上)、计算机系统(下)、体系结构3 门课的顺序开课。该方案是改革力度最大、预期效果最好的一种方案。目前编写完成的“101计划”教材计算机系统(基于 RISC-V+Linux平台)以及配套教辅教材可用于此方案中计算机系统(上)(下)两学期的教学。配套实践项目基于新兴开放指令集架构 RISC-V 与开源处理器芯片“香山”14进行,并与处理器芯片开放式人才培养计划“一生一芯”相互支撑,优化迭代,形成全系统配套的实验教程,同时引入“

29、玄铁处理器+无剑 SoC 平台”系统层实验。5结 语ICS 是计算机类专业的重要基础课之一,起着非常重要的承上启下、奠定坚实基础的作用,对学生建立计算机系统整体概念,培养其深刻理解、使用、设计和开发计算机系统的能力起着非常重要的作用。在传统课程体系中加入 ICS 课程后,须解决它与数字逻辑电路、计算机组成、体系结构等课程的重组合并问题,减少重复和陈旧的内容,增加必要的向后续课程过渡的内容,科学合理安排教学内容。此外,课程教学效果的好坏与教材编写、实践项目的设计、教辅教学资源的建设等息息相关,这些都须在后续的工作中不断迭代完善。参考文献:1 计算机领域本科教育教学改革试点工作计划工作组.高等学校

30、计算机类专业人才培养战略研究报告暨核心课程体系M.北京:高等教育出版社,2023.2 一生一芯.hello程序运行过程综述(IA-32版本)EB/OL.2023-08-10.https:/ysyx.oscc.cc/slides/hello-x86.html.3 一生一芯.hello程序运行过程综述(RISC-V版本)EB/OL.2023-08-10.https:/ysyx.oscc.cc/slides/hello-riscv.html.4 袁春风,武港山,吴海军,等.数字逻辑与计算机组成M.北京:机械工业出版社,2020.5 袁春风,余子濠.计算机系统基础M.2版.北京:机械工业出版社,201

31、8.6 袁春风,吴海军,武港山,等.数字逻辑与计算机组成习题解答与实验教程M.北京:机械工业出版社,2022.7 袁春风,唐杰,苏丰,等.计算机系统基础习题解答与教学指导M.北京:机械工业出版社,2017.8 中国大学MOOC.计算机系统基础(一):程序的表示、转换与链接EB/OL.2023-08-10.https:/www.icourse163.org/course/NJU-1001625001.9 中国大学MOOC.计算机系统基础(二):程序的执行和存储访问EB/OL.2023-08-10.https:/www.icourse163.org/course/NJU-1001964032.10

32、 中国大学MOOC.计算机系统基础(三):异常、中断和输入/输出EB/OL.2023-08-10.https:/www.icourse163.org/course/NJU-1002532004.11 中国大学MOOC.计算机系统基础(四):编程与调试实践EB/OL.2023-08-10.http:/www.icourse163.org/course/NJU-1449521162.12 中国大学MOOC.计算机系统基础(五):x86模拟器编程实践EB/OL.2023-08-10.https:/www.icourse163.org/course/NJU-1464941173.13 头歌实践教学平台.数字逻辑与计算机组成课内实验EB/OL.2023-08-10.https:/ GitHub.开源高性能RISC-V处理器“香山”项目EB/OL.2023-08-10.https:/ 原)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服