选课类别:计划内与自由选修 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业核心 | 学分:4.0 |
操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。因此本课程的目的是使学生通过本课程的学习,理解操作系统的基本概念和主要功能,通过实例讲解,掌握常用操作系统(如Unix、Linux)中的关键技术,为学生以后的学习、工作和研究打下基础。
陈香兰老师的《操作系统原理与设计》课程以详细但较为枯燥的教学风格和丰富的课程内容为特色。课程采用英文PPT,这使部分学生在理解上有困难,尽管PPT涵盖了《操作系统概念》的大部分内容。课堂涉及大量概念和背诵,这让该课程更像是“文科课程”,考试要求对教材内容有深入记忆。
实验方面,学生需从零开始逐步设计一个简单的操作系统,包括时钟中断、内存管理、与进程调度等功能。尽管实验框架较稳定,但学生普遍认为实验文档不够详细,导致理解困难和较高的门槛。学生在完成实验时需要大量自主学习、寻求助教帮助,甚至需要翻阅各种其他资料。实验给分较为宽松,高分不易。课程主要以课堂小测代替作业,一些学生反馈其中计算和应用题比重较大。
课程考试为闭卷,题目涉及填空、概念解释、简答和编程题。考试更注重记忆与理解,需较强的背诵能力。给分一般较为合理,实验成绩合格的学生在考试和总评中被“善待”。点名在总评中占有一定比重,平时认真参与、按时完成任务的同学得到不错的评估。
陈香兰老师的课程适合那些想深入理解操作系统概念,做好自主学习准备的学生。适合想减轻工作量并期望较好成绩的学生,但不推荐对实验感到吃力的学生。学生间的反馈表明,平时作业和实验的认真完成是取得满意成绩的关键。值得注意的是,即便考试成绩不佳,课程总评分往往会有所修正以确保公平。
实验作业整个学期不出分。(BB 系统设置错了,导致一学期都看不到成绩)考试周来实验,疑似还加了额外要求。导致我即使卷的飞起提前完成实验,还是要考试周写这个实验,因为还有的要求我没有完成。
实验是不知所谓的难,PPT 太过简略,文档虽然详细一点,但是还是引导性不足。导致整个实验下来最难的其实是弄懂它要我们干什么,弄懂了之后反倒简单,都是简单的汇编和基础链表操作。而且感觉一通写下来也没有加深我对操作系统的理解。不知道是不是我太不上心了,又或者我太菜了。
课程内容极多,四大模块每个都有概念,都有算法,都有思想。本来如果考试开卷挺好的,结果是个闭卷。整个下来操作系统就是一大文科,要去背看那不知道几百页的 PPT,跟考研似的。
我点名有两次没到,感觉现在要狠狠背了,争取考试给我找回点分。
虽然陈老师我觉得真的人还不错,挺和蔼的。但 OS 确实是我整个学期体验最差的课,不如 COD 一毛,甚至不如量子物理。
想起来这学期开始,因为我觉得我会比较忙,就从李永坤老师班换到了这个班,因为听说不太卷。现在看来这真是一个极端错误的决定,学东西还是学的爽最重要。
期末 90,作业平均 92.5,实验全满,点名大概是五次有其中三次没到,最后总评92。
知道自己大概没机会 4.3,但一波估摸着下来应该是卡绩的分数,结果更低。可能是点名扣分太多,又或者 90+ 的人数其实比我想象的多。
总之大家之后不要摆烂,点名的课,怎么样都要把自己拖去上课。
短评一下。首先需要明确的是这是一门适合摆烂的背书课,祖传实验(感觉非常古早)意味着借鉴…在这里要吐槽的是祖传实验框架有很多warning和错误,但是多年以来秉承着能跑就不要动的原则,一直没人改…
今年稍稍改了一下,但也只限于一些bug和添加一些TODO标识方便实验。实验内容在前几次会不知所谓,大概也会怀疑这和操作系统有什么关系(感觉关系确实不是很大),最后的hook机制在往年文档里也很粗略,今年在lab6的附加文档里稍加解释了一下(悲,过于懒狗了)
实验最大的困难大概就是最初的创建环境和后面过程里的debug,掌握调试还是一项比较有用的技能,咱在编译原理的时候才搞明白😢
我负责了实验一,实验三,实验五,实验六,这几个实验的文档编写(实际上是把老师给的整理出来)。实验框架本来想改一下,但是后面太忙一直没搞。实验六本来是没有框架的,要学生嗯写,但是看起来大家期末周写这种实验会很**,就把自己的实验六改了一下当成框架了。
前两个月还会坐七点多的校车从高新区去西区随堂早十,但是后面实验室周一上午有组会就没时间去了。今年小测改线上提交作业,感觉大家的作业,雷同略多)实验基本结果对就给满了。另外大家一定要学会以后问助教或者师兄代码问题,不要只发个结果的截图,代码也发一发)
期末考试每年都是背书,暴论来讲,科大计算机专业会背书肯背书就能拿优秀,文科属实。
上课点名一般是用来捞卡绩的同学的,不过陈老师上课确实催眠,我当时上课的时候因为睡着打呼噜还被挂在了群里(悲)
已经出分了,不知道今年给分怎么样,欢迎辅修同学来陈老师班上~
感觉听懂讲课需要提前学学。
希望老师多给几分。
最后老师加了几分,遂卡绩。
20221224更新:
又到了选课的季节。我本学期担任计算系统概论A的助教,给我们班的人讲了讲vlab linux的一些简单使用(配置),不过来听的不多。如果你选了这门课(指操作系统),且打算使用vlab做实验(强烈推荐)的,可以查看我写的教程折腾一下电脑。(不过陈老师这门课怕是不好完全靠ssh,一定程度上还得靠桌面,因为qemu好像不能ssh;不过写代码的时候用vscode、需要运行的时候切到网页桌面用qemu也是不错的选择)
隔壁班不知道情况咋样,不过根据同学的描述,如果按照我上边的教程配置好那么对于做实验也有帮助。
限于本人水平,教程写的不咋地,可能有各种错误或者待改进的地方,欢迎评论区提出。
以下为原回答
省流助手:好好写实验,好好背书!
我是2022春上的这个课,这个学期由于jwc人为限制换班所以这个班人数不少。根据群里观测,老师给的优秀不少,不过高分上不去。
本课程使用的教材为《操作系统概念》的中文版,虽然教务系统上好像写的是英文版。需要教材中文或英文版本电子版课本的可以评论区邮箱留下,也可以通过其他联系方式。我尽量两天内处理。(不过也许过几个月我就把文件删了,所以想要的请抓紧)(跟我的计算机组成原理一样)参考书籍为汤晓丹的《计算机操作系统》,东区漂流书屋有。其实我觉得这个国产教材并不比那个课本写的差,也可能是翻译原因导致的。总之那本书的语言感觉不怎么流畅。也许对于英语大佬,看英语书更好一些。
授课内容为第一本书的前13章,每章后边的东西不讲,看也看不明白。
实验内容是从0搭建一个很简单的操作系统,本学期有6个实验,每次实验题目如下
听说比隔壁班更简单一些。我的实验全是满分或超满分,代码在这里,(2022/07/15更新:看见有人讨论代码开源问题,故删除链接)建议自己完成,不要抄;辅修人当我没说。
楼上tx同学说这门课考试比COD简单,不过我不这么认为,我认为这个课程考试比COD难。
可以看得出来老师讲课还是比较努力的,可惜实际上还是比较无聊,听的人也不多。教室里感觉大致为均匀分布。其实感觉如果好好听会有不少收获,可惜我没好好听。
上课有几次点名,不是所有人都点,我记得大概是所有点名加起来把所有人点了三次。
老师的PPT做的很用心,除了实验;PPT满满干货全是重点,这个应该好好看,建议及时把老师PPT的内容打下来以做好复习,别像我一样。
老师身体状况不是很好,希望同学体谅。不过老师还是比较负责任的。
老师讲实验的水平有点一言难尽,而且抓不到重点,就算是有人提到的20年录课视频也一样;实验PPT也抽象得很;建议主要使用助教的实验文档。每周六早上会有实验辅导,建议每次试验都去那问问,实验会顺利很多。(心疼助教小giegie~被我麻烦了那么多次)
这门课应该是比较重要的一门课,建议认真学习。
不过老师实验讲的水平一般,实验文档抽象,实验布置时间不合理,所以扣一分。
我没学好这门课,暑假得回炉重造。
身边实验交不上的人挺多的,其实实验没那么难,不过不少人都拖ddl完成,那肯定会比较困难。建议实验下发之后尽快完成。
我的建议如下:
1 一定要及时复习,别像我一样考前抱佛脚。
2 实验自己做,辅修人可忽略这一条。
3 老师会给每个人一次实验延迟提交机会,使用延迟提交之后可以在固定ddl之后一周内提交且没有晚交扣分。前几次实验都比较简单,建议留在最后一次实验使用,或者不使用。
4 考前可以看看tx同学(评课社区id:txtxj)评论里的链接。
5 装好vscode或其他合适的文本编辑器如Sublime等(Visual Studio不算),学会gdb的调试,否则实验会比较困难。我看对着几十个文件用ubuntu自带的文本编辑器写代码的,这属实是困难。
6 学会一点简单的命令行操作。
目前根据少量水群得到的样本观测,这个老师给分不差,优秀率比较高但是高分上不去。
我个人实验还不错,考试寄了,背书背不会。好在老师捞我,最后总评3.7,可惜在拥有125学分的前提下,增加4学分的3.7并不能改变我GPA的百分位,呜呜
今年我们班似乎比隔壁班躺,任务量也小一些,选这个班在计科恶心人的大二下可以减轻压力,毕竟组成原理、【请文明用语】的量子物理、一堆可能数学课还是比较消耗精力的。可以考虑选择此班。
这条评论意在提供更多关于这门课的信息,尽量保持客观性
1.课堂:
PPT:中英文混杂,英文占比较大。尽管如此,相比于隔壁班的全英文ppt,理解起来却更困难,因为PPT充满了跳跃性,有些地方的英文语法也很奇怪。不过,PPT内容相比于隔壁班,更加全面,几乎是“恐龙书”《操作系统概念》的浓缩,期末时照着PPT复习是完全没问题的。遇见难以理解的地方,可以看看教材上的详细讲解。
讲课:基本上是对PPT上的内容进行通俗解释,理论内容为主。课堂知识密度较大,并且老师语速偏快,给人留下的思考时间比较少。如果听不下去课也没关系,可以自己翻看教材和PPT。
课堂有签到,尤其喜欢在小测后紧接着一节课签到,请务必到课。
2.作业:
前半学期,没有课下作业,所有作业均以课堂小测的形式进行,每两周一次,每次约10-15分钟。小测内容90%均为概念题,答案可在ppt上检索到,难度不大,但考验手速。
老师原定总共进行7次小测,占总评15%,但由于学期末课堂时间紧张,第6、7次改为课下作业,计算题、应用题的比重有所上升。
3.实验:
总体来讲,实验设计得很好,质量非常高,且个人认为综合难度低于隔壁班。实验内容为:从0开始,在qemu裸机环境上,设计实现一个简陋的操作系统,有vga&串口输出、时钟中断、shell、内存管理和分配、进程调度功能,颇具趣味性。除了lab1,所有汇编代码都会提供。
尽管实验质量很高,但却缺乏合理的引导:无论是老师上课的讲解,还是实验指导ppt,都过于简略,仅依靠这些,很难弄明白需要做什么、最终的运行结果是怎样的,这导致了实验难度的虚高。这一问题的应对方法有:问助教;观看疫情学期网课的实验讲解视频(相对详细,且能看到运行结果)。希望以后这一点能有所改进。
各次实验具体内容简单介绍:
lab1 multiboot启动
lab2 multiboot到OS、汇编到C的衔接;用C(含内嵌汇编)实现VGA和串口输出,并封装为printf函数
lab3 时钟中断,shell
lab4 内存管理和分配
lab5 进程/任务管理,FCFS调度
lab6 进程/任务随时间动态到达;编写更多调度算法(任选两个),对外提供统一的调度器接口
4.考试:
今年题型与往年相同,分为填空、名词解释、简答、计算、编程题。
以下是回忆内容,前三大题回忆不全,仅供参考:
(1) 填空题:操作系统定义(汤书内容,第一次ppt有),信号量的类型和作用。
(2) 名词解释:VFS,进程基本状态,RAID1,基本IO控制方式(轮询、中断、DMA、通道)。
需要注意,名词解释不是写出名字就行,比如VFS,仅写出虚拟文件系统是不够的,还需要答出它的含义/作用。
(3) 简答题:FAT和iNode的含义与优缺点。
(4) 计算题:磁盘调度,死锁避免 - 银行家算法(我们班讲了,隔壁班未细讲),从用户态进入内核态的具体过程(为什么这个是计算题?)。
(5) 编程题:信号量编程题。题目提供实际情景,进行模型判断(本次为生产者-消费者),然后写出代码。
需要注意,本题重点考察的是信号量的运用,是进程同步部分的知识。代码可以写伪代码;定义信号量时,一定要记得初始化;不要忘记互斥信号量mutex;不要写成串行、死锁。
5.给分:
学期初给的公式是:15%小测+35%实验+50%期末。最后应该没有严格按照这个比例,一些卷面70左右的同学,调到了88、89,有可能是提高了平时分比例,也有可能是给总评上直接加了分(签到全满奖励分?)。许多卷面不及格的同学,也被捞了。给分还算不错。
19级计科一直流传着cxl20年挂科率32%的传说。据老师自己解释,是网课学期,很多人都在摸鱼,平时成绩接近于零,即使想要调分,也调不上去。今年21年,似乎就没有发生这种事。所以选到此班的同学,不必太害怕。
助教跟煞笔一样,随堂不怎么来,习题课答疑更是一坨,往年的实验一坨还懒得改,考试周突然发布实验(助教说忘了),我真感觉这是牛马。先给个一星。
实验花的时间很多,而且老师给的实验说明不是很详细,需要自学汇编,而且代码有很多细节自己要摸索出来的话,需要疯狂的查资料,还是有些坑的(比如原理都懂了,但就是AS汇编器的某个用法自己不清楚,导致结果一直不对。网上的资料相对零碎,找来找去还是挺费时间),我觉得有些地方应该直接让我们看源代码。
(推荐一本书:Orange's 一个操作系统的实现)。
个人的感受是做实验过程中自己查维基百科、stackoverflow学的东西比听讲学到的多太多。。。
考完试更新:
考试前会划重点。好好记。(我当时带了电脑,飞快地记到了onenote里面。)
考试方式偏文科,偏应试,个人认为不利于学好CS,但利于备考。比如这次还出了这种题:“当今OS的发展动力是什么?”。真没想到会这么考。。
考前几天好好看PPT,有些东西最好记(OS有哪几个基本类型,顺序执行的特点,进程的五大特征等,要能自己列全。这是我觉得很死板的地方,我认为这些只需理解了就行了),小概念也不要放过(比如什么是“护航效应”,估计没彻底看PPT的人都不记得了。类似的还有优先级反转之类的名词,弄懂即可,只是这次没考。反正CPU调度这章肯定是重点了)。可以自己做一个PPT,每一页写一些概念,把解答部分做成单击时进入的动画,放映一遍看自己记不记得。
实验要好好做,实验后附的问题也要当时弄明白。(比如可执行程序中的BSS段是干什么的,做实验的时候就应该多查wikipedia)
本来不想评课,但是看到出分之后莫名喜感,还是来评一下
先说上课,真的听不进去,PPT看着很迷糊,课我也听不太明白。老师身体也不是很好,经常咳嗽(感觉老师还是得多注意身体QAQ),上课老师会把正课内容和实验都讲一下,正课内容还是比较丰富的,至少从期末复习课上看讲的内容还是蛮多的(比王道多)
关于理论学习还是比较推荐学堂在线陈渝、向勇老师的OS课,感觉讲的不算难,也很清晰,PPT写的也很nice(ucore可不听,感觉是thu的巨大实验)。之后和王道的内容互相补充,基本上可以cover科大PPT上的内容。
关于实验不说了,写了不太到一半,主打一个辅修摆烂
作业全交,期末大概10%左右,最后被捞到3.7,很满意(及格万岁党),毕竟今年期末还是背书大赛,平时没时间好好写实验期末周还没时间背书吗(×,其实是因为大三没啥期末考了期末就开始背书了)
讲课上,老师用的英文PPT,用中文讲授,总体上感觉PPT还是很详尽的,基本上涵盖了《Operating System Concepts》那本书讲授章节(1-13)的全部知识点,拿来看一遍复习完全够用了,不过英文PPT确实有些地方稍微有点难懂。老师身体不太好,不过十分负责,也是尽量想讲的更生动一些,可惜文科课大家确实听的兴趣一般般,基本上教室内集中在后排。老师语速我个人感觉有点慢,有时候回放1.5倍速听感觉更合适些(
作业基本上就是概念默写或者调度算法自己分析一下之类的,本来貌似是小测但是两个时间段都有人来不了就改成了作业,作业总体不难,必须手写拍照上传到BB系统上,感觉助教能多提醒一下提交ddl就更好了,我就不幸忘记交了一次(捂脸
重中之重就是试验了:Lab1基本环境搭建;Lab2VGA、UART串口输出;Lab3时钟中断,shell功能简单实现;Lab4内存分配和管理;Lab5&Lab6进程调度算法实现。总体设计相当不错,基本上就是不断完善一个简单操作系统的功能,层层递进,写起来很有成就感。实验还是有一定难度的,也问过好几次助教问题,实验文档和实验讲解稍微有一点不太完善,感觉有些要写的地方并没有叙述很详细清楚,一开始会感觉无从下手。通过实验也学了比较多的东西,包括一些shell命令、写简单脚本、简单的汇编命令等等。实验是写实验报告,最后提交报告+代码,实验报告要求的东西还蛮多的。
考试基本上就是背书大赛+默写大会,没啥好说的,背好1200页PPT基本就行,但是文科考试的确很无聊。注意一些细节,会考概念题,我们这次考了硬链接软链接,背的时候觉得不太可能考就没背,考试直接傻眼;还有一些简单的编程题(也就是进程同步、死锁那块,CS问题、哲学家就餐问题一类)、计算题等等,总体难度不大,但是要背的实在是太多了。。。
最后公布了卷面成绩,感觉给分海星(?)
上课用的英文ppt,老师用中午讲,ppt很不错,对着自学也没有任何问题。
实验相比其他班,较为简单,而且收获不少。
总评成绩按开学约定的比例给分,并且向上调分(我上调了好多分)。
考试前,一定一定要把课本+ppt的东西背一遍,答案都在其中
上课:中规中矩?本人上课基本不听课,全靠ppt异步学习,上课ppt为全英文,较为凝练,有些地方表述有点奇怪?但基本包含所有精华点,比隔壁祭祖萝莉小希的ppt好不少。本学期把所有课堂小测改为了作业,上完一章/两章就布置一次,基本就算看几遍ppt照抄就可以(作业要求全手写),然后bb上提交,
点名:学期我知道的总共点了3次,前两次分别是点前一半人和后一半人,最后一次全点一遍,我缺了一次课
实验:实验主要是教你从0搭建一个简单的OS,带shell,内存分配,任务调度分配等。拆成6次实验(实际算是5次实验,实验5和实验6都是任务调度相关,但后者要求抢占式调度,任务动态到达等,完成了实验6的话实验5自动满分),允许一次无条件迟交一周(不影响总评)和助教打声招呼即可。
实验的体验较差:1.实验讲解ppt过于精简,仅告诉你几处实验关键点,但前后逻辑,实验目的等等有时会较为模糊,这就导致你需要花费大量的(不必要的)时间仅仅只是为了搞清楚实验到底想表达什么,但很好的一点是助教每周6都会有实验答疑,给你解释并告诉你一些思路之类的(虽然我没去过,有去过的同学可以讲讲),能帮你节约很多时间。搞清楚实验目的后就会发现实验其实难度不大。
2.实验报告要求较多,非常繁琐(需要结构图,流程图,编译图之类的),而且没有任何意义(我认为给助教和学生都带来了很多麻烦,建议以后报告展示结果,讲述关键思路即可,个人认为甚至应该限定报告字数,超字数扣分,报告应该是用最凝练的语言把最关键的思路清楚地表述出来,而不是把简单的逻辑点用一大堆抽象废话包装起来,不仅折磨别人也折磨自己)
3.实验收获较低,实验本质就是C语言实现一些简单的逻辑,写出来的东西较为鸡肋(较为玩具?)
课堂和实验收获:较低,感觉实验和课堂基本没有收获什么新知识??至少我学了这门课依然对线程进程操作系统的实操没有任何概念,基本就是作业抄抄书ppt,
考试:背书背书背书,自己的复习经历:先花一天过一遍ppt,把关键知识点名词用typora敲下来,然后花一天半背个滚瓜烂熟,考试基本没问题了,最后卷面87,总评还没出,所以给分暂不评价,只要你肯背书,高分肯定会有,
但感觉这种课文科真的没意思,个人还是希望能学到一些前沿的知识和工具的使用,你能考100不代表你掌握的技能和知识的比考6 70的扎实,不想等到几年以后真正需要用上这些东西才去痛恨当年的自己浮于表面地追求分数,而不是扎扎实实打好基本功,所 以推荐想真正学到点东西或者锻炼自己技能的到隔壁lyk或者xk的班
考试大题考了调度的两种方式(SJF RR),让你解释它是怎么调度的,有何优缺点,然后给到达队列计算调度相关的时间,然后问实时操作系统是否适用,不适用的话要用哪种调度
以及一题生产者-消费者问题,(给了一段代码,是把ppt正确的代码里的互斥锁的位置调换了),问你有什么问题,怎么改,然后第二题问有3种信号量,代码里出现了哪些信号量
还有一个TLB 相关的大题,问你如何降低缺页率,有计算访存时间,TLB的意义??(这个记不大清楚了)
个人觉得OS和COD知识交集很大,建议与COD整合起来复习
老师本人非常友好,甚至有点可爱。
上课中规中矩,考试的形式有点像文科,不过复习倒是很方便,考前画好重点,一通背记就能考个不错的成绩。总评应该捞了不少人,反正感谢老师捞我。
通常情况下,没有作业,而是用课堂小测代替。
今年实验和去年基本一样,在qemu上从零开始编写简单操作系统。文档比较简略,对我这种人来说,需要参考很多其它的资料才能写好。
实验对于我这个物院的来说还是相当有难度的,一开始被实验整得有些懵,不知道从何入手。需要自己静下心来慢慢理清思路,慢慢写,独立完成还是能学到不少东西的。 关于考试,因为是两个班一起出题,可能会出现一些没讲过的东西(?也可能是我忘了),也会考一些非常细的概念,不过大致上看看ppt应该就没什么问题。 给分还是不错的,实验按时完成,考试感觉一般,没想到最后给了4.3
其实老师讲课还是可以的,比起组成原理来说还有趣一点,最后考试不简单,但是给分还行。实验很不容易,老师人性化得分为第一批和第二批提交。于是我就都第二批低分飘过保平安了,主要是一开始的框架也没会,后面就一直懵逼,课程设置有一些问题吧,这也没办法。
上课和马建辉风格差不多,实验如果要自己写的话完全只能自己摸索,费时而且不一定做的出来,考试闭卷,和文科考试似的。
课程最大的特点就是背背背,记忆性的东西非常多,但其实也可以看到操作系统由简单到复杂的一系列实现,以及用不同的策略方法来提升操作系统的性能,作为兴趣课来说绝对合格,而且说实话还挺有意思的,但是作为硬课确实够难受的……
作业实验能写还是要写吧(听说实验很后面还有,不过因为后面精力不够实验都没咋写,就写了作业)
考前看一下王道速成一下及格应该不算太难,身边了解过来给分也还好。
点名占比不少,一定要去上课.
关于考试,最后读者写者的编程题写了几十行c代码得分1/16,老师的解释是写的不像操作系统的代码,说实话不太能接受.只有信号量给了一分.建议还是直接背ppt里给的伪代码吧
写完实验了,来评个课。
实验内容和往年基本一致,实验文档的可读性问题也依然存在。
写完第三个lab的时候有点忙,于是隔了一个多月才回来补后面三个lab。结果发现意外地……比之前轻松?可能是由于后三个lab助教通过TODO tree把任务都标出来了(其实刚刚发现lab3也有TODO tree但我忘了……),让我思考的目标更明确了。这一点我觉得很好,建议以后的助教也通过类似的方式多给一点引导(不然光看实验文档和注释这么少的代码真的有点难下手)。
另外后面几个lab基本是简单的链表处理和函数调用,比前面搞汇编语言和字符串处理的实现容易不少。如果前面做的很痛苦,也不必太担心后面的lab。
一点建议:如果感觉实验文档啃不动,不如直接去看看框架代码和祖传实验代码,有时候代码甚至比文档更具可读性(
一点期待:这一整套实验做下来还是很有成就感的,我们用比较底层的c语言和汇编语言实现了一个具有时钟功能、能够进行内存管理和进程调度的内核(虽然助教的框架提供了不少的辅助)。但这套实验的问题在于只有写完了才能感觉到它的有趣之处,真正写的时候,尤其是读文档都读不懂的时候,内心是比较痛苦的。我的看法是:哪怕实验框架多留点TODO让我们自己实现,但只要实验文档能把引导做好,这大概也不是什么问题,甚至能让实验给我们更多收获。在我心目中,如果实验文档能完善一些,那么这套实验大概会是和隔壁COD的实验一样优秀的。期待后面能有一些助教愿意下功夫完善这些工作。
作业:不多,一共6次,都是比较基础的概念题。
课堂:前半学期在C老师的课堂上听课,感觉还是课本更能让我接受一些……后半学期去隔壁班蹭了几节课,发现L老师的课堂我也很难集中注意力听课(可能我更适合和课本交流)
考试:考前随缘翻翻两个班的ppt和课本吧……前面的同学基本也都提到了考试情况如何,背就是了。
给分:考完试如果有想说的话再更新。
祝大家考到的知识点考前都有背到吧。也祝这门课的实验越来越完善。
老师讲得很不错,但叠课了,遂摆。 实验做了三个,签到一次没去,小测全是线上提交,还有一次忘交了,期末考前三小时把PPT翻了一遍,结果还行,老师给分很好。
陈老师语速挺快的,声音不大,也比较无聊,但仔细听还是比较详细的。PPT挺详细但看起来莫名的怪,PPT上的内容都可能会考,大概相当于教材的大部分加上一小部分的考研书,考前最好背一遍,毕竟有二十分名词解释和二十分简答。
没有作业,只有课前小测,今年总共6次,完全开卷,可以用手机。实验挺玄学,文档和PPT都不怎么详细,很多东西搞不明白还得看看祖传代码,特别是前两次实验。中间三次实验难度不太大,在提供框架的情况下实现也不需要很多时间,逻辑也很简单,就是一些链表。第六次实验不给框架了,感觉一下子就难了起来,需要自己实现其他调度算法。整体来看实验难度不大,今年实验报告要求也不高,助教会给出需要写的内容,只要完成任务就是满分。考试不难,PPT和书要好好背,每年都有不少于30分的纯背诵题。信号量的编程,死锁的银行家算法,各种调度,包括进城调度,虚存的页面调度和最后的磁盘调度,内存管理部分的各种计算和过程都要熟悉,后面的大题就主要考这些内容。文件管理部分各种概念都要熟悉,还有一些PPT上只提到个名词的东西比如软链接,硬链接之类的最好也要自己查一查熟悉一下。
最后给分不错,实验满分,期末84就可以上95了
给分很好,最后一个实验没时间做,期末稀碎都能2.7,
不太建议翻于渊的《自制一个操作系统》并为此看王爽老师的《汇编语言》,你猜猜我是怎么知道的
实验没用到汇编,很友好
这个学期刚开始上这门课,上课完全不知道陈老师在讲什么,作为一个被强化数理基础的典型科大学生,目前还是对于计算机一窍不通,个人认为陈老师的不具备引导能力,当前体验很差.同时这门课平时不设置作业,要求每两周进行一次小测(有点离谱).
深夜点评怎么可以写这么多错别字,靠,更新一下
实验相对隔壁班来说简单,但是最后几次没有框架的实验还是有不少理解的难度,但是根据git上开源的仓库,还是可以较为轻松的完成实验,具体的实验内容别人已经说的很清楚了。
期末考试好像隔壁班有直接复现试卷的,大家可以去看别人复现的试卷。考试难度比较适中,我最后满打满算没有看到一天时间,期末73,实验全满,有少量加分,作业平均每次八点几,最后总评88
老师人很好,讲得很清楚,就是容易听着走神(真的有点容易)。课下问的问题都会很热心回答(不管什么课的,甚至是不会的也会帮忙search或提供一下想法)。
实验设计的思路很不错,从0开始写个OS。只是总感觉文档容易看不懂要干什么,导致实验难度虚高(前两次实验看得我非常畏难,好不容易搞明白了发现难度完全没了)。
实验框架也比较纯c的样子,后面文件太多看着有点眼花缭乱。或许可以用class使结构更清晰一点?
最后一次实验今年是不给框架自行发挥的,因为文件数目太多+无框架+考试周来临,狠狠emo住了。希望前面节奏能快点。shell实验和malloc实验都属于工作量很小了,不明白为什么拖了这么久,考试周才来弄无框架。
可惜这门课还是开得太像文科了点。
虽然没有特别优秀,但总体来说是体验不错的一门课了。
刚刚考完,评论不涉及老师讲课,主要说考试和实验。
实验收获还是不少的。说实话实验难度不大。实验最大的难点是搞不懂需求,不知道要做什么。因为老师的PPT给的太过抽象,必须辅以助教的实验文档才能慢慢搞懂,建议刚开始一定要找老师要2020年的线上课实验讲解录屏,不然普通人很难搞懂。实验需求搞懂了,基本实验就完成一半了,我花一个下午才搞懂实验干的啥是常有的事。不懂实现过程的多找助教问问也能有不少收获。
第二个问题是QEMU上我没找到调试方法,导致出现BUG很难找,这个只能提高自己编程的一次性通过率了。在实验开始的时候写几个调试用的函数打印状态信息是磨刀不误砍柴工的。(提醒下注意检查符号数无符号溢出的错误,有个实验因为这个BUG查了一下午...)
实验4的助教给的测试用例很有意思。实验5、6不再提供框架,感觉写出来有那么点意思了。
实验安排的时间我觉得有点问题,建议同学和老师反映早点开始实验,不然后面很紧张。5月初安排实验4,5.20 左右验收实验4,6.17就要考试,且提交实验5,6,是有点难顶的。
考试部分今年没有出什么太离谱的题。看OS的出题风格就是总会给几个恶心人的填空让你难受难受,比如进程的特点,操作系统的作用啥的,躲不过。今年考的比较意外的是硬链接和软链接,班上讲的和书上讲的都不太清楚.....CSDN里翻吧,据说已经连续考了好几年了;此外还出了程序员应不应该学OS?请从内存分页管理角度解释理由,我特喵??我除了程序局部性原理的角度外就没想着其他答案了。我信院来蹭的,如果不是为了拿学分不建议选课,期末复习1200页讲义难顶。而且复习背八股文没啥收获...
学习基本可以靠教材+老师PPT互相补充,难度不大
老师其实蛮和蔼的,没上课的时候和同学唠唠嗑儿,偶尔感觉迷迷糊糊的
上课:可能有时候语速比较快,我上课的时候经常走神hhh。由于放假导致上课时间不够,最后文件系统那里的确讲的飞起,让我直接放弃了。PPT总结的很到位,基本上涵盖了恐龙书的关键内容,还有按照模块的总结。不过看起来没有隔壁班的那么生动,作为复习材料比较方便。不定期点名,占平时分。(但是到课率仍然很堪忧)
作业:平时基本没有作业,用两周一小测的形式代替,个人觉得挺好的,可以督促复习,不至于在考前狂看1000页英文PPT。小测也很简单,甚至可以直接在PPT里搜。最后两次的小测变成计算题了,作为作业布置。
实验:从0开始完成一个自己的操作系统,一共有六个lab,写下来很有成就感,也对理论课的理解加深了很多。画风和隔壁班不太一样,个人感觉是自由发挥,能跑就行(?)。虽然实验ddl最后拖到了考试结束之后很久,但是我觉得比隔壁班放在考试周前好一点。平时的实验给的时间也挺充足的。不过上课讲的实验经常很草率,看去年的回放也经常不知道要干什么,也没有详细的实验文档,需要自己多问问助教和老师。难度适中,主要就是锻炼基本的写代码的能力,比较难的地方(比如汇编)在PPT里都会给,Makefile什么的也不会真的要你自己写。
其他:这里疯狂表白胡助教!胡助教有问必答,回复速度很快,人也超和蔼,头像也很可爱。
至于给分,基本上按照公式再加几分。虽然被卡了,但也还能接受。不过OS课的给分好像一直不会大力调……
总而言之,好好做实验,认真学肯定不会太差啦
老师人很好,讲课也不错。实验共六次,感觉比另一个班简单(虽然每个实验我都要做很久,最后两个还没有做完)。我总评2.0,对于只求不挂的我来说还是很好了。
开学时被去年32%挂科率吓到了,实际上做完实验分不会太低,会略微调分
lyk和cxl的实验和理论内容都不太一样,lyk班可能人多一点,选不到的话cxl班也不是不可以接受
不过今年cxl实验讲解比去年简略了很多,要看去年视频才能做,不排除有继续加大实验难度的可能
实验很难,主要是前面的使用linux内核,后面好一点,实验能全部完成的同学仅占1/3... 由于上一点,我觉得我才拿3.7有点不太能接受,因为卷面最高听说69(至少我查卷时是),我也是60+,实验全做了,可能没调分吧(?) 总体还好,就是实验难了,今年又是线上,难度更高,线下也许好点,只要多问助教就行 吐槽一下,不管陈老师监什么考试,考试后半小时都说不去解手,怕交卷后通答案...
实验很难,要有心理准备;考试像文科考试,要注意复习一些边边角角的东西,比如这次考试第一题就是考操作系统的四个特征。不过最后给总评的时候会根据你的情况调整考试和实验的比重,所以给分看起来还是不错的。
没有作业 两周一小测 两次点名
四个实验难度很大我只做了1.5个实验后面直接放弃了省下不少时间
上课讲的很困 慢慢就到后排做自己的事了
期末不难 好好背ppt就行 于是就变成了文科
最后一节课会划重点一定要去
总评的话 像老师说的实验不好就抓期末 期末不好就把实验补齐
考试觉得挺好就没补实验了最后3.3hhh
成绩出来了写个评价~
这次上操作系统没有作业,两周一次小测代替作业分。
(虽然小测的题目很简单,但是对于不喜欢及时复习的我,还是感觉拿不到满分)
然后实验挺难的,难在给的提示太少,需要自己一个人把所有的东西构思好,然后慢慢debug,慢慢跑通。
尤其是刚到lab2就要完全自己实现,只提供测试文件和接口说明,没有更多的提示。当时看到实验完全是懵逼状态,按照自己的思路做,但是由于makefile和gdb都是第一次接触,学习它们都耽误了一点时间,加之自己开始写实验也很晚,所以实验二就没能按时交上去,选择的是分析老师代码的替代方案。
不过当你理清楚整个代码的结构之后,再写实验三和实验四就比较容易了(虽然我实验三最后一个功能实现的并不好),而且你会发现,这种不限制你如何实现,只规定你实现哪些功能的模式其实有更高的自由度,因为你可以想怎么实现就怎么实现,不像隔壁班根据实现方式来打分。
这次因为实验安排不太好,只做了四次实验,所以每次实验的比重就加大不少(我哭)
这里强调一下,一定要多问助教和老师!!!我们这个学期的助教不太喜欢回人,所以我做实验的前期完全是自己瞎琢磨,后来我跟室友学着问老师,老师回话速度还是很快的,一两句话就解决我的疑惑,做实验就非常happy啦~
然后其他的就没啥好说的了,cxl上课感觉没有llxx讲的清楚,也可能是因为我自己听课有时候跟不上她。
最后的考试还是很简单的,全都是很基础的概念,连我考前最担心的信号量也就考了个很简单的PC问题。
不过……我宁愿要93都不想要94啊,又被卡绩了好难过……
//Update 2019/12/19
上传小测题 习题.rar
实验对学渣极其不友好!这一年实验难度突飞猛进,一共四个实验,lab2是往年的lab5(大概),导致全班只有两三个人做出来,其他人都做了替代方案(给代码加注释);后面两个实验都基于lab2的代码,如果前面没弄清楚(比如我这样的学渣),后面很难做,并且还没有替代实验,认识几个同学都放弃了。考试难度正常,和COD一样背背书,有一大题考了命令行。
四个实验:
lab1照着PPT做就行,事实上因为PPT版本过于老旧,实际上跑起来BUG非常多,靠着上网搜解决方法做完的。
lab2写一个FCFS的进程调度系统。
lab3分难度,大概就是写RR/优先级调度或者混合起来。
lab4相当于用隐链表写malloc
老师人不错,而且很明显能看出来是想让我们学到很多有用的东西的。所以PPT做的还不错,上课画风有点类似文科课,有很多要记录的知识点。
今年的实验课讲真个人感觉不是很友好,也可能是我太菜了,平常的实验一个人基本没有单独做出来的,都是根据助教给的代码写的第二批,再加上最后的大实验直接放弃,所以就导致这门课是我单学期最差的一门课......
总体评价,老师不错,也挺负责,PPT还好。就是实验难度太大了,实验一定要好好做,实验做得好跟做的不好总评可以差个5-10分。。。
讲义做的不错,期末前要多看几遍,很有帮助。
实验今年改革了,有点难度。每次实验都要交,否则至少会差一档
期末有点像文科,都看看书和讲义吧,期末考的好的,总评会调的比较高。我期末考了前三,实验都交了,作业平均8分吧,最后总评98.
今年陈香兰老师将之前的一门因为选课人数不够被砍掉了的linux的暑期课程的实验搬到这个课里面来了,所以今年实验跟以前很不一样。实验最开始是用汇编写的,后面基本主要是c,设计汇编的也都给了代码。实验上交时间分为两个批次,分数设置楼下说过了,其实我也不太记得了/笑。实验好好做的话最后分数还是不错的,尤其是最后一个选做的实验,占总分10分,而且实验给分也还好,最后一个实验是时间片轮转调度算法,我只写出了时钟还没有实现调度就给了8分。考试占比好像是50%,考试简直是文科考试,建议课件什么的早点开始看。据说最后卷面分数超过60的都很少/捂脸。但是最后都调分了。
我是2017春的,不知道为什么没这个选项......
这学期老师把她暑期的一个linux课的实验放到操作系统课里了,所以实验和以往的不一样。我的体会是实验基本全靠谷歌(和Orange's那本书,下面有人提到),做到实验五的时候我发现了南大的操作系统主页……感觉和我们做的基本一样(所以说实验设计得其实还是比较合理?)但是南大的实验指引比我们要详细很多(然而那个时候我们已经脱离汇编进入C了……),链接在这里:
http://dislab.nju.edu.cn/taohuang/lab1.html
(不保证永久有效)
关于考试: 非常赞同楼下文科的说法以及ppt的确比llxx好…平时分包括三次小测(其实就是点名)以及作业(作业改得比较松,做错了一般也是9分)
这学期的实验分了两批交,第一批满分10分,自己写;第二批满分8分,任务是给助教发的代码加备注。 但是工作量差很多……
感觉我们这学期多做的实验中有些东西其实在微机原理里会学到,所以还是有用处的(吧)
比llxx强点,ppt有个主线,其他懒的评价
出了分再来说几句,虽然一学期下来课程真的无力吐槽,但给分倒也不含糊,助教很nice,最后选做的大实验真的就是划水般写了几句话而已,敲了几行代码,还给了不错的分数,老师在群里说“今年不及格人数很多”,当时把我们都吓坏了,但分数出来后,群里大部分人都表示超出预期,所以估计往年给分会更好吧
课程主页http://home.ustc.edu.cn/~lijun814/ 平时作业和实验都在里面啦
个人感觉难度适中,老师讲得挺好的,外院的同学选修问题不大,H班的童鞋可以考虑退一个学期英才班来非H班玩呀23333 作业一般,实验难度合理,这门课学下来还是蛮有收获的~
最后考试难度不大,而且是中英文都有,用英文课本也不虚,给分很好。