操作系統(tǒng)實驗心得
每一次課程設(shè)計度讓我學(xué)到了在平時課堂不可能學(xué)到的東西。所以我對每一次課程設(shè)計的機(jī)會都非常珍惜 。不一定我的課程設(shè)計能夠完成得有多么完美,但是我總是很投入的去研究去學(xué)習(xí)。所以在這兩周的課設(shè)中,熬了2個通宵,生物鐘也嚴(yán)重錯亂了 。但是每完成一個任務(wù)我都興奮不已。一開始任務(wù)是任務(wù),到后面任務(wù)就成了自己的作品了 ?傮w而言我的課設(shè)算是達(dá)到了老師的基本要求?偨Y(jié)一下有以下體會。
1、網(wǎng)絡(luò)真的很強(qiáng)大,用在學(xué)習(xí)上將是一個非常高效的助手。幾乎所有的資料都能夠在網(wǎng)上找到。從linux虛擬機(jī)的安裝,到linux的各種基本命令操作,再到gtk的圖形函數(shù),最后到文件系統(tǒng)的詳細(xì)解析 。這些都能在網(wǎng)上找到。也因為這樣,整個課程設(shè)計下來,我瀏覽的相關(guān)網(wǎng)頁已經(jīng)超過了100個(不完全統(tǒng)計)。當(dāng)然網(wǎng)上的東西很亂很雜,自己要能夠?qū)W會篩選 。不能決定對或錯的,有個很簡單的方法就是去嘗試。就拿第二個實驗來說,編譯內(nèi)核有很多項小操作,這些小操作錯了一項就可能會導(dǎo)致編譯的失敗,而這又是非常要花時間的,我用的虛擬機(jī),編譯一次接近3小時。所以要非常的謹(jǐn)慎,盡量少出差錯,節(jié)省時間。多找個幾個參照資料,相互比較,慢慢研究,最后才能事半功倍。
2、同學(xué)間的討論,這是很重要的。老師畢竟比較忙。對于課程設(shè)計最大的討論伴侶應(yīng)該是同學(xué)了。能和學(xué)長學(xué)姐討論當(dāng)然再好不過了,沒有這個機(jī)會的話,和自己班上同學(xué)討論也是能夠受益匪淺的。大家都在研究同樣的問題,討論起來,更能夠把思路理清楚,相互幫助,可以大大提高效率。
3、敢于攻堅,越是難的問題,越是要有挑戰(zhàn)的心理。這樣就能夠達(dá)到廢寢忘食的境界 。當(dāng)然這也是不提倡熬夜的,畢竟有了精力才能夠打持久戰(zhàn)。但是做課設(shè)一定要有狀態(tài),能夠在吃飯,睡覺,上廁所都想著要解決的問題,這樣你不成功都難。
4、最好在做課設(shè)的過程中能夠有記錄的習(xí)慣,這樣在寫實驗報告時能夠比較完整的回憶起中間遇到的各種問題。比如當(dāng)時我遇到我以前從未遇到的段錯誤的問題,讓我都不知道從何下手 。在經(jīng)過大量的資料查閱之后,我對段錯誤有了一定的了解,并且能夠用相應(yīng)的辦法來解決 。
在編程中以下幾類做法容易導(dǎo)致段錯誤,基本是是錯誤地使用指針引起的
1)訪問系統(tǒng)數(shù)據(jù)區(qū),尤其是往系統(tǒng)保護(hù)的內(nèi)存地址寫數(shù)據(jù),最常見就是給一個指針以0地址
2)內(nèi)存越界(數(shù)組越界,變量類型不一致等) 訪問到不屬于你的內(nèi)存區(qū)域
3)其他
例如:
<1>定義了指針后記得初始化,在使用的時候記得判斷是否為null
<2>在使用數(shù)組的時候是否被初始化,數(shù)組下標(biāo)是否越界,數(shù)組元素是否存在等
<3>在變量處理的時候變量的格式控制是否合理等
解決方法
1.利用gdb逐步查找段錯誤:
2.分析core文件
3.段錯誤時啟動調(diào)試:
4.利用backtrace和objdump進(jìn)行分析:
總而言之,對待課設(shè)要像對待自己的作品一樣,不要當(dāng)作任務(wù)來完成。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 yyfangchan@163.com (舉報時請帶上具體的網(wǎng)址) 舉報,一經(jīng)查實,本站將立刻刪除