跳转至

计算机系统基础(ICS)

教学班与年份

ICS 的开课学期、教师、学分口径和实验分支可能随年级及教学班变化。本页不提供固定元数据;请以所在年级培养方案、教务系统和当年 PA 通知为准。历史课表只能证明对应学期的安排,不能外推到当前教学班。

课程关注什么

ICS 连接高级语言程序、机器级执行和操作系统抽象。常见主题包括:

  • 整数、浮点数和位级数据表示;
  • 指令集、汇编、函数调用与程序的机器级表示;
  • 链接、异常控制流、存储层次和虚拟存储;
  • 使用调试器、构建工具和系统接口观察程序行为。

具体 ISA、教材章节和理论范围会随教学班调整,不应把某一届经验页写成统一考纲。

Project-N 与 PA

2025 版 PA 官方指导书 将 NEMU 描述为经过简化但功能完整的计算机系统模拟器。PA 的核心价值是通过实现和调试理解程序如何执行,而不是收集一套固定答案。

公开指导书覆盖的能力模块可以概括为:

  1. 环境与工具:Linux 命令行、Git、Make、编译器和调试器。
  2. 模拟器基础设施:表达式求值、监视点、寄存器与内存检查等调试能力。
  3. 指令执行与设备:取指、译码、执行及 I/O 相关抽象。
  4. Abstract-Machine 与系统软件:在统一抽象上理解运行时、异常、系统调用、文件和多任务等概念。
  5. 性能与验证:使用测试、基准和剖析定位瓶颈;公开指导书还包含性能优化内容,不能只把 PA 简化成 PA0 至 PA4 的旧版标题表。

模块边界、编号、必做/选做项和目标 ISA 均应以当年分发的指导书为准。第三方路线图只能用于建立概念索引。

学习方法

  1. 以规范和手册为起点:先核对任务定义、接口约束和 ISA/ABI 文档,再开始实现。
  2. 建立最小可复现测试:把复杂故障缩小到一条指令、一次状态转换或一个最小程序,并记录预期状态与实际状态。
  3. 掌握 GDB 与差分调试:断点、观察点、调用栈、反汇编和内存检查通常比堆叠日志更有效。
  4. 持续提交自己的过程:小步提交设计、测试和修复,既便于回归,也能保留独立完成的证据链。

资料分级

学术诚信警告

PA 通常要求独立完成,并可能通过代码相似度、历史提交、答辩和人工复核检查学术诚信。不要查找、复制、改写或传播他人的 PA 实现,也不要提交由生成式 AI 直接产出的代码。讨论应停留在课程允许的概念和调试边界内;代码复用、协作及 AI 工具的具体规则以当年书面要求为准。