各高校:
在教育部高等学校计算机类专业教学指导委员会(简称“教指委”)的组织和推动下,以南京大学、清华大学、北京航空航天大学、国防科技大学、中国科技大学、北京大学、上海交通大学、浙江大学为代表的一批国内重点高校率先开展了以培养计算机类专业学生系统能力为目标的课程和教学改革。近两年,教指委公布了两批“系统能力培养——专业课程体系改革及课程建设”项目示范院校和试点院校,引导系统能力培养课程改革向不同类型、不同层次高校推进,促使越来越多的高校迫切希望对研究项目中的核心课程——“计算机系统基础”进行导教。
在已经成功举办五届“计算机系统基础”课程导教班的基础上,经过对授课教师的广泛调研,教育部高等学校计算机类专业教学指导委员会、南京大学计算机科学与技术系、机械工业出版社华章分社将联合举办“2018年计算机系统基础课程导教班”。本次导教班特邀南京大学袁春风教授、南京大学苏丰副教授、南京大学唐杰副教授、南京师范大学鲍培明副教授以及本课程实验设计者余子濠主讲。本次导教班重点在于“计算机系统基础”课程的实验教学,讲师团队精心安排了课程和实验内容,期望为开设此课程或有意开设此课程的教师搭建交流平台,进一步推动课程的建设。
敬请各高校选派课程相关教师参会交流。
一、导教班时间安排
报到:
2018年7月23日
导教:2018年7月24日—7月29日
地点:南京大学仙林校区
二、主讲教师
袁春风 南京大学计算机科学与技术系教授。国家级精品课程和国家级精品资源共享课“计算机组成原理”主持人;江苏省精品课程“计算机组成与系统结构”主持人;普通高等教育“十二五”国家级规划教材《计算机组成与系统结构》主编;国家级教学成果二等奖、江苏省教学成果特等奖和江苏省“质量工程”教学奖励获得者。主要研究领域为大数据计算与并行处理技术等,获江苏省科技进步二等奖两次。
唐杰 南京大学计算机科学与技术系副教授,“计算机系统基础”课程主讲教师。2013年7月至2014年2月在美国普渡大学电气与计算机工程学院访问学者。主持或参与过十多项科研项目的研究和开发工作,包括国家“十二五”科技重大专项、863 课题、国家自然科学基金、江苏省自然科学基金课题等,获得过国防科工委科技进步二等奖一次,在国内外学术会议和学术期刊上发表论文30 多篇,获得国家发明专利授权2项。
苏丰 南京大学计算机科学与技术系副教授,“计算机系统基础”课程主讲教师。 分别于2000年和2002年在香港理工大学、微软亚洲研究院进行短期访问研究和合作开发, 2005.12-2006.12赴法国从事图像处理方面博士后访问研究。 近年来,在国内外学术期刊和国际学术会议上发表论文40余篇。
鲍培明 南京师范大学计算机科学与技术学院副教授。主要研究领域为数据挖掘和大数据并行处理技术等。主要讲解的课程为“计算机组成与结构”、“计算机系统基础”和“并行程序设计”。
余子濠 中国科学院计算技术研究所博士生,毕业于南京大学计算机科学与技术系,教学版x86模拟器NEMU和“计算机系统基础”课程实验PA的设计者。多年担任该课程实验的助教,并不断完善实验的设计。现参与全系统教学实验ProjectN的设计与开发。主要研究方向包括数据中心云计算架构与QoS保障,参与国家重点研发计划项目“软件定义的云计算基础理论与方法”,为项目中率先创新提出的标签化体系结构的首席架构师,对系统能力在系统性科研项目中的作用有较深刻的体会。
三、导教班内容安排
基于前五届导教班的教师反馈、对高校授课教师的调研,并结合《计算机系统基础》(第2版)(袁春风著,2018年7月出版)教材内容,本次导教班课程安排如下。
◎ 课程教学目的与要求
使学生能从程序员角度认识计算机系统,能够建立高级语言程序、ISA、OS、编译器、链接器等之间的相互关联,对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解,从而增强学生在程序调试、性能提升、程序移植和健壮性等方面的能力,并为后续的“计算机组成与设计”、“操作系统”、“编译技术”、“计算机体系结构”等课程打下坚实基础。
学完本课程后,学生应对以下问题有比较深刻的认识:
程序中处理的数据在机器中如何表示和运算?
程序中各类控制语句对应的机器级代码结构是怎样的?
多个程序模块是如何链接起来形成可执行目标文件的?
机器级代码及构成机器级代码的指令是如何在机器上执行的?
指令执行过程中最重要的存储访问操作是如何进行的?
操作系统内核是如何打断应用程序的正常执行的?
程序中I/O操作功能是如何通过请求操作系统内核提供的系统调用服务来完成的?
◎ 课程教学内容简介
本课程的内容主要包含三个主题:(1)表示。主要包括:不同数据类型(如带符号整数、无符号整数、浮点数、数组、结构等)的数据在寄存器或存储器中如何表示和存储、指令的表示和编码、存储地址(指针)的表示以及复杂数据结构中数据元素的地址的表示。(2)转换与链接。主要包括:高级语言程序与机器级代码的对应关系,以及如何将多个可重定位目标模块链接生成可执行目标文件。(3)执行控制流。主要包括:机器级代码的执行流程、特别是指令执行过程中的访存过程、逻辑控制流中的异常事件及其处理、I/O操作的执行控制流(如何从用户态转入内核态执行)。
本课程主要介绍高级语言程序中的数据类型及其运算、语句和过程调用等是如何在计算机系统中实现的,从宏观上介绍计算机系统涉及到的各个层次。主要内容包括:数据的机器级表示和基本运算、程序的转换及机器级表示、程序的链接、程序和指令的底层执行机制、存储器层次结构、Cache、虚拟存储器、异常和中断、I/O操作的实现机制等。
导教班教学安排
根据前五届“计算机系统基础”课程导教班反馈情况,本次导教班的重点为相关实验讲解,包含三类实验:程序验证性小实验、Lab实验和简化PA实验,共7天,其中上课时间为5天半。
程序验证性实验是相对独立的一系列编程及调试小练习,通过C语言程序及其调试过程、执行结果和反汇编结果等多种形式,让学生通过实例来加深对每个特定概念和知识点的理解,适合所有学校在课堂教学或实验教学环节使用。
Lab实验是一系列小实验,相对完整和独立,目标集中且规模较小,分别围绕二进制数据表示、程序目标代码的表示与跟踪调试、缓冲区溢出攻击与防范、ELF格式与链接及加载、Cache模拟与程序性能等进行实验,适合所有学校的实验教学环节使用。
简化PA实验是对南京大学PA实验的裁剪版本,只包含完整版本的前两个主要实验的内容。简化实验要求实现一个简化的x86模拟器NEMU,最终完成一个包含指令系统和基本输入输出功能的冯诺依曼计算机系统,并在其中运行超级玛丽游戏。简化PA实验主要考察C语言编程基础、指令系统和指令执行过程、I/O子系统基本概念等方面的内容,与上述两种实验相比,具有一定的连贯性和系统性,难度也稍高,但尚未包含异常处理和虚拟内存等对系统能力要求较高的内容,因而适合C语言课程基础较好的学校。简化PA实验也可以看作一个CPU设计实验,由于是使用C语言开发,因此比使用HDL语言来设计CPU难度低一点,对于已经开设CPU设计实验课程的学校,本实验也可以作为实验教学内容。
教学内容安排
天 | 单元 | 讲课内容及主讲人 | 内 容 说 明 |
7月24日 | 上午 | 课程总体内容讲解 (袁春风老师) | 分析经典的公司招聘题案例,介绍国际一流大学相关课程设置与教学内容,分析本课程在计算机系统层次结构中的地位,分析本课程与其他相关课程之间的关联;本课程教学计划、教学内容关联和重难点讲解。提供所有教学授课讲义,对教学讲义进行快速浏览,重点说明教学计划、学时分配、教学重点和难点问题,以及教学中遇到的问题和处理方案。 |
下午 | 程序验证性小实验 (鲍培明老师) | 通过C语言程序及其调试过程、执行结果和反汇编结果等多种形式,让学生通过实例加深对每个特定概念和知识点的理解。提供Windows和Linux两种开发环境下的程序设计和调试实验。 | |
7月25日 | 上午 | Lab1:位运算 (唐杰老师) | 本实验的目的是为了更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。实验中,学生需要解开一系列编程“难题”——使用有限类型和数量的运算操作实现一组给定功能的函数,在此过程中学生将加深对数据二进制编码表示的了解。 实验语言:C;实验环境:Linux。 |
下午 | Lab2:二进制炸弹 (唐杰老师) | 本实验要求学生拆除一个“binary bombs”来增强对程序的机器级表示、汇编语言、调试器和逆向工程等方面原理与技能的掌握。为完成二进制炸弹拆除任务,学生需要使用gdb调试器和objdump来反汇编炸弹的可执行文件并单步跟踪调试每一阶段的机器代码,从中理解每一汇编语言代码的行为或作用,进而设法推断拆除炸弹所需的目标字符串。实验语言:C;实验环境:Linux。 | |
7月26日 | 上午 | Lab3:缓冲区溢出 (苏丰老师) | 本实验的目的在于加深对IA-32函数调用规则和栈结构的具体理解。实验的主要内容是对一个可执行程序"bufbomb"实施一系列缓冲区溢出攻击(buffer overflow attacks),也就是设法通过造成缓冲区溢出来改变该可执行程序的运行内存映像。实验语言:C;实验环境:Linux。 |
下午 | Lab4:ELF格式与链接 (苏丰老师) | 修改和完善一个由多个模块组成的程序(称为“linkbomb”),使其在运行时满足指定要求。需要完成的修改包括:1)修改二进制可重定位目标文件(.o文件)的内容;2)依照模块链接的需求,编写相应C语言程序模块,实现特定函数接口(基于从二进制目标模块中发现的接口函数调用形式)。 | |
7月27日 | 上午 | Lab5:ELF加载与监控 (余子濠博士) | 加载并执行静态链接的ELF程序。在程序执行过程中随机注入段错误,要求打印出发生段错误时的函数调用链。考察ELF加载、栈帧等知识。 |
Lab6:Cache模拟与性能 (余子濠博士) | 编写C程序来模拟Cache缓存的行为,并注入程序访存序列,要求学生实现不同的替换算法,并进行性能对比。 | ||
下午 | Lab7:代码劫持 (余子濠博士) | 实现浮点数定点化,并通过自修改代码劫持printf的浮点数输出函数。综合考察浮点数表示、函数调用、ELF格式、链接、虚拟地址空间等概念。 | |
7月28日 | 上午 | Lab8:小型判题系统 (余子濠博士) | 模拟一个小型的在线判题系统,通过fork-exec启动待测试程序,同时通过ptrace系统调用检查并拦截禁止待测试程序使用的系统调用。从用户程序的角度了解程序的加载与执行、系统调用接口等概念,同时了解UNIX编程规范。 |
Lab9:性能监控器 (余子濠博士) | 通过文件操作从procfs抓取系统性能信息,包括CPU频率、内存使用情况、磁盘带宽等,理解Linux中“一切皆文件”的设计原则。 | ||
下午 | PA1:简易调试器 (余子濠博士) | Ø 通过实现寄存器结构体、单步执行、打印寄存器、扫描内存功能,了解计算机的基本工作过程。 Ø 通过实现表达式求值功能,复习递归。 Ø 通过实现监视点,复习链表。 | |
7月 29日 | 上午 | PA2:冯诺依曼计算机系统
(余子濠博士) | Ø 了解指令生命周期。 Ø 通过用微指令实现常用x86指令,强化有/无符号数据表示、大/小端方式、调用约定等课程知识。实现后,NEMU可以运行各种纯粹计算的程序。 Ø 实现简单的输入输出,了解I/O的基本工作方式与I/O编程。实现后,NEMU可以运行打字游戏,超级玛丽等带输出输入功能的程序。 |
下午 | 课程教学研讨会 |
|
四、报名须知
1. 本次导教班费用:2500元/人。
缴费方式:A 现场缴费,现金、刷卡(银行卡、公务卡均可)
B 汇款,汇款账号信息具体如下 [ 汇款时请务必注明:2018年“计算机系统基础”课程导教班+学校名+姓名(例如,2018年“计算机系统基础”课程导教班+北京大学+张三等2人)]:
开户行:中国工商银行百万庄分理处,银行12位代码:102100000144
户 名:北京华章图文信息有限公司
账 户:0200 0014 0900 6799 252
用 途:2018年“计算机系统基础”课程导教班会务费
2. 报到时间: 7月23日下午14:00以后。
3. 交通费、食宿费自理。会议推荐住宿酒店为南大国际会议中心,会务组预订了一些房间,数量有限,先到先得(见报名回执)。如需预订南京大学仙林校区周边其他酒店,请参会老师自行预订,会务组不代为预订。
4. 参会教师请填写附件中的报名回执发至会议联系人处,收到会议联系人的回复邮件后方为报名成功。
会议联系人:陈蕾
邮箱: shoffice@hzbook.com, 电话021-63078048, 13816182483。
教育部高等学校计算机类专业教学指导委员会
南京大学计算机科学与技术系
机械工业出版社华章分社
(北京华章图文信息有限公司)2018年“计算机系统基础”课程导教班报名回执
姓 名 |
| 性 别 |
|
学校院系 |
| ||
发票抬头 |
| 发票税号(社会信用代码) |
|
职 务 |
| 职 称 |
|
手 机 |
| 微信号码 |
|
电子邮箱 |
| ||
本次会议推荐入住南大国际会议中心,会务组已经提前预订了一些房间,数量有限,先到先得。请需要会议预留房间的老师尽早提交报名回执。 | |||
会议推荐宿住宿酒店 | 南大国际会议中心(仙林大道163号南京大学仙林校区东门内) 行政双人间,会议协议价:458元/间/天 £ 标准大床房,会议协议价:368元/间/天 £ 豪华大床房,会议协议价:380元/间/天 £ 入住时间:7月23日,退房时间:7月29日 | ||
参会老师也可以自己选择其他合适的宾馆,根据宾馆规定,需要自己预订。 | |||
周边可选住宿地点 | (1)南京体育学院仙林校区冠军楼大酒店(仙林大道169号体育局训练中心转训中心),电话:025-85788889 (2)南京棉铭快捷宾馆(仙林大道168号南大仙林校区南大和园商业街) 电话:025-84668877 (3)南京英尊假日酒店(仙林大道168号) 电话:025-85600777 | ||
对本次会议的期望 |
| ||
备注 |
| ||
各高校:
在教育部高等学校计算机类专业教学指导委员会(简称“教指委”)的组织和推动下,以南京大学、清华大学、北京航空航天大学、国防科技大学、中国科技大学、北京大学、上海交通大学、浙江大学为代表的一批国内重点高校率先开展了以培养计算机类专业学生系统能力为目标的课程和教学改革。近两年,教指委公布了两批“系统能力培养——专业课程体系改革及课程建设”项目示范院校和试点院校,引导系统能力培养课程改革向不同类型、不同层次高校推进,促使越来越多的高校迫切希望对研究项目中的核心课程——“计算机系统基础”进行导教。
在已经成功举办五届“计算机系统基础”课程导教班的基础上,经过对授课教师的广泛调研,教育部高等学校计算机类专业教学指导委员会、南京大学计算机科学与技术系、机械工业出版社华章分社将联合举办“2018年计算机系统基础课程导教班”。本次导教班特邀南京大学袁春风教授、南京大学苏丰副教授、南京大学唐杰副教授、南京师范大学鲍培明副教授以及本课程实验设计者余子濠主讲。本次导教班重点在于“计算机系统基础”课程的实验教学,讲师团队精心安排了课程和实验内容,期望为开设此课程或有意开设此课程的教师搭建交流平台,进一步推动课程的建设。
敬请各高校选派课程相关教师参会交流。
一、导教班时间安排
报到:
2018年7月23日
导教:2018年7月24日—7月29日
地点:南京大学仙林校区
二、主讲教师
袁春风 南京大学计算机科学与技术系教授。国家级精品课程和国家级精品资源共享课“计算机组成原理”主持人;江苏省精品课程“计算机组成与系统结构”主持人;普通高等教育“十二五”国家级规划教材《计算机组成与系统结构》主编;国家级教学成果二等奖、江苏省教学成果特等奖和江苏省“质量工程”教学奖励获得者。主要研究领域为大数据计算与并行处理技术等,获江苏省科技进步二等奖两次。
唐杰 南京大学计算机科学与技术系副教授,“计算机系统基础”课程主讲教师。2013年7月至2014年2月在美国普渡大学电气与计算机工程学院访问学者。主持或参与过十多项科研项目的研究和开发工作,包括国家“十二五”科技重大专项、863 课题、国家自然科学基金、江苏省自然科学基金课题等,获得过国防科工委科技进步二等奖一次,在国内外学术会议和学术期刊上发表论文30 多篇,获得国家发明专利授权2项。
苏丰 南京大学计算机科学与技术系副教授,“计算机系统基础”课程主讲教师。 分别于2000年和2002年在香港理工大学、微软亚洲研究院进行短期访问研究和合作开发, 2005.12-2006.12赴法国从事图像处理方面博士后访问研究。 近年来,在国内外学术期刊和国际学术会议上发表论文40余篇。
鲍培明 南京师范大学计算机科学与技术学院副教授。主要研究领域为数据挖掘和大数据并行处理技术等。主要讲解的课程为“计算机组成与结构”、“计算机系统基础”和“并行程序设计”。
余子濠 中国科学院计算技术研究所博士生,毕业于南京大学计算机科学与技术系,教学版x86模拟器NEMU和“计算机系统基础”课程实验PA的设计者。多年担任该课程实验的助教,并不断完善实验的设计。现参与全系统教学实验ProjectN的设计与开发。主要研究方向包括数据中心云计算架构与QoS保障,参与国家重点研发计划项目“软件定义的云计算基础理论与方法”,为项目中率先创新提出的标签化体系结构的首席架构师,对系统能力在系统性科研项目中的作用有较深刻的体会。
三、导教班内容安排
基于前五届导教班的教师反馈、对高校授课教师的调研,并结合《计算机系统基础》(第2版)(袁春风著,2018年7月出版)教材内容,本次导教班课程安排如下。
◎ 课程教学目的与要求
使学生能从程序员角度认识计算机系统,能够建立高级语言程序、ISA、OS、编译器、链接器等之间的相互关联,对指令在硬件上的执行过程和指令的底层硬件执行机制有一定的认识和理解,从而增强学生在程序调试、性能提升、程序移植和健壮性等方面的能力,并为后续的“计算机组成与设计”、“操作系统”、“编译技术”、“计算机体系结构”等课程打下坚实基础。
学完本课程后,学生应对以下问题有比较深刻的认识:
程序中处理的数据在机器中如何表示和运算?
程序中各类控制语句对应的机器级代码结构是怎样的?
多个程序模块是如何链接起来形成可执行目标文件的?
机器级代码及构成机器级代码的指令是如何在机器上执行的?
指令执行过程中最重要的存储访问操作是如何进行的?
操作系统内核是如何打断应用程序的正常执行的?
程序中I/O操作功能是如何通过请求操作系统内核提供的系统调用服务来完成的?
◎ 课程教学内容简介
本课程的内容主要包含三个主题:(1)表示。主要包括:不同数据类型(如带符号整数、无符号整数、浮点数、数组、结构等)的数据在寄存器或存储器中如何表示和存储、指令的表示和编码、存储地址(指针)的表示以及复杂数据结构中数据元素的地址的表示。(2)转换与链接。主要包括:高级语言程序与机器级代码的对应关系,以及如何将多个可重定位目标模块链接生成可执行目标文件。(3)执行控制流。主要包括:机器级代码的执行流程、特别是指令执行过程中的访存过程、逻辑控制流中的异常事件及其处理、I/O操作的执行控制流(如何从用户态转入内核态执行)。
本课程主要介绍高级语言程序中的数据类型及其运算、语句和过程调用等是如何在计算机系统中实现的,从宏观上介绍计算机系统涉及到的各个层次。主要内容包括:数据的机器级表示和基本运算、程序的转换及机器级表示、程序的链接、程序和指令的底层执行机制、存储器层次结构、Cache、虚拟存储器、异常和中断、I/O操作的实现机制等。
导教班教学安排
根据前五届“计算机系统基础”课程导教班反馈情况,本次导教班的重点为相关实验讲解,包含三类实验:程序验证性小实验、Lab实验和简化PA实验,共7天,其中上课时间为5天半。
程序验证性实验是相对独立的一系列编程及调试小练习,通过C语言程序及其调试过程、执行结果和反汇编结果等多种形式,让学生通过实例来加深对每个特定概念和知识点的理解,适合所有学校在课堂教学或实验教学环节使用。
Lab实验是一系列小实验,相对完整和独立,目标集中且规模较小,分别围绕二进制数据表示、程序目标代码的表示与跟踪调试、缓冲区溢出攻击与防范、ELF格式与链接及加载、Cache模拟与程序性能等进行实验,适合所有学校的实验教学环节使用。
简化PA实验是对南京大学PA实验的裁剪版本,只包含完整版本的前两个主要实验的内容。简化实验要求实现一个简化的x86模拟器NEMU,最终完成一个包含指令系统和基本输入输出功能的冯诺依曼计算机系统,并在其中运行超级玛丽游戏。简化PA实验主要考察C语言编程基础、指令系统和指令执行过程、I/O子系统基本概念等方面的内容,与上述两种实验相比,具有一定的连贯性和系统性,难度也稍高,但尚未包含异常处理和虚拟内存等对系统能力要求较高的内容,因而适合C语言课程基础较好的学校。简化PA实验也可以看作一个CPU设计实验,由于是使用C语言开发,因此比使用HDL语言来设计CPU难度低一点,对于已经开设CPU设计实验课程的学校,本实验也可以作为实验教学内容。
教学内容安排
天 | 单元 | 讲课内容及主讲人 | 内 容 说 明 |
7月24日 | 上午 | 课程总体内容讲解 (袁春风老师) | 分析经典的公司招聘题案例,介绍国际一流大学相关课程设置与教学内容,分析本课程在计算机系统层次结构中的地位,分析本课程与其他相关课程之间的关联;本课程教学计划、教学内容关联和重难点讲解。提供所有教学授课讲义,对教学讲义进行快速浏览,重点说明教学计划、学时分配、教学重点和难点问题,以及教学中遇到的问题和处理方案。 |
下午 | 程序验证性小实验 (鲍培明老师) | 通过C语言程序及其调试过程、执行结果和反汇编结果等多种形式,让学生通过实例加深对每个特定概念和知识点的理解。提供Windows和Linux两种开发环境下的程序设计和调试实验。 | |
7月25日 | 上午 | Lab1:位运算 (唐杰老师) | 本实验的目的是为了更好地熟悉和掌握计算机中整数和浮点数的二进制编码表示。实验中,学生需要解开一系列编程“难题”——使用有限类型和数量的运算操作实现一组给定功能的函数,在此过程中学生将加深对数据二进制编码表示的了解。 实验语言:C;实验环境:Linux。 |
下午 | Lab2:二进制炸弹 (唐杰老师) | 本实验要求学生拆除一个“binary bombs”来增强对程序的机器级表示、汇编语言、调试器和逆向工程等方面原理与技能的掌握。为完成二进制炸弹拆除任务,学生需要使用gdb调试器和objdump来反汇编炸弹的可执行文件并单步跟踪调试每一阶段的机器代码,从中理解每一汇编语言代码的行为或作用,进而设法推断拆除炸弹所需的目标字符串。实验语言:C;实验环境:Linux。 | |
7月26日 | 上午 | Lab3:缓冲区溢出 (苏丰老师) | 本实验的目的在于加深对IA-32函数调用规则和栈结构的具体理解。实验的主要内容是对一个可执行程序"bufbomb"实施一系列缓冲区溢出攻击(buffer overflow attacks),也就是设法通过造成缓冲区溢出来改变该可执行程序的运行内存映像。实验语言:C;实验环境:Linux。 |
下午 | Lab4:ELF格式与链接 (苏丰老师) | 修改和完善一个由多个模块组成的程序(称为“linkbomb”),使其在运行时满足指定要求。需要完成的修改包括:1)修改二进制可重定位目标文件(.o文件)的内容;2)依照模块链接的需求,编写相应C语言程序模块,实现特定函数接口(基于从二进制目标模块中发现的接口函数调用形式)。 | |
7月27日 | 上午 | Lab5:ELF加载与监控 (余子濠博士) | 加载并执行静态链接的ELF程序。在程序执行过程中随机注入段错误,要求打印出发生段错误时的函数调用链。考察ELF加载、栈帧等知识。 |
Lab6:Cache模拟与性能 (余子濠博士) | 编写C程序来模拟Cache缓存的行为,并注入程序访存序列,要求学生实现不同的替换算法,并进行性能对比。 | ||
下午 | Lab7:代码劫持 (余子濠博士) | 实现浮点数定点化,并通过自修改代码劫持printf的浮点数输出函数。综合考察浮点数表示、函数调用、ELF格式、链接、虚拟地址空间等概念。 | |
7月28日 | 上午 | Lab8:小型判题系统 (余子濠博士) | 模拟一个小型的在线判题系统,通过fork-exec启动待测试程序,同时通过ptrace系统调用检查并拦截禁止待测试程序使用的系统调用。从用户程序的角度了解程序的加载与执行、系统调用接口等概念,同时了解UNIX编程规范。 |
Lab9:性能监控器 (余子濠博士) | 通过文件操作从procfs抓取系统性能信息,包括CPU频率、内存使用情况、磁盘带宽等,理解Linux中“一切皆文件”的设计原则。 | ||
下午 | PA1:简易调试器 (余子濠博士) | Ø 通过实现寄存器结构体、单步执行、打印寄存器、扫描内存功能,了解计算机的基本工作过程。 Ø 通过实现表达式求值功能,复习递归。 Ø 通过实现监视点,复习链表。 | |
7月 29日 | 上午 | PA2:冯诺依曼计算机系统
(余子濠博士) | Ø 了解指令生命周期。 Ø 通过用微指令实现常用x86指令,强化有/无符号数据表示、大/小端方式、调用约定等课程知识。实现后,NEMU可以运行各种纯粹计算的程序。 Ø 实现简单的输入输出,了解I/O的基本工作方式与I/O编程。实现后,NEMU可以运行打字游戏,超级玛丽等带输出输入功能的程序。 |
下午 | 课程教学研讨会 |
|
四、报名须知
1. 本次导教班费用:2500元/人。
缴费方式:A 现场缴费,现金、刷卡(银行卡、公务卡均可)
B 汇款,汇款账号信息具体如下 [ 汇款时请务必注明:2018年“计算机系统基础”课程导教班+学校名+姓名(例如,2018年“计算机系统基础”课程导教班+北京大学+张三等2人)]:
开户行:中国工商银行百万庄分理处,银行12位代码:102100000144
户 名:北京华章图文信息有限公司
账 户:0200 0014 0900 6799 252
用 途:2018年“计算机系统基础”课程导教班会务费
2. 报到时间: 7月23日下午14:00以后。
3. 交通费、食宿费自理。会议推荐住宿酒店为南大国际会议中心,会务组预订了一些房间,数量有限,先到先得(见报名回执)。如需预订南京大学仙林校区周边其他酒店,请参会老师自行预订,会务组不代为预订。
4. 参会教师请填写附件中的报名回执发至会议联系人处,收到会议联系人的回复邮件后方为报名成功。
会议联系人:陈蕾
邮箱: shoffice@hzbook.com, 电话021-63078048, 13816182483。
教育部高等学校计算机类专业教学指导委员会
南京大学计算机科学与技术系
机械工业出版社华章分社
国北京西城区百万庄大街22号
邮编:100037
电子邮箱:cmpedu@cmpedu.com
教材网咨询:010-88379833
网上购书:010-88379170 / 9693
团购热线:010-68326294
随手扫一扫~了解多多