计算机系统基础实验选修课 (2025 秋季学期)

news-icon2本课程(计算机系统基础实验选修,即PA实验课)相应课程内容及授课方式会根据软院课程设计有所调整。

news-icon2课程虽为选修课,但课程实验压力大(足够困难但也能够带来足够训练与提升),但要求同学们选课后必须独立完成,请同学们评估自身课程压力,谨慎选择!(合理劝退一波>_<)


课程简介

大家在数字电路里都实现过“状态机”,例如一个计数器内部存储了数字 $x$,每次按下开关执行 $x\leftarrow (x+1)\bmod 3$。计算机系统基础这门课 (以及实验部分) 最重要的 take-away message,就是告诉大家日常使用的计算机本质上也是这么一个状态机。在实验课中,我们会用代码严谨地带大家理解这样的 “状态机” 的状态定义、状态转换,以及与外界的交互方式。

实验课首先承担了大家对 “系统编程” 能力的训练,大家会熟悉 Linux 命令行工具的使用,在将命令行工具变成大家日常生活一部分的同时,完成一系列的编程实验。

理解一个系统的最佳实践就是去实现它。因此在本课程的PA 部分,你将会在框架代码的基础上实现一个 RISC-V 全系统模拟器 NEMU,它不仅能运行各类测试程序,甚至还可以运行操作系统和 “仙剑奇侠传”。模拟过硬件的执行,自然就能深 (痛) 入 (苦) 理解计算机系统了。

  • 软件学院:周三 第5-6节 教108 1-18周
  • 任课老师:王慧妍<why@nju.edu.cn> (Office hour: 每周三16-17pm)
  • 荣誉顾问:蒋炎岩<jyy@nju.edu.cn> 余子濠<yuzihao@ict.ac.cn>(PA作者)
  • 助教组:
    • 李晗:<hanli@smail.nju.edu.cn>
    • 陈哲敏:<231250123@smail.nju.edu.cn>
    • 何棋:<231250083@smail.nju.edu.cn>
    • 杨承岳:<231250186@smail.nju.edu.cn>

课程资料

  1. The Missing Course of Your CS Education [slides]

实验布置

PA大作业

每次实验前,请仔细阅读实验须知/提交方法PA实验指南

DDL仅代表bonus计分截点,所有实验过时间均可继续提交算分,Hard Deadline后停止所有提交。

  • PA0: 环境安装与配置
  • PA1: [监视器]
  • PA2: [模拟指令运行]
  • PA3: [中断与异常]
  • PA4: [分时多任务]

PA+X设施

  • PA1+: [监视器+Test]
  • PA2+: [模拟指令运行+Opt]

期末现场赛

本学期增设现场赛(有限时间内完成在PA项目上的新任务),我们会控制好难度和程度。

自行完成PA的同学基本难度能够接受,请务必保证PA自己独立完成,否则现场赛几乎无解,

  • 题目未定