日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發(fā)布時間:2023/12/16 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux操作系统课程设计总结,操作系统课程设计心得+给老师的建议 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2. DOS 多線程

寫DOS的時候 ,我在想,這么老的東西干嘛還要用它呢,而且Turbor C 還那么難用。

然而還是要做的,初期寫代碼的時候,發(fā)現(xiàn)老師把四個例程合并到一個C文件里面了,帶來了很嚴重的變量污染,

全局變量放在一起,搞不懂了。

后來萌發(fā)了,寫幾個庫文件的想法,后來發(fā)現(xiàn)這么搞得畫接口成本太高,后來又發(fā)現(xiàn),多個C文件不同同時共享使用一個全局變量會報錯,

而且在Turbor C里面也沒法寫Makefile。后來還是把函數(shù)都寫到一起了,但是是分成四個文件寫的。

自己從底層去實現(xiàn)DOS多線程還是蠻有趣的

3.文件系統(tǒng)

老師說,文件系統(tǒng)是最比較簡單的,后來我信了,但是自己真正做的時候發(fā)現(xiàn)并不是這樣。

操作系統(tǒng)理論并沒有好好學,然后自己做之前花了好多時間,搞懂各個部分的關系定義。

比如元數(shù)據(jù)Metadata,FAT表,Boot Block 引導塊等等,同樣的還是那個問題,初期在看文檔的時候,描述的不是很容易懂。

同時關于各個結構體部分,包括結構體的屬性,覺得老師的命名規(guī)范不好所以就自己重構了,導致,后期寫代碼的時候,

參考學長代碼的時候,遇到很多問題,但是還是覺得自己設計的結構體會好一些。尤其是Open File Table中我把原來的一個整體

拆分成 FCB(File Control Block),FDT(File Descriptor Table)和 isUse字段,這樣在操作和賦值的時候就會方面很多,

自己差不多花了半個月的時間從早上8:00到晚上23:00,寫代碼調BUG,重構了三次,在結構體設計上糾結了大量的時間,

很遺憾自己版本沒跑起來,運行一直有BUG。

另外,Magic Number 魔數(shù)的定義有兩個,一個是系統(tǒng)文件或者其他格式文件起始位或者終止位特定的字符串例如“1010101010”

還有一個定義是出現(xiàn)在編程里面,很突兀的出現(xiàn)的數(shù)字 1024 變量+1 等等,看的一頭霧水,還得想偵探小說一樣,花大量的時間來

搞懂這里為啥要這么寫,總之這是非常不好的編程習慣。 另外如果變量名稱起不好,會給理解功能帶來非常大的阻力,最好的代碼

是把注釋寫到命名中。

PS: 關于模擬系統(tǒng)的尺度,時間存儲處理和其他跟寄存器相關的約束,覺得沒啥必要,畢竟系統(tǒng)也是比較老的類型了,這個并不是重點

4.Linux部分

開始的時候,沒有好好看課程設計指導書,所有的東西差不多都是百度來的,花了好多時間。

一開始其實我最大的困難不是不會寫程序,而是不知道老師要的是啥,這個就比較尷尬了。

然后,初期還有一個大的門檻是,Linux操作系統(tǒng)下面的各個庫函數(shù)的細節(jié),一堆函數(shù)各種參數(shù),曾經(jīng)一度質疑過人生。

后來發(fā)現(xiàn)了Linux操作系統(tǒng)的命名規(guī)律,rcv[recive] ,snd[send],ctl[control]等等,命名簡約,體現(xiàn)了Unix體系的設計理念。

之后System V 和POSIX之間,后來才知道System V 出現(xiàn)時間比較早,POSIX機制是建立在System V之上的,

使用Posix機制會更易懂和易用一些。

另外還有一個收獲是學了Makefile的使用,初步了解了Build構建,這也是自己比較驕傲的地方

給老師的建議

開放基礎代碼.c ,大家每次都是從底層一點一點造輪子,一方面,有能力這么干的人是少數(shù),大部分同學還是以借鑒學長的代碼為主。另一方面,每年大家寫出來的水平都差不多,把大部分精力都放在底層實現(xiàn)去了,但是操作系統(tǒng)里面講的一些調度算法等等反而沒有用上,這樣就有些舍本逐末了。

發(fā)布基礎代碼到Github上面,學生可以提交改進,這樣就可以進化,關于操作系統(tǒng)的代碼會越來越完善,考核方式,有能力的學生,可以以改善代碼,拓展功能為考核條件。

沒有連貫性,課程設計應該粒度變細,拆分成模塊,樣例代碼可以給一部分,其他的需要學生去填,從頭到尾,新的課程設計需要用到之前的課程設計,這樣到學期末的時候,大家都會有一個自己的操作系統(tǒng)的版本

自選課程設計主題,學生可以不可以自己選題,比如在一個嵌入式的板子上面自己寫一個操作系統(tǒng),或者移植操作系統(tǒng)到板子上面

關于團隊合作,團隊合作模式是一種很好的模式,但不是對每個人都試用,如果單純?yōu)榱藞F隊合作而去團隊合作,最終達到的效果,可能不會很好

關于課堂上課,老師像一個慈母,老師關于操作系統(tǒng)上非常奇妙的部分,視若珍寶,恨不得都交給學生,但是學生接受信息是有限的,尤其是沒有相關實踐的體驗,單純理論的灌輸,沒有共鳴,最終能夠領悟的部分其實會很少,學會了一些細節(jié)的計算題其實這不是最重要的。

老師只講一下框架就可以了,細節(jié)需要學生自己搞懂。

上課形式,針對操作系統(tǒng)這門課的特點,比較適合MOOC的形式,老師提前把課程錄好,大家可以比較方便的學習,而且進度可以異步

省下的課時時間放在課程設計上面。這樣不至于學生跟不上老師進度的情況

推薦老師看一下,清華大學在學堂在線上面的操作系統(tǒng)的課程,課程的結構和模塊的設計[需要注冊一下學堂在線的賬號]

http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+2016_T1/courseware/be5b8d4fec0c4c329d19845020bc67b2/39384cfa48f44ee8a99561f69f4db4a5/

Paste_Image.png

寫在最后,老師我很喜歡你,對自己所從事領域喜愛癡迷歡喜的老師是我一直比較敬仰的,當時選課的時候就是沖著你的嚴格來的,雖然最后自己分數(shù)可能不會很高,但是只要收獲滿滿就很滿足了,

總結

以上是生活随笔為你收集整理的linux操作系统课程设计总结,操作系统课程设计心得+给老师的建议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。