操作系统原理与设计(陈香兰) 2022春 2021春 2020春 2019春 2017春 2016春 2015春 2014春 2012春 2011秋  课程号:01117401
2022春 2021春 2020春 2019春 2017春 2016春 2015春 2014春 2012春 2011秋  课程号:01117401
7.7(21人评价)
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:一般
选课类别:计划 教学类型:理论实验课
课程类别:本科计划内课程 开课单位:计算机科学与技术系
课程层次:专业核心 学分:4.0
课程主页:暂无(如果你知道,劳烦告诉我们!)
简介

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

最后更新:

点评 写点评
排序 学期
评分 评分 21条点评
__________ 2021春

这条评论意在提供更多关于这门课的信息,尽量保持客观性

 

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年,似乎就没有发生这种事。所以选到此班的同学,不必太害怕。

2 0
Nullptr 2016春

老师本人非常友好,甚至有点可爱。

上课中规中矩,考试的形式有点像文科,不过复习倒是很方便,考前画好重点,一通背记就能考个不错的成绩。总评应该捞了不少人,反正感谢老师捞我。

通常情况下,没有作业,而是用课堂小测代替。

今年实验和去年基本一样,在qemu上从零开始编写简单操作系统。文档比较简略,对我这种人来说,需要参考很多其它的资料才能写好。

1 0
ctriis 2020春

实验对于我这个物院的来说还是相当有难度的,一开始被实验整得有些懵,不知道从何入手。需要自己静下心来慢慢理清思路,慢慢写,独立完成还是能学到不少东西的。 关于考试,因为是两个班一起出题,可能会出现一些没讲过的东西(?也可能是我忘了),也会考一些非常细的概念,不过大致上看看ppt应该就没什么问题。 给分还是不错的,实验按时完成,考试感觉一般,没想到最后给了4.3

1 1
Misaki题目不是lyk出的...

立即登录,说说你的看法

peining 2016春

其实老师讲课还是可以的,比起组成原理来说还有趣一点,最后考试不简单,但是给分还行。实验很不容易,老师人性化得分为第一批和第二批提交。于是我就都第二批低分飘过保平安了,主要是一开始的框架也没会,后面就一直懵逼,课程设置有一些问题吧,这也没办法。

1 0
cmer 2016春

上课和马建辉风格差不多,实验如果要自己写的话完全只能自己摸索,费时而且不一定做的出来,考试闭卷,和文科考试似的。

1 0
wsc 2016春

实验花的时间很多,而且老师给的实验说明不是很详细,需要自学汇编,而且代码有很多细节自己要摸索出来的话,需要疯狂的查资料,还是有些坑的(比如原理都懂了,但就是AS汇编器的某个用法自己不清楚,导致结果一直不对。网上的资料相对零碎,找来找去还是挺费时间),我觉得有些地方应该直接让我们看源代码。

(推荐一本书:Orange's 一个操作系统的实现)。

个人的感受是做实验过程中自己查维基百科、stackoverflow学的东西比听讲学到的多太多。。。

 

考完试更新:

考试前会划重点。好好记。(我当时带了电脑,飞快地记到了onenote里面。)

考试方式偏文科,偏应试,个人认为不利于学好CS,但利于备考。比如这次还出了这种题:“当今OS的发展动力是什么?”。真没想到会这么考。。

考前几天好好看PPT,有些东西最好记(OS有哪几个基本类型,顺序执行的特点,进程的五大特征等,要能自己列全。这是我觉得很死板的地方,我认为这些只需理解了就行了),小概念也不要放过(比如什么是“护航效应”,估计没彻底看PPT的人都不记得了。类似的还有优先级反转之类的名词,弄懂即可,只是这次没考。反正CPU调度这章肯定是重点了)。可以自己做一个PPT,每一页写一些概念,把解答部分做成单击时进入的动画,放映一遍看自己记不记得。

实验要好好做,实验后附的问题也要当时弄明白。(比如可执行程序中的BSS段是干什么的,做实验的时候就应该多查wikipedia)

1 0
duck2048 2021春

老师其实蛮和蔼的,没上课的时候和同学唠唠嗑儿,偶尔感觉迷迷糊糊的

上课:可能有时候语速比较快,我上课的时候经常走神hhh。由于放假导致上课时间不够,最后文件系统那里的确讲的飞起,让我直接放弃了。PPT总结的很到位,基本上涵盖了恐龙书的关键内容,还有按照模块的总结。不过看起来没有隔壁班的那么生动,作为复习材料比较方便。不定期点名,占平时分。(但是到课率仍然很堪忧)

作业:平时基本没有作业,用两周一小测的形式代替,个人觉得挺好的,可以督促复习,不至于在考前狂看1000页英文PPT。小测也很简单,甚至可以直接在PPT里搜。最后两次的小测变成计算题了,作为作业布置。

实验:从0开始完成一个自己的操作系统,一共有六个lab,写下来很有成就感,也对理论课的理解加深了很多。画风和隔壁班不太一样,个人感觉是自由发挥,能跑就行(?)。虽然实验ddl最后拖到了考试结束之后很久,但是我觉得比隔壁班放在考试周前好一点。平时的实验给的时间也挺充足的。不过上课讲的实验经常很草率,看去年的回放也经常不知道要干什么,也没有详细的实验文档,需要自己多问问助教和老师。难度适中,主要就是锻炼基本的写代码的能力,比较难的地方(比如汇编)在PPT里都会给,Makefile什么的也不会真的要你自己写。

其他:这里疯狂表白胡助教!胡助教有问必答,回复速度很快,人也超和蔼,头像也很可爱

至于给分,基本上按照公式再加几分。虽然被卡了,但也还能接受。不过OS课的给分好像一直不会大力调……

总而言之,好好做实验,认真学肯定不会太差啦

 

0 0

老师人很好,讲课也不错。实验共六次,感觉比另一个班简单(虽然每个实验我都要做很久,最后两个还没有做完)。我总评2.0,对于只求不挂的我来说还是很好了。

0 0
XXXXX 2021春

开学时被去年32%挂科率吓到了,实际上做完实验分不会太低,会略微调分

lyk和cxl的实验和理论内容都不太一样,lyk班可能人多一点,选不到的话cxl班也不是不可以接受

不过今年cxl实验讲解比去年简略了很多,要看去年视频才能做,不排除有继续加大实验难度的可能

0 0
轻轻的飘 2020春

实验很难,主要是前面的使用linux内核,后面好一点,实验能全部完成的同学仅占1/3... 由于上一点,我觉得我才拿3.7有点不太能接受,因为卷面最高听说69(至少我查卷时是),我也是60+,实验全做了,可能没调分吧(?) 总体还好,就是实验难了,今年又是线上,难度更高,线下也许好点,只要多问助教就行 吐槽一下,不管陈老师监什么考试,考试后半小时都说不去解手,怕交卷后通答案...

0 0
spj 2020春

实验很难,要有心理准备;考试像文科考试,要注意复习一些边边角角的东西,比如这次考试第一题就是考操作系统的四个特征。不过最后给总评的时候会根据你的情况调整考试和实验的比重,所以给分看起来还是不错的。

0 0
putatio 2016春

没有作业 两周一小测 两次点名

四个实验难度很大我只做了1.5个实验后面直接放弃了省下不少时间

上课讲的很困 慢慢就到后排做自己的事了

期末不难 好好背ppt就行 于是就变成了文科

最后一节课会划重点一定要去

总评的话 像老师说的实验不好就抓期末 期末不好就把实验补齐

考试觉得挺好就没补实验了最后3.3hhh

0 0
yz01 2019春

成绩出来了写个评价~

这次上操作系统没有作业,两周一次小测代替作业分。

(虽然小测的题目很简单,但是对于不喜欢及时复习的我,还是感觉拿不到满分)

然后实验挺难的,难在给的提示太少,需要自己一个人把所有的东西构思好,然后慢慢debug,慢慢跑通。

尤其是刚到lab2就要完全自己实现,只提供测试文件和接口说明,没有更多的提示。当时看到实验完全是懵逼状态,按照自己的思路做,但是由于makefile和gdb都是第一次接触,学习它们都耽误了一点时间,加之自己开始写实验也很晚,所以实验二就没能按时交上去,选择的是分析老师代码的替代方案。

不过当你理清楚整个代码的结构之后,再写实验三和实验四就比较容易了(虽然我实验三最后一个功能实现的并不好),而且你会发现,这种不限制你如何实现,只规定你实现哪些功能的模式其实有更高的自由度,因为你可以想怎么实现就怎么实现,不像隔壁班根据实现方式来打分。

这次因为实验安排不太好,只做了四次实验,所以每次实验的比重就加大不少(我哭)

 

这里强调一下,一定要多问助教和老师!!!我们这个学期的助教不太喜欢回人,所以我做实验的前期完全是自己瞎琢磨,后来我跟室友学着问老师,老师回话速度还是很快的,一两句话就解决我的疑惑,做实验就非常happy啦~

 

然后其他的就没啥好说的了,cxl上课感觉没有llxx讲的清楚,也可能是因为我自己听课有时候跟不上她。

最后的考试还是很简单的,全都是很基础的概念,连我考前最担心的信号量也就考了个很简单的PC问题。

 

不过……我宁愿要93都不想要94啊,又被卡绩了好难过……

 

//Update 2019/12/19

上传小测题  习题.rar

0 5
TheLitFireorz wjw
yz01回复 @TheLitFire: wjwtql(让我确定一下你没有把我当成wjw)
TheLitFire回复 @yz01: ?你不是wjw么【/滑稽】
yz01回复 @TheLitFire: wjw是真大佬,我是wjw的室友(
TheLitFire回复 @yz01: tql,您和wjw一样94,wsl

立即登录,说说你的看法

OdileCooper 2019春

实验对学渣极其不友好!这一年实验难度突飞猛进,一共四个实验,lab2是往年的lab5(大概),导致全班只有两三个人做出来,其他人都做了替代方案(给代码加注释);后面两个实验都基于lab2的代码,如果前面没弄清楚(比如我这样的学渣),后面很难做,并且还没有替代实验,认识几个同学都放弃了。考试难度正常,和COD一样背背书,有一大题考了命令行。

四个实验:

lab1照着PPT做就行,事实上因为PPT版本过于老旧,实际上跑起来BUG非常多,靠着上网搜解决方法做完的。

lab2写一个FCFS的进程调度系统。

lab3分难度,大概就是写RR/优先级调度或者混合起来。

lab4相当于用隐链表写malloc

0 0
随风流年 2017春

老师人不错,而且很明显能看出来是想让我们学到很多有用的东西的。所以PPT做的还不错,上课画风有点类似文科课,有很多要记录的知识点。

今年的实验课讲真个人感觉不是很友好,也可能是我太菜了,平常的实验一个人基本没有单独做出来的,都是根据助教给的代码写的第二批,再加上最后的大实验直接放弃,所以就导致这门课是我单学期最差的一门课......

总体评价,老师不错,也挺负责,PPT还好。就是实验难度太大了,实验一定要好好做,实验做得好跟做的不好总评可以差个5-10分。。。

0 0

讲义做的不错,期末前要多看几遍,很有帮助。

实验今年改革了,有点难度。每次实验都要交,否则至少会差一档

期末有点像文科,都看看书和讲义吧,期末考的好的,总评会调的比较高。我期末考了前三,实验都交了,作业平均8分吧,最后总评98.

 

0 0
Hexa4C 2017春

今年陈香兰老师将之前的一门因为选课人数不够被砍掉了的linux的暑期课程的实验搬到这个课里面来了,所以今年实验跟以前很不一样。实验最开始是用汇编写的,后面基本主要是c,设计汇编的也都给了代码。实验上交时间分为两个批次,分数设置楼下说过了,其实我也不太记得了/笑。实验好好做的话最后分数还是不错的,尤其是最后一个选做的实验,占总分10分,而且实验给分也还好,最后一个实验是时间片轮转调度算法,我只写出了时钟还没有实现调度就给了8分。考试占比好像是50%,考试简直是文科考试,建议课件什么的早点开始看。据说最后卷面分数超过60的都很少/捂脸。但是最后都调分了。

0 0
ElisaAI 2016春

我是2017春的,不知道为什么没这个选项......

 

这学期老师把她暑期的一个linux课的实验放到操作系统课里了,所以实验和以往的不一样。我的体会是实验基本全靠谷歌(和Orange's那本书,下面有人提到),做到实验五的时候我发现了南大的操作系统主页……感觉和我们做的基本一样(所以说实验设计得其实还是比较合理?)但是南大的实验指引比我们要详细很多(然而那个时候我们已经脱离汇编进入C了……),链接在这里:

http://dislab.nju.edu.cn/taohuang/lab1.html

(不保证永久有效)

 

关于考试: 非常赞同楼下文科的说法以及ppt的确比llxx好…平时分包括三次小测(其实就是点名)以及作业(作业改得比较松,做错了一般也是9分)

 

这学期的实验分了两批交,第一批满分10分,自己写;第二批满分8分,任务是给助教发的代码加备注。 但是工作量差很多……

 

感觉我们这学期多做的实验中有些东西其实在微机原理里会学到,所以还是有用处的(吧)

 

0 0
Gh 2016春

比llxx强点,ppt有个主线,其他懒的评价

出了分再来说几句,虽然一学期下来课程真的无力吐槽,但给分倒也不含糊,助教很nice,最后选做的大实验真的就是划水般写了几句话而已,敲了几行代码,还给了不错的分数,老师在群里说“今年不及格人数很多”,当时把我们都吓坏了,但分数出来后,群里大部分人都表示超出预期,所以估计往年给分会更好吧

0 0
xymeow 2015春

课程主页http://home.ustc.edu.cn/~lijun814/ 平时作业和实验都在里面啦

个人感觉难度适中,老师讲得挺好的,外院的同学选修问题不大,H班的童鞋可以考虑退一个学期英才班来非H班玩呀23333 作业一般,实验难度合理,这门课学下来还是蛮有收获的~

最后考试难度不大,而且是中英文都有,用英文课本也不虚,给分很好。

0 1
长者主页打不开。。

立即登录,说说你的看法

runday 2015春

有实验,挺水的,考试要记的东西挺多的,最后成绩81

0 0

陈香兰

教师主页: 戳这里

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

李永坤 9.2 (26) 2021春 2020春...
未知 2017春 2009秋...
熊焰 2013春 2010秋...

陈香兰老师的其他课

Linux内核源代码导读 10.0 (1) 2011秋 2011春...
分布式计算 2016春 2015春
操作系统 2013秋
软件综合实验 2016夏 2015夏