计算机系统导论课程教学思路及课程资源建设.pdf
《计算机系统导论课程教学思路及课程资源建设.pdf》由会员分享,可在线阅读,更多相关《计算机系统导论课程教学思路及课程资源建设.pdf(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对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 导论 课程 教学 思路 资源 建设
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。