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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

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

2. DOS 多線程

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

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

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

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

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

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

3.文件系統(tǒng)

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

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

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

同時(shí)關(guān)于各個(gè)結(jié)構(gòu)體部分,包括結(jié)構(gòu)體的屬性,覺得老師的命名規(guī)范不好所以就自己重構(gòu)了,導(dǎo)致,后期寫代碼的時(shí)候,

參考學(xué)長代碼的時(shí)候,遇到很多問題,但是還是覺得自己設(shè)計(jì)的結(jié)構(gòu)體會好一些。尤其是Open File Table中我把原來的一個(gè)整體

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

自己差不多花了半個(gè)月的時(shí)間從早上8:00到晚上23:00,寫代碼調(diào)BUG,重構(gòu)了三次,在結(jié)構(gòu)體設(shè)計(jì)上糾結(jié)了大量的時(shí)間,

很遺憾自己版本沒跑起來,運(yùn)行一直有BUG。

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

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

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

是把注釋寫到命名中。

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

4.Linux部分

開始的時(shí)候,沒有好好看課程設(shè)計(jì)指導(dǎo)書,所有的東西差不多都是百度來的,花了好多時(shí)間。

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

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

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

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

使用Posix機(jī)制會更易懂和易用一些。

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

給老師的建議

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

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

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

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

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

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

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

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

省下的課時(shí)時(shí)間放在課程設(shè)計(jì)上面。這樣不至于學(xué)生跟不上老師進(jìn)度的情況

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

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

Paste_Image.png

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

總結(jié)

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

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