操作系統實驗心得

每一次課程設計度讓我學到了在平時課堂不可能學到的東西。所以我對每一次課程設計的機會都非常珍惜。不一定我的課程設計能夠完成得有多麼完美,但是我總是很投入的去研究去學習。所以在這兩週的課設中,熬了2個通宵,生物鐘也嚴重錯亂了。但是每完成一個任務我都興奮不已。一開始任務是任務,到後面任務就成了自己的作品了。總體而言我的課設算是達到了老師的基本要求。總結一下有以下體會。

操作系統實驗心得

1、網絡真的很強大,用在學習上將是一個非常高效的助手。幾乎所有的資料都能夠在網上找到。從linux虛擬機的安裝,到linux的各種基本命令操作,再到gtk的圖形函數,最後到文件系統的詳細解析。這些都能在網上找到。也因為這樣,整個課程設計下來,我瀏覽的相關網頁已經超過了100個(不完全統計)。當然網上的東西很亂很雜,自己要能夠學會篩選。不能決定對或錯的,有個很簡單的方法就是去嘗試。就拿第二個實驗來説,編譯內核有很多項小操作,這些小操作錯了一項就可能會導致編譯的失敗,而這又是非常要花時間的,我用的虛擬機,編譯一次接近3小時。所以要非常的謹慎,儘量少出差錯,節省時間。多找個幾個參照資料,相互比較,慢慢研究,最後才能事半功倍。

2、同學間的討論,這是很重要的。老師畢竟比較忙。對於課程設計最大的討論伴侶應該是同學了。能和學長學姐討論當然再好不過了,沒有這個機會的話,和自己班上同學討論也是能夠受益匪淺的。大家都在研究同樣的問題,討論起來,更能夠把思路理清楚,相互幫助,可以大大提高效率。

3、敢於攻堅,越是難的問題,越是要有挑戰的心理。這樣就能夠達到廢寢忘食的境界。當然這也是不提倡熬夜的,畢竟有了精力才能夠打持久戰。但是做課設一定要有狀態,能夠在吃飯,睡覺,上廁所都想着要解決的問題,這樣你不成功都難。

4、最好在做課設的過程中能夠有記錄的習慣,這樣在寫實驗報告時能夠比較完整的回憶起中間遇到的各種問題。比如當時我遇到我以前從未遇到的段錯誤的問題,讓我都不知道從何下手。在經過大量的資料查閲之後,我對段錯誤有了一定的瞭解,並且能夠用相應的辦法來解決。

在編程中以下幾類做法容易導致段錯誤,基本是是錯誤地使用指針引起的

1)訪問系統數據區,尤其是往系統保護的內存地址寫數據,最常見就是給一個指針以0地址

2)內存越界(數組越界,變量類型不一致等) 訪問到不屬於你的內存區域

3)其他

例如:

<1>定義了指針後記得初始化,在使用的時候記得判斷是否為null

<2>在使用數組的時候是否被初始化,數組下標是否越界,數組元素是否存在等

<3>在變量處理的時候變量的格式控制是否合理等

解決方法

1.利用gdb逐步查找段錯誤:

2.分析core文件

3.段錯誤時啟動調試:

4.利用backtrace和objdump進行分析:

總而言之,對待課設要像對待自己的作品一樣,不要當作任務來完成。