操作系统原理与设计(李永坤) 2021春 2020春 2019春 2018春  课程号:01117402
2021春 2020春 2019春 2018春  课程号:01117402
9.1(28人评价)
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:很多
选课类别:计划 教学类型:理论实验课
课程类别:本科计划内课程 开课单位:计算机科学与技术系
课程层次:专业核心 学分:4.0
简介 最后更新:

操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。因此本课程的目的是使学生通过本课程的学习,理解操作系统的基本概念和主要功能,通过实例讲解,掌握常用操作系统(如Unix、Linux)中的关键技术,为学生以后的学习、工作和研究打下基础。

  • 教材:Operating System Concepts, Tenth Edition
  • 作业:1-2周一次,每次5-10个题目。
  • 实验:共4次。
  • PPT全英文。英文不好的建议上课记笔记。
  • 考试形式:闭卷。
  • 给分规则:考试 : 实验 : 作业 = 5 : 3 : 2,优秀率给满。
点评 写点评
排序 学期
评分 评分 28条点评
silence 2018春

置顶内容:

本班实验很难,但一般都会给满总评优秀率。选课前请仔细阅读下面写着的实验完成率,三思而行。


更新于2022年:

吐槽:苹果的M系列芯片是操作系统实验最大的bug。

其实,我们已经解决了多位同学的M1芯片环境问题,方法是:劝他们用一台旧的,或从家里寄一个x86电脑过来。所以在这里建议大家使用x86设备完成实验,旧的也可以,最多性能差一些,我们还可以让你使用旧的Ubuntu版本提升性能,至少不至于连虚拟机都没法启动、连Linux内核都编译不了。

ARM遍地是雷,而且我们助教还没有类似设备,连提前踩坑都做不了...更别说苹果和VMware他们自己可能也在踩坑呢...如果真的必须用M系列芯片,建议找找lug,他们懂的应该比我们多。


更新于2021~2022年:

这门课让我感受到了自己对系统方面的兴趣,同时也让我认识了坤哥这位人很好的老师,所以我在推免找导师的时候直接找到了坤哥。当年在这门课上投入了大量的精力与时间,现在想来应该是兴趣使然,而不是“卷”(换成其他课我根本不会做成这样)。21~22年有幸担任助教,在此放一些助教角度观察到的内容:

关于实验:

  • 实验目标:本门课程需要让同学们接触真实的linux内核。2018春季学期采用NachOS作为模拟器完成实验,并通过选做源码阅读的方式了解真实内核,然而大部分人不太愿意读代码,效果不好。所以之后的实验全部在真实linux内核上完成。
  • 实验内容:2022春共四个实验,分别为:(建议用pc浏览下表)
  • 编号内容

    实验时间

    按时完成人数

    逾期完成人数

    实验文档页数
    1环境配置,编译Linux内核2周92.6%4.00%27
    2编写系统调用实现top+使用系统调用编写一个简单的shell3周77.1%10.9%18
    3.1动态内存分配器5周73.7%7.43%18
    3.2编写模块、观察进程内存结构、打印页表、dump数据段28
    4文件系统:代码填空完成建议FAT16文件系统5周74.3%不设逾期15+11
  • 去年的表在这(这个表有一处错误,2021春lab3的时间其实是4周):
  • 建议换班前先看一下上面的实验完成率后再做决定(劝退警告!)。四个实验的得分占比不一定是1:1:1:1。这门课内容多且杂,我们当然也想加一些有趣的实验(比如楼下有人提到的信号量),但是我们人手不够orz,只能每年迭代一点...
  • 实验难度:保证大部分人(原话:70%-80%)能完成,设置一些选做部分拉开最顶层的区分度,同时尽量避免大家疯狂内卷。助教会首先自行完成实验,然后找一些“助教认为比较好的点”供大家完成。(翻译一下:代码填空)。
    • 我们设计实验的目标不是为了让所有人都能容易地拿满分。拉开分差的方法一般是:设置较难的实验内容,使得一些人不愿完成,或无法按时完成。
    • 个人观点:我认为实验拉开区分度是有必要的。正如有人在诚哥编译下面的评论:“合着是愿意花时间在实验上是错误的?你愿意花2个小时背书我愿意花2个小时写代码我就不配高分?”当然,完成实验所花时间也是区分度的一种。比如,同样的实验,有人花1h完成然后干别的,有人花10h才完成,相差9个小时的时间分配也是一种区分度。
  • 时间分配:这门课每年4.3的人一两只手能数的过来,所以逛评课社区需要注意幸存者偏差问题,比如我就强烈不推荐在ddl两天前开工(因为有的实验我自己两天做完都有难度),而且我很奇怪为什么拿了低分的不来评课
  • 助教的工作:助教会提供详细的实验文档。实验前会在教室/机房讲解实验要求(翻译一下:念实验文档)。如果有学生提出问题,尽量一天之内完成回复。使用在线文档的方式收集问题并统一回复,提升效率。
  • 实验文档的Markdown主题是我从typora的vue主题魔改来的,添加了行首缩进,还调整了字号与行距:https://github.com/mhy98/typora-vue-theme

关于考试:

  • 试题:操作系统这门课本身就涉及大量概念理解,出点考定义的题一点毛病也没有,这是这门课的性质决定的
  • 查卷方式:先发邮件,或在bb内通知成绩(bb系统里面可以看到你们所有人存在教务系统里的邮箱)。如果对成绩不满意,可以在指定时间查卷。查卷时,为保证秩序(比如防止有人浑水摸鱼偷拍、偷改卷子),所有人在隔壁等待室排队,然后一个一个进查卷室。如果因故不能到场,只支持把卷子每道大题的分数告知查卷人(但根据助教手册1.3.2.10,助教不能告知每道题的题目是什么),并只复核分数计算是否有误。

关于作业:

  • 每学期大概5~6次,平均2~3周一次。
  • 我们是不管抄书的,但是有人直接copy往年的答案,要么直接copy英文,要么直接机翻贴上去,有人连“谷歌翻译”这四个字都一并复制上去了,这就太嚣张了吧?https://www.zhihu.com/question/355652099
  • 2021春批作业的时候抓到一对抄袭的,按照抄袭比例给那次作业每人扣了15%,于是有一位因此总评被卡83

纯吐槽部分:

当助教之后发现,很多同学的计算机基础异常薄弱,以下是几个经典表现:

  • 一些人把实验文档当成黑箱,敲了命令不看输出,自己干了啥都不知道;
  • 另一些人则不会变通,似乎把linux当成一个十分神秘的“圣物”,比如:我们在实验一和实验二说你可以用vim/gedit等编辑代码,实验三没提这个,只写了个vim xxx,有人就问“是否必须用vim”;
  • 说自己给虚拟机分了“40G内存”;
  • 各种C语言基础错误及拼写错误,比如:不知道long是几字节;拼写错误:asmlkage(正确为asmlinkage)、uesr(正确为user)、sizeof(16 * int)、COMMOM(正确为COMMON)、中文逗号, 且自己不肯通过阅读编译器报错信息的方法自行寻找错误,直接拿着截图找我们。

我感觉大部分人做不完实验的原因是时间管理能力太差,最后一两天才开始做实验。而且,我能看出来里面不少人都是不怎么看实验文档,纯“借鉴”别人的代码的,一问实现思路全都乱套了,稍微钓鱼执法一下就立即上钩。拜托,那十几页乃至几十页的实验文档可不是白写的啊...

我个人的一点想法:解决这种问题需要靠加大实验一的难度解决。具体方式比如:

  1. 在实验一中增加“Linux扫盲”内容,要求记忆若干指令的含义(比如:apt是一种包管理器,ls用于查看文件等),检查实验时提问,按照正确数量给分;
  2. 在实验文档中不给出完整的指令,让学生根据实验步骤要求自行构造指令(比如:我们要求安装若干包,你得自己构造出apt install xxxx)
  3. 教学生写一些简单的shell脚本提高效率。

上述三条内容已在2022春实验一中落实。就我们观察而言,学生对于这种改革措施十分满意。

与隔壁班实验的对比:两个班的实验【风格】不同。

  • 系统角度:
    • 本班:在实际Linux上完成实验,且使用较新版本的Linux内核。
      • 优点:增加对实际Linux内核的认识,对于找工作有利(例如,Linux的页表转换、页面替换算法、CFS调度等问题一直是校招的高频面试八股文题);
      • 缺点:新版本Linux功能复杂、接口众多,且部分实验内容在课上没有涉及(如多级页表转换),需要大量的解释说明。这会导致实验文档较长,助教和学生的工作量增加,难度较大。
    • 隔壁班:使用自行实现的(?)简易系统内核。
      • 优点:增加对系统底层实现的了解。能够了解操作系统作为一个【硬件和其它软件沟通的桥梁】,是如何工作的;
      • 缺点:使用的系统略缺乏实用性(有点玩具)。
  • 内容角度:
    • 本班:
      • 涉及进程管理、内存管理、文件系统三个方面;
      • 偏向于软件层,几乎与硬件、汇编等无关。
    • 隔壁班:
      • 2021年Lab涉及系统输出、系统中断、进程管理、内存管理等内容;
      • 涉及一些与硬件相关的内容。2021年Lab1~5均涉及汇编语言(但可能不是每个实验都需要写汇编代码)。
  • 难度角度:
    • 本班:难,很难,非常难
    • 隔壁:不清楚,似乎比本班简单。
    • 实验难度差距可能与两个编译原理普通班之间的差距类似。

后续计划(不一定会实施):明年或之后考虑将实验全部挪到模块上做。Lab1直接统一更换内核并按照《操作系统概念》的书后实验编写内核模块,Lab2系统调用砍掉改成别的。

有人问“MHY除了满嘴跑火车还会干什么”,于是我只能汇报一下助教工作了:

  • 春节假期就一个人修完了今年lab1,增加了Linux扫盲内容;
  • 今年与其他助教共同负责lab2、lab3.2;
  • 校对实验文档、排版、导出pdf;
  • 群内保证有问题必回复,绝不装死,自己弄不懂的就找其他助教讨论,或者催其他助教解决;
  • 考前对考试预计查分时间、考试要求等向老师进行了询问,并在班内提前说明,免得学生考完试之后找我们抬杠。

更新于2018年12月21日:

复习编译原理的时候,我觉得每一门文科课都应该要求写阅读报告...阅读报告这玩意真的是可以增进你对知识的理解的。有些东西写一写就记住了。期末复习的时候,你会发现有一份知识点总结是一件很幸福的事情。

因此在这放上之前写的所有阅读报告,可以将其视作复习提纲。(就这点,没有更多了,电脑挂过一次,数据全损,之前写的拿了¥的源码阅读报告也没了)


这门课是我在大二下学期所有必修课里面听得最舒服,干劲最足的一门课。老师水平很高,虽然是第一次教OS但是讲的很清晰。一开始速度较快,在同学们反映意见之后讲课速度有所降低。快期末的时候还找了香港中文大学的吕自成教授(毕竟John C.S.Lui是他的导师,也是实验室的讲座教授)和时任副院长许胤龙教授(毕竟都是ADSL实验室的)来做报告。

(原评课的课程作业部分较为陈旧,所以删去。)

课程PPT全英文。 使用英文的原因是,该ppt内容主要来源于广受好评的拿了多次教学奖的香港中文大学WONG Tsz Yeung博士的ppt。

评分占比:期末考试 : 实验 : 作业 = 5 : 3 : 2。优秀率给满。 考试之后自行回忆了一下试题,有两道题忘了,欢迎补充。根据助教手册1.3.2.10,助教不能泄题,所以试题暂时拿掉(

吐几个槽:

  • 期中的时候我问我室友H班大佬计院第一(后来的郭奖得主)ls,他好像不知道啥是PID?(不知道隔壁H班成天讲啥
  • 2021年5月8日的表白墙,我直接迷惑:
  • 老师把优秀线记成90了,总评表发下来我们一看有54%的人85+,赶紧叫老师重新调分(
  • ADSL,我院牌面!(确信)
  • 老师是看评课社区的,师兄有一次和我说“坤哥上次问我知不知道评课社区的silence是谁” 好的我已经社死了

(最后修改于 27 28 复制链接
Alex学长请问李永坤老师的主页ppt密码是多少,Thx
silence回复 @193104: 我并不知道19的
我要爬麻神
Rgeendtyn第二次实验不是上周五发布然后4.15截止吗?应该是两周吧(实验一共就十个周, 后面两次实验应该是每次占三周吧?
silence回复 @一一: “周”是按照实验课算的,一次课算一周(虽然有点水分)
Rgeendtyn害怕,后面两次实验pksq都说任务量巨大,这样看我这种菜鸡怕不是要写不完了回复 @silence:
silence回复 @一一: 是滴,我们本来也没打算让所有人都能在实验拿满分
silence回复 @一一: 确实
Rgeendtyn或者直接让坤哥上课说回复 @silence:
taokyUTM (<https://github.com/utmapp/UTM>) 可以用 qemu 跑 x86 Linux 虚拟机,虽然性能估计会大打折扣
secon其实M1还有一个解决方法是上各种云平台(Azure,AWS,etc,国内没了解过是否有这种服务)租个小Ubuntu服务器,实际上完成OS实验需要的系统配置并不高,所以最便宜的配置就可以了。
silence回复 @secon: 其实可以用实验室服务器开,试过可行
silence回复 @taoky: 一开始是有人用UTM,但是太卡了,点右键出来都要半天;还有人用ARM版本Linux,但是编译配置、输出的二进制文件路径和实验文档不一样,需要全部替换,最后他们都受不了换成x86机器了...
taoky回复 @silence: 那欢迎来用 vlab(
nofear回复 @silence: 所以请问助教在文中说的往年题在哪里
silence回复 @nofear: 根据助教手册1.3.2.10,助教不得泄题,所以开课时段我会把往年题拿掉
Rgeendtyn对于想拿3.3 的同学来说这课友好吗
silence回复 @Rgeendtyn: 这得看你的能力如何、愿意在这门课花多少时间。如果只是想混的话,那非常不友好。
taoky回复 @silence: 其实可能能用 <https://github.com/multiarch/qemu-user-static>,然后开个 amd64 的 docker 容器做开发。
第一象限选修一H班讲课听的人不多的,都是实验做啥就会啥(大雾)
CauchyLovesU学长 请问为啥今年的实验内容设计得又多又难,,,感觉比去年新增了好多内容,而且都好难,重修的同学表示吐了,,,为什么要这么做呢?
silence回复 @CauchyLovesU: 就结果而言,Lab3的按时完成率比去年高了至少15%...
CauchyLovesU回复 @silence: 是啊,怎么会事呢?
nofear回复 @silence: 结果并不能代表什么啊,只是确实难了不少
nofear不能说为了拉开差距就布置更多更难得实验吧,结果你也看到了,就是并没有拉开差距,反而使得差距缩小了,呵呵
silence回复 @nofear: 毕竟能者多劳,如果难度和去年一样,差距会更低
silence回复 @silence: 比如lab2,加了点去年不好弄的功能当选做,结果均分直接卷到10.4

立即登录,说说你的看法

Bellin 2021春

大学计算机类课程体验极佳的一门课

以下只是个人看法,仅做参考

  • 上课体验超好,一个学期只点了一次还是两次名,用的全英文ppt,但就像前面学长说的,ppt质量很高,个人感觉英文ppt好处在于你要是认真看还能提高阅读水平,毕竟后面多少还是要受英语论文的折磨,但是复习起来确实不太方便,因为找重点的话不好找(也怪我我上课没咋记笔记),和书对应起来也挺麻烦的,但是不得不说,复习得看ppt和作业题。老师人挺好的,上课偶尔的课外话题就可以看出来老师非常nice,三观很正。

  • 实验体验好,助教都很负责,实验文档详细无比,基本上肯花时间就能做完,但可能是因为linux环境的原因,内核编译什么的不太好debug,所以导致最后实验提交率有点低吧,其实助教可以多讲一下linux环境的debug以及虚拟机环境保存快照的重要性,否则虚拟机炸了很搞心态。最后一点:实验的附加分很值,一般做完实验的必做部分,附加题工作量也不大。按我的成绩,照比例计算,卡绩94,实验附加分4分是直接加到总评成绩的,然后被奶上去了。

  • 作业部分的话,除了第一次作业,其他全英文,电子版提交,可中文也可以英文,题目量很少,吐槽一下:隔壁机器学习一次的作业堪比os一学期的作业,而且基本每年题目都不变,参考Google得到的某学长20春的作业,连数据都没有改。

  • 关于考试,虽然是和隔壁cxl共同出卷,但是内容都是上课讲过的,要说槽点的话,有些上课非重点的部分考得有的多,比如上课简单带过的银行家算法考了一道计算大题10分,不过银行家算法确实挺简单的,知道什么是safe和unsafe状态的定义,穷举就完事了。(不过我大概率在这道题上倒了)

    能记起来的考的知识点有:VFS,IO的方式,磁盘调度的算法(SSTF,SCAN,C-SCAN,计算以及优缺点,提出改进的方法),操作系统的概念/功能(好像是第一章书上的某段原话来填空),page fault,RAID1,死锁的条件,上面的银行家算法,最后一道大题是代码题(看往年好像出的都是信号量相关的题目):用信号量解决服务窗口的排队问题(n个窗口,w个等待座位)。

 

更新:身边有人邮件通知总评94(严格按比例),教务系统最后奶到了95,坤哥yyds!

4 0 复制链接

这门课没什么说的,李永坤老师基本上就是非H班的最优解了。

首先定个调,助教,老师负责且可爱,和下学期李诚老师的的编译原理同是 ADSL 实验室出品,质量可以的。

时间有点久了,很多经历实际上记不太清了所以下面都是虚构内容:)

说一下 21 SP 同学讨论中有点问题的地方,印象最深的是 Lab 4,不知道是哪位助教负责的。质量的话其实是可以的,不过有几点有点不足:

* 文档没有 Lab 3 详细,看得出来有点赶工,不过快期末了,也能理解

* 同期实验横向相比(例如 2021 SP 新加入的 Lab 3,你一看就是那种香喷喷全新出炉的)创新点有点少。我们结课后发现 Lab 4 原型实际上来自 GitHub,改动了几个变量名字挖了空就放上来了,而与此同时,这个 FAT16 的 implementation 思路包括变量名很多都是 follow 那个作者的思路来的,而文档中并没有特别详细的说明,这样呢,顺着思路实现的时候就比较难受了(因为得猜这个是干啥的)。

我不是说框架不可以搬 GitHub(毕竟有现成的轮子还现写干啥),只是这个实验框架搬好了,省下来的时间打磨打磨文档总是可以的吧,但文档相比前面几次(我记得还有 30 pages+ 的,可能是研究生学长负责的)实验没有显眼的提升,那可能就是设计实验的助教期末比较忙吧哈哈(

不过,看起来每年的实验都是有迭代的,所以到 22 SP 实验会是什么样子我也不清楚,估计会有变化。希望能变好点(

给学弟学妹的选课建议就是过来上啊,PPT 和上课思路都比较清晰,follow 非常容易。

扣一分给实验,另扣一分给不知道谁出的期末卷子(南大不知道哪年的陈年老题直接放上来了,真有意思

3 3 复制链接
supZQ认识到不足了,一定改进,谢谢!
..........................回复 @silence: 可以看出来是忙啊(完全没有别的意思哈!)辛苦了,另外 20 SP 的 bonus 实验也是 FAT16 啊,21 是调研了很多其他方案然后废弃掉了吗(? 至于期末卷子就是不想点名而已。。。
supZQ回复 @TurboRocket: 实验方案主要是实验室师兄决定的,我负责了代码挖空和文档,我们也都比较忙,就没做太多调整(我有考试+比赛,他有投稿)。20SP要求完成只读FAT16,21SP我们我们把写操作加入必做,实验创新程度和指导上做得确实不好。

立即登录,说说你的看法

纯粹自来水 2018春

选做就是必做 作业分毫必争 期末失误了就是3.3 卷王这么多我真的会谢

感觉实验量太大了,而且前后难度差异好大。lab1、2非常简单,甚至感觉可以直接合并;lab3前一半是csapp的malloclab,但要求没有malloclab高,后一半应该是新搞出来的,这两部分前后没啥联系,要不分成俩实验吧?lab4有四个part,后面part复用前面的代码很多,就感觉可以但没必要。

太卷了太卷了早上躺在床上被暴击

(最后修改于 2 0 复制链接
hufdb 2021春

且先打个给分一般,等出分了再更;

前有量子物理后有cod,os属于是我 大二下体验最好的一门课程。

  • 课程:

对我来说很难。是操作系统这门课本身的困难。概念繁杂,内容丰富,平时需要花费很多时间来学明白(当然到现在还有很多没有理解的地方...)。但是坤哥的讲课可以说对弱鸡很友好了,只要上课不开小差就能在课堂上听懂个大半。PPT的质量很高,据本人称是源自香港某大学教授的获奖PPT,只要看懂了PPT就基本掌握了该课程的基础知识。

(但是ppt是全英文的,不习惯的话看起来着实费劲啊)​

  • 作业:

本学期一共布置5次作业,每次作业有统一的评分标准,相对来说还是非常公平的。作业都是近期课上内容,都能找到答案。大概是临近期末助教统一评分,可能答得不全就会扣掉毎题30%~70%的分数,所以平时还是要老老实实地翻书/PPT不要偷懒。 ~~有位转院老哥好像因为作业分不如预期在群里面破防了~~

  • 实验:

好难啊!真心觉得很难。lab1,lab2比较基础,完成率接近100%,lab2甚至平均分10.4,可见不少人做了1分附加。lab3,lab4看得头大,从此无法直视segmentation fault,头一回体会到“一包茶一包烟,一个bugde一天”。本人只会通过printf来debug,经常看了三四个小时的printf结果发现是自己变量名写错了, ~~慎用自动补全谨慎进行上下文的复制粘贴,~~ 欲哭无泪啊,这种粗心的毛病还经常犯,只能说建议大家写代码的时候就仔细检查。更多的还是各种情况没有考虑到,比如说为什么删不了文件了,又为什么不能在子目录里面删除文件了,为什么不能复制粘贴大文件了等等。lab3、4都有附加分,可本人能力实在有限 ~~也可能是懒。~~ 对于那些愿意卷的人,我真心佩服也觉得他们得分很理所应当。

(小声bb,即使lab34在我看来已经非常难了,完成率仍高达73%,附加分率也有16~20%可见大家还是很努力想拿高分 ~~被卷烂了~~ )

  • 考试:

突击了一天半,后来战略性放弃10章以后的内容了,太多了实在看不完。建议大家趁早复习,不要和我一样拖到前一门考完了才开始。拿到试卷后意料之中地很多概念依旧记忆不深 ~~根本没印象~~ ,总体上卷子不是很难,目测考场上有1/4左右同学提前交卷了 ~~结束坐牢。~~ 毕竟这种东西吧,会者不难难者不会,没复习到的概念想破脑子也编不出来。(希望自己能上平均分吧秋梨膏)​

总的来说,坤哥的os课还是很推荐的 ~~除了难没有什么缺点了~~ ,上课与实验体验都很良好,助教老师都非常负责任(二三十页的实验文档真的用心了)。缺点是,可能会有很多大佬来卷。所以,自己权衡吧。

给分出了 84卡绩 果然被卷烂了

(最后修改于 2 3 复制链接
hufdb为什么么有2022春,我是不是来错地方了
………回复 @hufdb: 2022春是“李永坤,吴思”
hufdb回复 @………: 喔喔 那果然来错地方了(

立即登录,说说你的看法

Iris Isotherme 2021春

简简单单评个课

OS,听上去就很CS嘛.

这课也确实是CS的一门核心专业课.

其实课程本身并没有特别硬核,更多的是介绍了计算机科学中解决各种问题时的一些基本方法和思想.

构造一个复杂体系(例如操作系统)需要哪些设计思路,解决问题时对各方面诉求的权衡.

也就是以操作系统实现过程中需要考虑的问题(这里以Linux OS)为背景,介绍了一些经典的解决方案,引入了设计系统时的基本思想.

李老师的讲课还不错,ppt是全英文的看起来可能比较蒙古,不过图比较多,也比较有意思.

期末考前一定要仔细地把ppt过一遍.

考试的话,说是偏向文科的考试,要记很多东西,但其实还是偏向于理解类型的,不需要特意的死记硬背.

实验的话,简陋的C写起来会很让人头疼,但其实只要你肯在ddl两天前开工都是能完成的,不过要注意一些小细节,尽可能考虑程序的健壮性(别助教敲两下就死了).

平时作业认真写,考试复习时可以省点心.

(我就是那个成绩单上94,到教务系统里变成95的,泪目了)

 

2 0 复制链接
吃人 2021春

ppt还可以,虽然是全英文的,但是慢慢啃肯定是能消化的,实验的难度应该是不大的,推荐完成选做实验,总评好像是直接加了4分。总评被坤坤奶了一口没有卡绩,感谢坤哥。但是作为一个被zql深深伤害过的人,已经不在乎gpa了。所以19级的同学们,编译原理不建议选zql班。

2 0 复制链接
zeddthegoat 2019春

甚至建议其他学院感兴趣的同学选。

2 0 复制链接
deneb 2018春

 李老师人相当Nice,上课也很有意思,深入浅出,PPT风格我很喜欢,虽然是英文的,但是看起来一点也不吃力。(考前建议过一遍PPT,今年最后一道题近乎PPT原题)

但是我还是要扣一分,因为实验有点简单了,感觉对个人水平的提高并不是特别多,不知道隔壁班怎么样,但是好像是挺辛苦的,考试周结束了还在肝DDL

李老师是真心想上好这门课的,可惜有的同学不珍惜,到课率常年不高。大家的建议也会认真听取,让我感动的是为考试冲突的同学单独设置考试,这种负责任的态度真的很好。

我们是按学号对应不同的助教,我遇到的助教人很nice,水平挺高的,而且回复我问题的时间几乎都在5分钟之内,感动。老师和助教们真的很用心,给分没的说啦,超好的。

2 0 复制链接
flowflow 2021春

    总评出来人麻了,只有3.0,直接把绩点下拉一个档次,严格5:3:2没有调分。请原谅我不能免俗。
    总得来说这门课一学期学下来收获挺大的,老师课讲的也不错,但请原谅我英文水平不高,ppt全英文这一点太阴间了,给平时学习和复习增加了不小的压力,1300多页的英文ppt真的会看到吐血。
    再然后是实验,具体情况和往年一样,我是自己独立完成的,特别是最后两个实验,极其耗费时间。
    最后吐槽一下考试,一共四道大题,第一大题第二大题全是概念,第三大题计算题,一共三小题,居然还是有一题是概念,然后还考了一题上课只提了一下的银行家问题(10分),只有一题考磁盘调度算法,是正儿八经的计算。考前复习的什么页调度,进程调度算法还有每年都考的TLB今年一题没考。最后的编程题也和往年出ppt或书本原题不一样,貌似还有坑。在这种情况下最终不调分,感觉付出和回报完全不成正比,最后平均分也不给,也不知道优秀率有没有给满。我最烦的就是只公布卷面成绩,然后不给平均分和成绩分布。这又不是什么见不得人的事。考试前一小时仿佛在考政治,就是概念背背背。前面那些说给分超好的可能是本来就是大佬,也可能是卷面本来就简单。感觉这门课的给分和大一的那个代数结构一样,基本取决于卷面分而非排位。
    我这条评论仅供参考,整个学期花时间最多的课总评最低,建议大二修这门课的学弟学妹不止多花时间背ppt和作业里的概念,还要多看看ppt里的细节,毕竟谁也不知道会不会把细节内容变成10分大题。

(最后修改于 1 4 复制链接
silence今年卷子是隔壁班出的
silence没调分是因为优秀率满了
flowflow回复 @silence: 那助教xgg给个成绩分布吧,让我死个明白。。。
silence回复 @flowflow: 老师不让给orz

立即登录,说说你的看法

黑猫紧张 2020春

slides质量很高,看完甚至是可以不用看书的水平。讲课很清晰,学完收获很多,老师也很帅,选它选它。

1 0 复制链接
二木啦啦 2018春

老师很好,作业不多,只是实验难度跨越有点大。但是给分超好。很喜欢李老师。

1 0 复制链接
Kelley 2019春

OS 真的是一门非常重要的课,理解OS的许多概念是利用计算机来高效地解决问题的关键。暑研在做一个可穿戴设备各运算步骤整合与加速的工作,解决其中的很多问题都用到了许多这学期在OS课中学到的概念与思想,不禁感慨科班出身的程序员还是会有许多先天优势。

李老师讲课和备课都可以说是很用心,讲课重点鲜明,讲到一些相关内容时也会联系讲讲现在的学术/工业界实际场景是如何处理的。PPT 设计的很好,复习时让人感觉很清晰。这学期的实验设计也可以点个赞,第三次实验实现堆内存管理和第四次实验实现FAT文件系统都让人收获很大,有不小的难度,非常锻炼能力。想要真正学东西的同学还是推荐选李老师的课的。


不知道为啥那么多说给分好的,来吐槽一下给分:

7次书面作业+4次实验+4次实验报告,一次3分,共45分。最后考试占55分。没有调分。

4次实验占比这么小明显不合理,最后两次实验基本是 10h+ 的工作量,难度也不小,最后只占 3 分?实验报告改的也莫名其妙的严,我已经把能写的内容尽量丰富了,最后平均只有8分(满分10)。期末试卷应该是两个班老师各出一半,其中至少有 5-10 分的题是我们班没讲或者只是提了一下的(隔壁班也有一些题是同样的状况)。这样的给分比例个人认为想要拿到 4.3 是一件非常困难的事。

最后通知查卷时已经放假离校很久了,听助教说是有一道大题做崩了 ,最后总评只有3.7,个人觉得这个成绩与这学期的付出不匹配。作为参照:这学期在这门课上的付出大于等于组成原理,而组成原理拿了4.3。

1 3 复制链接
Alex学长/学姐你好,我是18级计科的,能给我你们当时的实验文档或要求吗,谢谢
Alex学长/学姐你好,我是18级计科的,能给我你们当时的实验文档或要求吗,谢谢
Kelley回复 @193104: 不好意思,没有保存实验要求

立即登录,说说你的看法

z 2018春

老师讲课比较清楚扎实,十分认真负责。

和H班的同学讨论过,两个班差别还蛮大的,H班基础教学很少讲课更天马行空一点,很多书上的概念到结课了还不知道是什么,到了期末考试来借李老师的ppt。。。但是H班实践上可能更难然后多一点,前面几个实验差不多,甚至H要求还低一些,后面的实验不太清楚,似乎相当有难度

1 0 复制链接
评课 2018春

老师讲得非常好,建议一边听讲一遍做笔记(英文ppt,老师讲课用中文,所以直接记录讲课内容会省非常多事)

课程难度主要在实验时疯狂stfw,写和debug都极其痛苦,占用时间也多,后面两次实验似乎近40%学生没有按时完成。

期末就怕隔壁班出了本班没重点讲的东西(比如这次的银行家算法,考试的时候现场瞎编,似乎还编对了?),建议考前和隔壁班同学交流。试卷存在较多文科题目,建议理解性背诵ppt/笔记。

给分:平时作业平均分97.4(五次,百分制),四次实验满分,没做附加题(评课时才知道附加分直接加到总评上,非常后悔,建议能做就做),期末87,总评93,大致是严格按比例的。

0 0 复制链接
祖安花火 2021春

老师上课水平很高,虽然语速有点快我经常跟不上……PPT很详细适合课后自学和复习。实验好难,后两个实验做的很痛苦,不过作为专业核心课,应该好好做实验,收获挺大的。最后考试把PPT上的知识点掌握好,平时作业做好,问题应该不大了。

0 0 复制链接
shaofeng 2021春

作业量中等,基本都是重点。

实验有点耗费时间,并且其中两次实验有存在一定难度的加分项,更加耗费时间。

考试考很多概念、简答,因此建议复习的时候把ppt过一遍。

(最后修改于 0 0 复制链接
ruby 2021春

对于整个OS课程的评价(含信院计科os):

完全不知道英文PPT的意义何在,如果是说名词翻译问题,但其他课翻译的也很烂的时候也没有全英文,非常像是整个课程组的偷懒行为,复习时极度痛苦,考试双语双待,中英混杂,似乎也没有对改卷和审题有太多的帮助

对本课程的评价:

可以感觉老师上课的诚恳……因为有几节课我实在是听不动了,本课堂200+人即使小半翘课也有150+,社恐上课体验极差,在我听的课里感觉老师还是讲的不错的,就是语速太快了,不一定能跟上脑回路。另外,板书字有点小

关于实验和作业:

作业还行。实验也还行,实验文档非常详细(但有点详细过头)。对比我们班和隔壁班的实验差距摸鱼壬非常快乐(室友考完还在写实验)

关于本次考试:

警 惕 出 题 人。考前就传闻cxl班出题,结果真nm就隔壁班出题……与本班重点重合率小于80%,部分题能蒙出来还靠考前看了陈班的小测,所以你需要有一个cxl班的室友或者同学,,,另,我怀疑这是为了平衡两个班的人数的课程组py交易

成绩比我想象的好不少,是好事,,,

0 0 复制链接
AidenY 2018春

快毕业了,统一评课。

这门课我是20年上的,总体推荐。

 

少有的可以讲清楚课的老师。

老师做人也没问题,很多事情也会为学生考虑。

 

优点不赘述,没想到什么值得提的缺点。

 

总体推荐。

0 0 复制链接
从点到点 2018春

李老师PPT很适合自学,非常清晰。由于疫情关系,这学期实验比较划水,比重依旧是45% 建议大家学习时候深究有些知识点的定义,考前做做往年题,尤其是那个TLB的题。出了很多年了)给分的话能给满优秀率,我觉得就已经很好了。

0 0 复制链接

老师讲得很清楚,作业很少,实验很少,最后的bonus实验加分很直接。考试目测要记清楚ppt上的各种定义,不然很容易我以为我对了实际上还差着远2333

美中不足的是OS作为本科cs最重要的课之一实验实在略显单薄(可能因为线上上实验课,难度都降低了很多很多),跟着贵清网课,看着答案写了实验感觉收获很大。如果想在实验方面有比较好的体验建议隔壁cxl班,目测给分也很奶。

提供一个给分样本:作业平均9分,实验基本都交了,bonus实验做了2-3分,期末卷面89,总评95。

0 0 复制链接
也西湖摸鱼 2020春

先把回忆版试卷放在最前边,省得19级同学来翻看不见。

2020试卷回忆.pdf

//老师  
操作系统是我2020春季学期网课期间唯一一门认真听讲的课程。李老师上课主要也是讲ppt,(所幸ppt质量不错)而且老师额外的解释也不少,听起来不觉得乏味。期末考试时终于见到了李老师本人,个子挺高,说话声音也和网课时挺像(感觉自己在说废话)

就我的观察,李老师在同学们这里的评价是很不错的

//关于实验 

本学期一共四次实验,其中: 

* 三次必做,每次占总评10分;提交实验代码、文档及录屏讲解(不过以后肯定是线下检查了)分别是:1. 编译Linux0.11内核+熟悉qemu+gdb调试 ;2. 添加系统调用+简单shell (管道通信);3. 动态内存分配器的实现。OS普通班的实验都是些祖传实验,主体部分不知道多少年没改过了……可能会有些创新,比如写写Makefile之类的,但是大体上和往届的都差不多(遇到困难了找到往届的实验报告,发现让补全的函数的函数名都是一样的)……助教给的文档也很详细,顺着做下来基本问题不大
* 一次选做,分为两部分:其中第一部分实验要求较详细,根据完成情况在总评上额外加1/2/4分;第二部分是开放性的,酌情加0~4分。第一部分是关于FAT文件系统,第二部分开放性的就不多说了。有四分之一的同学做了选做实验,这其中大部分只拿到了1分或者2分的额外加分。(最高有人在选做实验上拿到了一共6分的额外加分)

//平时作业 

一共布置了7次作业,2周左右一次,英文题目,大部分是些概念解释,简答题等等,相对于实验比较基础。值得吐槽的就是在classin上不允许迟交,室友有次忘记交了结果一直到期末才允许补交……

//关于考试 

卷子出的不算难,就是太文科,而且考了一些奇奇怪怪的概念(上来第一题就考操作系统的四大特征orz,好像是 cxl 班上课讲过的,直接总评 -2)。出了一道关于磁盘调度的20分大题,凭借微弱的一点印象编了好久QAQ 文件系统反而考的内容挺少的,对于OS课程来说有点本末倒置的感觉。考前看了挺多运用信号量解决的问题,写者优先/读写公平的读者-写者问题之类,结果考试就考了个哲学家用餐的ppt原题…  

据说是期末两个老师各出50%题目,想考好成绩最好把两个班ppt、作业都看了,因为貌似考完后有cxl班的同学不知道trashing是什么?这是lyk班的一道作业题……

//关于给分  
作业20%实验30%期末50%,再加上选做实验的加分。没有调分。


//总结  
这门课平时上课讲的内容+课下查阅资料看的内容零零总总加起来还算是能学到不少东西。我本身默认置课是cxl,但是看评课社区说要随堂小测实在是顶不住,就换来了。今年lyk班上一共180人,而cxl班51人,不知道明年情况如何(我反正觉得这波换课不亏~
考试还是挺无趣的,核心知识全部掌握也不见得考得好,必须尽量复习到所有细枝末节才稳……我本身考前觉得能拿4.3,结果最后还是凭着选做实验加分才得了4.0。根据评课社区评价来看,想刷高分还是考前使劲复习吧!1300多页的英文ppt等着你~

0 2 复制链接
silence那个名词是thrashing而不是trashing,今年答颠簸抖动晃动震荡都能给分,但trashing不给分(
也西湖摸鱼回复 @silence: 打错了

立即登录,说说你的看法

讲的很好,PPT详尽又精简,20年的实验因为线上的缘故略水。 给分感觉不能算好,没调分。做了附加实验会有加分,推荐做一下,考完能捞一把。

0 0 复制链接
vevevev 2020春

老师的PPT做的很赞,线上上课所以看回放或者PPT都能很好的看懂,作业布置的不多。上课逻辑也很清晰,助教很负责。总体还是推荐的。 实验部分因为在家,难度降了很多,只要填填空,熟悉熟悉操作就OK,最后一次选做加分事实证明很划算。 考试部分不做过多评价,自我感觉良好难度不大但是分数啪啪打脸,可能什么细节没把握好。

0 0 复制链接
棉花糖 2020春

课讲的还是不错的。老师讲课很会打比方,ppt也很有活力,特别是当时讲进程管理的时候僵尸进程老师真的找了个僵尸头扔在那里。整个ppt逻辑结构也很清晰,每一个topic都会把主轴内容放在每一张ppt里面,比如讲内存管理的时候内存里的所有东西都一直放在一侧时时刻刻提醒你内存的结构是什么,免去了第一次接触一个新的知识然后跟着老师走的时候把框架丢了。 作业比较基础,难度不大。不过和课本知识结合的还是很好的,对你理解操作系统的流程很有帮助。 不过实验出的就有点糟糕了。前三个实验太easy,第四个实验又过于开放…第一个实验是熟悉Qemu和gdb,第二个实验是进城通信和shell,第三个实验是实现动态内存管理(都是给框架,只用填一点点东西),然后第四个实验就是自己动手写一个FS?我觉得大家都是第一次学的话还是多引导引导比较好吧… (不过据说大部分计人都是被其他班的实验劝退的…可能我当时应该换班?)

 

==========================

补充:

毁掉一门课需要几步?一张期末考试试卷就够了

名词解释居然可以因为“不完美”而把分扣光了?

明明有那么多重要的有趣的内容,实验不涉及、考试不涉及,那我们到底在学什么?学背书么?明明是实践性非常强的一门学科却要搞成概念考察课么?

我希望我能看到操作系统课程的实验能达到李诚班编译实验的质量的那一天。

0 3 复制链接
silence同学您好,我是2021春的助教,我想问一下您说的“重要的有趣的内容”指什么?您的建议会作为今年实验的参考。
棉花糖回复 @silence: 比如进程管理和调度、虚拟内存管理、信号量相关程序的编写、用户态和内核态的切换?我一下子也就能想起来这么多了。
silence回复 @棉花糖: 这个嘛...虚拟内存管理:今年有打印页表,统计匿名页数量等的实验;用户态和内核态的切换:编写系统调用其实就算;进程管理和调度:管理和调度太难了,我们赶不出来,学生也做不出来,但是有打印进程名、进程状态等的实验;信号量这个挺有意思,但是感觉撑不起一个实验。感谢建议。

立即登录,说说你的看法

lxses 2018春

老师年轻有位,讲课非常清晰准确,认真负责,就是实验有一点耗费时间,给分比较好。

0 0 复制链接
UNION 2018春

老师上课风格非常喜欢,ppt做的很直观,讲课清晰,主次分明,比某些老师那种一锅粥或者不知道在干嘛的的好多了。

0 0 复制链接
Lotdhh 2018春

这是李老师第一次教这门课,可以看出他是很想上好这门课的,我们提的很多意见他都采纳了,直接联系他比通过助教联系他还有效,助教也跟我们抱怨他有什么事都只是跟我们说不会跟助教们说。

但是小白鼠终究是不好当的,应该所有助教也都是第一次做助教的,对作业和实验难度把握不是很好。第一次实验的实验文档有些地方说得不是很详细,助教也没有在源码上做任何修改以简化实验,导致ddl过了之后仍有很多同学没有检查,当然我觉得部分原因是因为其中有同学到快到检查时间才开始做实验的。似乎第一次实验把助教吓到了,第二次实验就特别简单,基本照着文档来写就得了,虽然可以组队,但是一个人10个小时以内也是可以写完的。

平时作业有教材阅读和源码阅读,有两次问答题形式的作业。教材阅读就不说了,某个交流生大佬看到这个就换到H班去了。源码阅读布置了两次,第一次布置之后很多人反映这个太难了,然后就决定降低这部分的比重,改为写得好的得额外的加分,一次最高加三分。但是个人认为这并未没有减轻压力,反倒限制了优秀率,相信不会有多少人愿意看着别人总评加三分自己去佛系的吧。

想要在这门课提高编程水平大概是不可能的吧,对比H班的实验就知道这差别有多大,想多写代码而不是阅读报告的还是换到H班吧。不过也要慎重,貌似H班那帮人考试周还在写大作业。

0 0 复制链接

李永坤

教师主页: 戳这里

其他老师的「操作系统原理与设计」课

李永坤, 吴思 8.5 (2) 2022春
陈香兰 7.5 (24) 2022春 2021春...
未知 2017春 2009秋...
熊焰 2013春 2010秋...

李永坤老师的其他课

图论 8.5 (2) 2017秋
操作系统原理与设计 8.5 (2) 2022春