| 选课类别:计划内与自由选修 | 教学类型:理论实验课 |
| 课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
| 课程层次:专业核心 | 学分:4.0 |
操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。因此本课程的目的是使学生通过本课程的学习,理解操作系统的基本概念和主要功能,通过实例讲解,掌握常用操作系统(如Unix、Linux)中的关键技术,为学生以后的学习、工作和研究打下基础。
今天是lab2的第一次检查。夸夸助教,非常乐意听取学生意见,甚至主动询问学生认为的这次实验的不足,并且逐条记录,助教也主动解释是因为这次实验准备时间不足,考虑到理论课进度,把后面的实验提到这次,所以写的比较仓促,针对同学们提到的问题都会在后续实验中避免。我也相信后续实验会有较大提升!
再更新一下,助教似乎看到了这条评论,撤下了Lecture Companion的相关内容。由于学校gitlab不可访问的原因,延长了hw2的ddl。同时也修改了git拉取有关代码使用origin拉取的问题。目前来看,助教还是愿意听取学生意见的。期待后续实验内容能有更好地呈现。
回复一下评论区的朋友,这个实验文档有一些代码似乎都是未经审查的,存在一些打开并复制到vscode里就会被编译器提示报错的代码。包括助教似乎经常忘记学生拉取代码需要从upstream拉取而非origin拉取,让我对这个实验文档的质量存疑。
诚然,我自己也是纯vibe coding完成的实验,但这与课程实验的初心可能不太相符。过大的作业量和黑话满篇、不说人话的实验文档会让更多的学生“纯”vibe coding完成,而难以理解为什么要这样写代码,也缺失了实操的过程,造成事实上的“劣币驱逐良币”。
学期还没结束,这个实验文档看的我火大,来评课社区喷一下。
助教自认为自己很懂vibe coding, 于是这学期的所有实验产品,包括基础系统代码、实验文档、实验脚本基本都是vibe coding的产物。特别是实验文档,gpt味大的批爆,助教是直接拿codex生成的文档就弄成实验文档了吗😅?我读完我都要被助教的codex“稳稳地接住了”。文档理论上是给学生读的,不是给ai读的(当然如果真的是给ai读的那这一切就太合理了),拿着一个黑话满篇,“稳稳接住”的文档交给学生开始做实验,鄙人不太清楚助教的具体想法,以及助教是否真正尊重学生。
另外,本学期hw2的作业量尤为逆天,不太清楚是不是因为助教没有读过本科就直接读了研究生,不知道这些作业如果手搓需要花多少时间。当然,如果助教默认大家全部vibe coding的话那我无话可说。
关于文档”稳稳接住你“,文档链接在此 http://home.ustc.edu.cn/~pzw2002/ ,以下是一些实例,给大家添添乐趣。也欢迎大家在评论区持续投稿。
不是为了让大家“把实验交给 AI 来做”,而是希望大家尽早建立更稳妥的使用习惯
--摘自Lab简介
本实验的重点不是"重新实现一次模型推理",而是把 HW2 中已经能运行的用户态推理后端,封装成一个更像操作系统服务的接口
--摘自hw2
这份文档不是课件提纲,而是给你课后自己读代码用的“导航图”
--摘自Lecture Companion CH2(我想说,哪个正常人类会说“导航图”这种话?是嫌“地图”两个字太简洁太易懂吗?)
CLI 不是"命令合集",而是"命令调度器"。
--摘自Lecture Companion CH2
这一章的目标不是证明"仓库已经实现了 pthread",而是帮你看清:线程为什么比进程更轻;一个可调度执行流至少需要什么状态;当前代码如果将来要支持线程,最可能从哪里改起。
--摘自Lecture Companion CH4
这份文档是给你课后独立看进程代码用的,不是课堂提纲。
--摘自Lecture Companion CH3
也就是说,syscall 编号、分发和用户态封装基本都已经准备好了。你在必做部分真正要补的是
ai_service.c中的控制逻辑。——Lab2也就是说,用户态看到的同步接口可以保留,但底层不应再绕开异步 service 主线。——Lab2
也就是说,你只需要把系统调用层打通到
fileioctl,不需要在sys_ioctl里直接处理具体 GPU 命令细节。——Lab1所以最贴切的描述是:单内核实现 + 模块化代码组织。——CH2
先建立一个最重要的区分:Program vs Process
--摘自Lecture Companion CH3
先把边界说清:当前仓库还没有完整线程实现
--摘自Lecture Companion CH4
直接先说结论:
--摘自Lecture Companion CH4
从一个真实动作开始:在 shell 里输入
pid建议你先在系统里实际运行一次:
pid
然后按这条路径阅读代码:
--摘自Lecture Companion CH2
从一个真实程序开始:先运行
pingpong建议你先在系统里实际运行一次:
pingpong
然后按这条路径阅读代码:
--摘自Lecture Companion CH5
其实我对于 ai 写实验文档这个事情倒是没有太大的抵触。但是就是一点,对于没有接触过的人来说,这份文档太难懂。
可能助教因为已经比较理解操作系统的东西了,所以看了文档觉得没有问题?(总不能没看过吧
但是我个人读这个文档还真是有点痛苦的,首先是作业部分的文档,老师说课后作业都是对实验的一些提前预习(说到这里,老师真是一个很好的老师,会开玩笑,会讲道理,也体谅学生
但是这个作业好像有点难了,lab1的作业还只是看了配套阅读材料,回答一些小问题,文档里都有答案。lab2的作业就开始要一些实操了。但是总感觉这个文档有些说的不清不楚的,我有点不太确定哪些是必做的,比如tokenizer依赖,文档里说的是“如果要使用….完成文本和token id 互转”,对于我这种只想满足最小要求的人,对于这种如果都是当作不需要的,(因为本身也没有想往这方面深入),但是在作业要求文档里面又让我们至少先完成这个tokenizer依赖内容,再做part1….
然后是这些文档,这个文档阅读实在是有点一言难尽,就是有一种自学很困难,但是会了之后再看就理解的那种中国教材的感觉。(?反正我是这么个感觉,刚看这个文档我是真的不知所云,只能让 ai 帮我看看,我需要弄清楚什么然后要完成什么。
关于vibe coding,助教其实写了很多 ai 工具的文档,也给了很多 ai 工具的推荐,我平时也是 vibe coding,我倒是没什么想说的。但是我记得实验一还是实验零的时候有个 agent.md,大概意思是说,ai 不能直接给出代码,而应该对用户的代码进行分析和解释,然后后面的实验我又找不到这个文档了?
还有实验检查?感觉几个助教好像对我们实验理解有不同的要求?在406检查的有时候会遭遇拷打,我计时过一个蛮长的实验检查的时间,他被提问拷打了快17分钟(?
说实话我感觉有点长了,这个助教检查一个人的时间,另一个助教可以检查3个人。不太懂各个助教的内心底线。
总之感觉这个革新的实验还是需要点优化吧,这门课的课后时间已经超过我平时计组实验和CTF加起来的时间了。还真是有点困难。
这次 lab2 虽然给了三周时间,但是由于还有量物期中考,去掉备考时间,感觉也没有多很多。
(另外实验尽量不要快到 ddl 了在写,很危险,一是实验本身有些困难,可能不是那么快写完的,二是 ddl 那天检查会有很多人,而助教检查时间又比较长,时间上并不是太划算。
不谈别的,就Lab2实验文档在仔细听取头一批检查的同学的建议之后,针对痛点逐个改进,大大丰富优化了文档内容和编排而言,确实能为助教的工作打好评。助教也说Lab2留给他们的时间太少,所以没有做好,我认为是情有可原的
实验检查现采用QQ群里发所在实验室门牌号+学号的方式,按照发送顺序,助教在教室固定位置依次喊人来检查,检查通过助教会长按你的消息回复一个大拇指或者OK的符号,目前叫人的方式是直接扯嗓子喊。真的不建议清口喊人,坐在406教室的中后段很难听到,尤其是有窸窸窣窣的交谈声的时候,既然已经在QQ群里“接龙”了,或许可以考虑更进一步,直接用临时对话喊人?虽然可能带来其他问题,但是至少可以减少漏听漏号的问题,实验室也安静一点。406还有额外的debuff,因为406的同学特别多,是408的2倍左右,所以在高峰期会配3名助教检查实验,408一般只有一名,但是常常会出现408的消息下面一串大拇指,406只有零星几个大拇指的情况,甚至408空下来开始接收406的同学来检查让人特别捉急啊。至少是刚开始的一两个小时,平均每位同学要检查5到10分钟,期间接收助教的不断拷打,408的情况不太清楚,看上去效率是很高的,再加上406频繁的“跳号”和跳过的号“插队”,情况更是雪上加霜,不过也是神奇,最后基本上每条消息下面都有大拇指,除了可能是因为时间接近9点半了有些忘记或者来不及回复大拇指了。这标准相差的也太多了吧