进展记录:向老师的石墨文档
最终报告 PPT:《阶段 3 学习总结 + 实现 rCore 异步定时器驱动》
每周任务(均完成)
- 第 2 周:用户态协程(爬虫)
- 第 3 周:向 embassy 提交修复 Waker unsoundness 的 PR(已合并)
- 第 4-6 周:将 embassy 应用于 rCore 定时器驱动
- 仓库地址:rCore-tutorial-code-2024S-embassy
- 文档:仓库 README 或者 os-notes/rCore-embassy-timer
开发日志
- rCore-N (共享调度器 fork) 搭建和踩坑
- cortex-m-quickstart 的 qemu 模拟记录
- embassy-usage(学习 embassy 时,自己编写的示例仓库)
- 研究 embassy 库的经验之谈 (RA 配置、条件编译、check-cfg)
- green-thread(整合绿色线程代码到单独的仓库)
学习笔记
- embassy: TaskStorage
- embassy: embassy_time_driver::Driver
- embassy: sync:zerocopy_channel (SPSC) 和 MPMC Channel
- embassy: integrated-timers 和任务机制:任务类别、任务调度与执行、任务的状态与改变、添加和删除任务、任务与 Future
其他工作
- 学习 rCore-N 共享调度器项目代码
- 学习 embassy std 例子时,使用 Miri 碰到 UB 和 ICE
- 报告 ICE 给 Miri:ICE due to overflow when using a large timeout with futexes
- 在造成 UB 的 critical-section 仓库下留言,提供更多信息:Mitigate Miri violation
- 每周线上讨论时准备的 PPT
- 补充基础知识:反复观看讨论的视频回放,把里面提及的新知识全部查一遍