hi,小慕
计算机系统基础(五):x86模拟器编程实践
第2次开课
开课时间: 2022年08月22日 ~ 2022年12月30日
学时安排: 3-5小时每周
当前开课已结束 已有 2787 人参加
立即自学
往期不提供结课证书,想参加下学期课程, 点击这里预约>>
课程详情
课程评价(70)
spContent=《计算机系统基础(五):x86模拟器编程实践》通过将理论和实践紧密结合,帮助同学们以实验的方式,掌握计算机系统相关的核心知识并锻炼编程动手能力。
《计算机系统基础(五):x86模拟器编程实践》通过将理论和实践紧密结合,帮助同学们以实验的方式,掌握计算机系统相关的核心知识并锻炼编程动手能力。
—— 课程团队
课程概述

《计算机系统基础(五):x86模拟器编程实践》这门课程的内容,是使用C语言,编程构建一个简化,但是全功能的i386模拟器。通过编程实践,深入理解并掌握计算机系统基础相关的知识。在进行本课程的学习前,需要大家在理论知识和编程技能方面,具有一定的基础。在理论知识方面,需要大家首先掌握《计算机系统基础》这门课程的理论内容。PA的每一个阶段,和理论课的各个章节之间都有对应关系,我们会随着课程的开展,介绍这种对应关系。同学们可以一边上理论课,一边开展相应阶段的PA实践。通过本课程的学习,书本上的理论知识不再是抽象的概念和文字,而是自己亲手实现的模拟计算机中的各个功能部件。在实践中,完成对计算机系统基础这门课程相关知识的深入理解。建立宏观的计算机系统知识框架,为将来计算机组成原理、操作系统等后续课程的学习打下坚实的基础。通过对程序执行过程的模拟,我们用高级语言编写的程序在计算机上的执行过程不再是一个对程序员透明的黑盒或灰盒。我们能够清楚地理解构成程序的每一条指令在计算机中的执行过程,从计算机系统层面,深入了解程序运行的内在机理。当然,作为一个小规模的软件项目,同学们也能够在编程实践的过程中充分锻炼自己的C语言编程和调试能力。如果可以的话,也请大家为我们这个课程项目积极贡献代码和缺陷报告,共同推进课程的发展。

授课目标
  • 实现nemu模拟器以及kernel中的相关功能

  • 掌握计算机系统基础相关重要知识点

课程大纲
第一周 PA 0 引言
课时目标:引导学生了解课程内容并获取课程相关框架代码和资料。
PA 0 引言
PA 0-1 简介和实验环境配置
PA 0-2 PA原理与总览
PA 0-3 编译执行NEMU的方法
第二周 PA 1 数据的表示和运算(一)
课时目标:掌握通用寄存器和ALU的相关知识并进行模拟。
PA 1 引言
PA 1-1 通用寄存器的模拟
PA 1-2 ALU的模拟
第三周 PA 1 数据的表示和运算(二)
课时目标:掌握浮点数的表示和运算相关知识,模拟实现FPU。
PA 1-3 (1) FPU的模拟_Float的基本运算
PA 1-3 (2) FPU的模拟_规格化和舍入
第四周 PA 2 程序的执行(一)
课时目标:掌握i386指令解码的原理和方法。
PA 2 引言
PA 2-1 (1) 指令的模拟_指令循环的模拟
PA 2-1 (2) 指令的模拟_指令的解码与解释执行
第五周 PA 2 程序的执行(二)
课时目标:在NEMU中实现对指令解码与执行的模拟。
PA 2-1 (3) 指令的模拟_NEMU中实现对i386指令的模拟
PA 2-1 (4) 指令的模拟_框架代码中宏的运用
第六周 PA 2 程序的执行(三)
课时目标:掌握ELF文件的相关知识,在PA中实现对ELF文件的装载。
PA 2-2 (1) ELF可执行文件的装载
PA 2-2 (2) 在Kernel中实现ELF文件的装载
第七周 PA 3 层次结构存储器(一)
课时目标:掌握Cache的原理并模拟实现。
PA 3 引言
PA 3-1 Cache的模拟
第八周 PA 3 层次结构存储器(二)
课时目标:掌握保护模式和分段机制的基本原理并模拟实现。
PA 3-2 (1) 保护模式的基本原理
PA 3-2 (2) 保护模式的模拟实现
第九周 PA 3 层次结构存储器(三)
课时目标:掌握分页机制的基本原理并模拟实现。
PA 3-3 (1) 分页机制的基本原理
PA 3-3 (2) 分页机制的模拟实现
第十周 PA 4 I/O与外设
课时目标:掌握异常和中断的处理方法,并以此为基础,实现外设和I/O功能的模拟。
PA 4 引言
PA 4-1 (1) 异常和中断的基本原理
PA 4-1 (2) 异常和中断的模拟实现
PA 4-2 外设与IO
展开全部
预备知识
  • C语言程序设计基础

  • 数据结构

  • 计算机系统基础理论知识

参考资料
南京大学
2 位授课老师
汪亮

汪亮

副教授

袁春风

袁春风

计算机科学与技术系教授

下载
下载

下载App