操作系统课程设计心得+给老师的建议

2. DOS 多线程

写DOS的时候 ,我在想,这么老的东西干嘛还要用它呢,而且Turbor C 还那么难用。
然而还是要做的,初期写代码的时候,发现老师把四个例程合并到一个C文件里面了,带来了很严重的变量污染,
全局变量放在一起,搞不懂了。
后来萌发了,写几个库文件的想法,后来发现这么搞得画接口成本太高,后来又发现,多个C文件不同同时共享使用一个全局变量会报错,
而且在Turbor C里面也没法写Makefile。后来还是把函数都写到一起了,但是是分成四个文件写的。
自己从底层去实现DOS多线程还是蛮有趣的

3.文件系统

老师说,文件系统是最比较简单的,后来我信了,但是自己真正做的时候发现并不是这样。
操作系统理论并没有好好学,然后自己做之前花了好多时间,搞懂各个部分的关系定义。
比如元数据Metadata,FAT表,Boot Block 引导块等等,同样的还是那个问题,初期在看文档的时候,描述的不是很容易懂。
同时关于各个结构体部分,包括结构体的属性,觉得老师的命名规范不好所以就自己重构了,导致,后期写代码的时候,
参考学长代码的时候,遇到很多问题,但是还是觉得自己设计的结构体会好一些。尤其是Open File Table中我把原来的一个整体
拆分成 FCB(File Control Block),FDT(File Descriptor Table)和 isUse字段,这样在操作和赋值的时候就会方面很多,
自己差不多花了半个月的时间从早上8:00到晚上23:00,写代码调BUG,重构了三次,在结构体设计上纠结了大量的时间,
很遗憾自己版本没跑起来,运行一直有BUG。
另外,Magic Number 魔数的定义有两个,一个是系统文件或者其他格式文件起始位或者终止位特定的字符串例如“1010101010”
还有一个定义是出现在编程里面,很突兀的出现的数字 1024 变量+1 等等,看的一头雾水,还得想侦探小说一样,花大量的时间来
搞懂这里为啥要这么写,总之这是非常不好的编程习惯。 另外如果变量名称起不好,会给理解功能带来非常大的阻力,最好的代码
是把注释写到命名中。

PS: 关于模拟系统的尺度,时间存储处理和其他跟寄存器相关的约束,觉得没啥必要,毕竟系统也是比较老的类型了,这个并不是重点

4.Linux部分

开始的时候,没有好好看课程设计指导书,所有的东西差不多都是百度来的,花了好多时间。
一开始其实我最大的困难不是不会写程序,而是不知道老师要的是啥,这个就比较尴尬了。
然后,初期还有一个大的门槛是,Linux操作系统下面的各个库函数的细节,一堆函数各种参数,曾经一度质疑过人生。
后来发现了Linux操作系统的命名规律,rcv[recive] ,snd[send],ctl[control]等等,命名简约,体现了Unix体系的设计理念。
之后System V 和POSIX之间,后来才知道System V 出现时间比较早,POSIX机制是建立在System V之上的,
使用Posix机制会更易懂和易用一些。

另外还有一个收获是学了Makefile的使用,初步了解了Build构建,这也是自己比较骄傲的地方

给老师的建议

  1. 开放基础代码.c ,大家每次都是从底层一点一点造轮子,一方面,有能力这么干的人是少数,大部分同学还是以借鉴学长的代码为主。另一方面,每年大家写出来的水平都差不多,把大部分精力都放在底层实现去了,但是操作系统里面讲的一些调度算法等等反而没有用上,这样就有些舍本逐末了。
  2. 发布基础代码到Github上面,学生可以提交改进,这样就可以进化,关于操作系统的代码会越来越完善,考核方式,有能力的学生,可以以改善代码,拓展功能为考核条件。
  3. 没有连贯性,课程设计应该粒度变细,拆分成模块,样例代码可以给一部分,其他的需要学生去填,从头到尾,新的课程设计需要用到之前的课程设计,这样到学期末的时候,大家都会有一个自己的操作系统的版本
  4. 自选课程设计主题,学生可以不可以自己选题,比如在一个嵌入式的板子上面自己写一个操作系统,或者移植操作系统到板子上面
  5. 关于团队合作,团队合作模式是一种很好的模式,但不是对每个人都试用,如果单纯为了团队合作而去团队合作,最终达到的效果,可能不会很好
  6. 关于课堂上课,老师像一个慈母,老师关于操作系统上非常奇妙的部分,视若珍宝,恨不得都交给学生,但是学生接受信息是有限的,尤其是没有相关实践的体验,单纯理论的灌输,没有共鸣,最终能够领悟的部分其实会很少,学会了一些细节的计算题其实这不是最重要的。
    老师只讲一下框架就可以了,细节需要学生自己搞懂。
  7. 上课形式,针对操作系统这门课的特点,比较适合MOOC的形式,老师提前把课程录好,大家可以比较方便的学习,而且进度可以异步
    省下的课时时间放在课程设计上面。这样不至于学生跟不上老师进度的情况
    推荐老师看一下,清华大学在学堂在线上面的操作系统的课程,课程的结构和模块的设计[需要注册一下学堂在线的账号]
    http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+2016_T1/courseware/be5b8d4fec0c4c329d19845020bc67b2/39384cfa48f44ee8a99561f69f4db4a5/
Paste_Image.png

写在最后,老师我很喜欢你,对自己所从事领域喜爱痴迷欢喜的老师是我一直比较敬仰的,当时选课的时候就是冲着你的严格来的,虽然最后自己分数可能不会很高,但是只要收获满满就很满足了,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,116评论 25 707
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,631评论 18 399
  • 如何打开自身毅力的开关?设立具体目标、对自己做出承诺、培养积极的心态。 开关开启后,问自己几个问题,实现目标的动力...
    云棫阅读 390评论 2 3
  • 《为奴十二年》是二十世纪福斯等电影公司发行的一部剧情电影,改编罗门·诺瑟普在1853年创作的同名小说,开篇黑屏白字...
    易易一易阅读 804评论 0 20
  • Dear Prof./D Hassan, I am a master degree candidate in th...
    HalaLi阅读 237评论 0 0