跳转至

关于课程

jyy的操作系统在国内属于比较有名的操作系统课程,在csdiy这样的网站上也有收录。jyy也是很有耐心很负责任人的老师,值得体验一下。

关于这门课的信息具体可以看jyywiki

成绩构成

笔者在2022年春季选修的时候成绩构成如下

  • OSLab+MiniLab 50%
  • 期中(线上) 10%
  • 期末 40%

关于考试

期中考是可选的,如果不参加期中考的话期末将以50%计入成绩

期中考主要是一个小的并发编程oj,一个简单的构造题(提交一组解)。成功提交即可获得90%的成绩,也就是说只要交一个空的repo就有%9的总评了...

期末考是5~6道大题,每道大题都是内部有联系的若干简答题,内容包括但不限于:

  • 列举出至少五个binutils中的工具
  • 简述如何为虚拟机提供“快照”功能
  • 写出execve的参数类型(不要求与手册完全一致)
  • 用 信号量/自旋锁/条件变量 实现读写锁(给出伪代码)

据称每年jyy都会调整曲线让大家的成绩好看一些

关于实验

MiniLab

有5个小实验,主要是一些Linux上的C语言编程,结合了一点点调API的知识就可以做,都是不超过200行就能完成的小程序

  • 打印进程列表
  • 实现用户态线程
  • 统计程序在各系统调用上花费的时间
  • 利用动态链接实现C程序的“解释”执行
  • 恢复FAT32镜像里的图片文件

都是非常有意思的实验,做完就会对探索操作系统和写程序有新的体会了。

OSLab

有5个实验,2022年因为jyy要监考APIO的原因,实验4变成了选做(根本没有发布)

  • 熟悉AM平台
  • 并发的内存分配器
  • 任务调度和并发原语(锁和信号量)
  • 用户态进程和若干系统调用
  • 文件系统

做OSLab需要掌握一些debug技巧,比较熟悉工具的使用,还要有一点耐心。做完就会发现操作系统没有原本那么神秘了。

生存技巧

课堂上会推荐MIT的xv6代码作为参考,比较合适的做法是:自己写一遍->Debug->看xv6-book->看xv6代码->恍然大悟->回到步骤1 实际上也可以对着xv6抄,不过抄代码也是有技巧的,个人建议抄设计>>抄实现。

官方推荐的教材OSTEP读起来有轻飘飘的感觉,如果觉得不够过瘾可以看SJTU的OS教材《现代操作系统》,那本要更新一些。

jyy在课堂上会演示非常多的代码片段,最好是每周找一个时间过一遍,弄清楚代码是怎么跑起来的。课程在B站也有回放。

给分

还没出分。

总结

这门课与大班的操作系统相差非常大,侧重点也完全不同。如果是为了准备考研or选修学分的话,完全可以选择大班的课程。但是这门课的优点在于它非常硬核,jyy也是年轻的前沿研究者,你可以在这堂课上看到很多CS的前沿研究方向、研究方法,一些关于出路和未来的话题也可以在Office Hour向jyy咨询。

评论