1. gem5 实践
本周继续深入 gem5 教程:Learning gem5 ,在全新安装的 Ubuntu20.04 环境中完成实验复现与编译。
进展
- 从零环境配置与编译顺利完成。
遇到的挑战
- 在 WSL2 中多次遭遇 OOM,原因是默认内存上限(约主机 50%)不足以支撑编译。
解决方案
- 改为原生 Ubuntu 环境后问题消失,编译稳定完成,进一步认识到合适的开发环境对效率的重要性。
反思与下一步
- 继续完成剩余章节后,尝试脱离教程独立创建一个最小 SimObject。
- 查阅并分析开源 gem5 项目代码结构与脚本组织方式。
- 整理当前实验命令与脚本模板,提高复用性。
2. 计算机体系结构理论学习
- 课程:Onur Mutlu 《数字设计与计算机体系结构 (2021)》
- 进度:完成前三章 + 大部分 Reading Assignments。
- 体会:课程对底层设计理念、性能权衡与结构抽象的讲解帮助自己构建更系统的“全栈性能”视角。
3. 操作系统学习
- 课程:南京大学《操作系统》
- 状态:采用“边学边补”策略,针对不熟悉的前置点(并发基本模型 / 内存管理概念 / 异步与中断机制)同步补课。
- 观察:课程信息密度高,适合结合官方代码与 Lab 同步推进,后续计划引入实践环节(如写一个最小的协作式调度器原型)。
4. 收获与反思
- 环境问题处理:通过迁移到原生系统,减少了“工具阻塞”成本,验证了“先保障生产力基础”这一原则。
- 理论 + 实践:体系结构课程帮助理解 gem5 中抽象建模的合理性;OS 课程为后续在仿真平台上做系统级实验打基础。
- 能力短板:脚本自动化(构建、批量测试)仍欠规范,后续需要整理一套可重复执行的指令/脚本清单。
5. 下周计划
| 目标 | 细项 | 预期产出 |
|---|---|---|
| gem5 进阶 | 完成教程剩余部分;尝试新建 SimObject | 1 个最小可运行自定义组件 |
| 体系结构 | 进入第 4 ~ 8 章,做阅读笔记 | 笔记(结构 + 对比图) |
6. 简短总结
本周在“工具链稳定 + 理论骨架成形”两点上达到预期。接下来重点从“跟学”转向“迁移 + 创造”,以小型自建对象与脚本自动化为突破口,提升实验效率与理解深度。
Comments