操作系統(tǒng)實(shí)驗(yàn)報(bào)告心得體會(huì)

字號:


    下面是出國留學(xué)網(wǎng)小編為大家整理的操作系統(tǒng)實(shí)驗(yàn)報(bào)告心得體會(huì),歡迎大家閱讀。更多相關(guān)內(nèi)容請關(guān)注出國留學(xué)網(wǎng)心得體會(huì)欄目。
    操作系統(tǒng)實(shí)驗(yàn)報(bào)告心得體會(huì)
    每一次課程設(shè)計(jì)度讓我學(xué)到了在平時(shí)課堂不可能學(xué)到的東西。所以我對每一次課程設(shè)計(jì)的機(jī)會(huì)都非常珍惜。不一定我的課程設(shè)計(jì)能夠完成得有多么完美,但是我總是很投入的去研究去學(xué)習(xí)。所以在這兩周的課設(shè)中,熬了2個(gè)通宵,生物鐘也嚴(yán)重錯(cuò)亂了。但是每完成一個(gè)任務(wù)我都興奮不已。一開始任務(wù)是任務(wù),到后面任務(wù)就成了自己的作品了??傮w而言我的課設(shè)算是達(dá)到了老師的基本要求??偨Y(jié)一下有以下體會(huì)。
    1、網(wǎng)絡(luò)真的很強(qiáng)大,用在學(xué)習(xí)上將是一個(gè)非常高效的助手。幾乎所有的資料都能夠在網(wǎng)上找到。從linux虛擬機(jī)的安裝,到linux的各種基本命令操作,再到gtk的圖形函數(shù),最后到文件系統(tǒng)的詳細(xì)解析。這些都能在網(wǎng)上找到。也因?yàn)檫@樣,整個(gè)課程設(shè)計(jì)下來,我瀏覽的相關(guān)網(wǎng)頁已經(jīng)超過了100個(gè)(不完全統(tǒng)計(jì))。當(dāng)然網(wǎng)上的東西很亂很雜,自己要能夠?qū)W會(huì)篩選。
    不能決定對或錯(cuò)的,有個(gè)很簡單的方法就是去嘗試。就拿第二個(gè)實(shí)驗(yàn)來說,編譯內(nèi)核有很多項(xiàng)小操作,這些小操作錯(cuò)了一項(xiàng)就可能會(huì)導(dǎo)致編譯的失敗,而這又是非常要花時(shí)間的,我用的虛擬機(jī),編譯一次接近3小時(shí)。所以要非常的謹(jǐn)慎,盡量少出差錯(cuò),節(jié)省時(shí)間。多找個(gè)幾個(gè)參照資料,相互比較,慢慢研究,最后才能事半功倍。
    2、同學(xué)間的討論,這是很重要的。老師畢竟比較忙。對于課程設(shè)計(jì)最大的討論伴侶應(yīng)該是同學(xué)了。能和學(xué)長學(xué)姐討論當(dāng)然再好不過了,沒有這個(gè)機(jī)會(huì)的話,和自己班上同學(xué)討論也是能夠受益匪淺的。大家都在研究同樣的問題,討論起來,更能夠把思路理清楚,相互幫助,可以大大提高效率。liuxue86.com
    3、敢于攻堅(jiān),越是難的問題,越是要有挑戰(zhàn)的心理。這樣就能夠達(dá)到廢寢忘食的境界。當(dāng)然這也是不提倡熬夜的,畢竟有了精力才能夠打持久戰(zhàn)。但是做課設(shè)一定要有狀態(tài),能夠在吃飯,睡覺,上廁所都想著要解決的問題,這樣你不成功都難。
    4、最好在做課設(shè)的過程中能夠有記錄的習(xí)慣,這樣在寫實(shí)驗(yàn)報(bào)告時(shí)能夠比較完整的回憶起中間遇到的各種問題。比如當(dāng)時(shí)我遇到我以前從未遇到的段錯(cuò)誤的問題,讓我都不知道從何下手。在經(jīng)過大量的資料查閱之后,我對段錯(cuò)誤有了一定的了解,并且能夠用相應(yīng)的辦法來解決。
    在編程中以下幾類做法容易導(dǎo)致段錯(cuò)誤,基本是是錯(cuò)誤地使用指針引起的
    1)訪問系統(tǒng)數(shù)據(jù)區(qū),尤其是往系統(tǒng)保護(hù)的內(nèi)存地址寫數(shù)據(jù),最常見就是給一個(gè)指針以0地址
    2)內(nèi)存越界(數(shù)組越界,變量類型不一致等) 訪問到不屬于你的內(nèi)存區(qū)域
    3)其他
    例如:
    <1>定義了指針后記得初始化,在使用的時(shí)候記得判斷是否為null
    <2>在使用數(shù)組的時(shí)候是否被初始化,數(shù)組下標(biāo)是否越界,數(shù)組元素是否存在等
    <3>在變量處理的時(shí)候變量的格式控制是否合理等
    解決方法
    1.利用gdb逐步查找段錯(cuò)誤:
    2.分析core文件
    3.段錯(cuò)誤時(shí)啟動(dòng)調(diào)試:
    4.利用backtrace和objdump進(jìn)行分析:
    總而言之,對待課設(shè)要像對待自己的作品一樣,不要當(dāng)作任務(wù)來完成。
    學(xué)習(xí)操作系統(tǒng)的心得體會(huì)
    轉(zhuǎn)眼間,學(xué)習(xí)了一個(gè)學(xué)期的計(jì)算機(jī)操作系統(tǒng)課程即將結(jié)束。在這個(gè)學(xué)期中,通過老師的悉心教導(dǎo),讓我深切地體會(huì)到了計(jì)算機(jī)操作系統(tǒng)的一些原理和具體操作過程。
    在學(xué)習(xí)操作系統(tǒng)之前,我只是很膚淺地認(rèn)為操作系統(tǒng)只是單純地講一些關(guān)于計(jì)算機(jī)方面的操作應(yīng)用,并不了解其中的具體操作過程和實(shí)用性。通過這一學(xué)期的學(xué)習(xí),我才知道操作系統(tǒng)(Operating System,簡稱OS)是管理計(jì)算機(jī)系統(tǒng)的全部硬件資源包括軟件資源及數(shù)據(jù)資源;控制程序運(yùn)行;改善人機(jī)界面;為其它應(yīng)用軟件提供支持等,使計(jì)算機(jī)系統(tǒng)所有資源最大限度地發(fā)揮作用,為用戶提供方便的、有效的、友善的服務(wù)界面。
    經(jīng)過一個(gè)學(xué)期的學(xué)習(xí),我也知道了計(jì)算機(jī)操作系統(tǒng)是鋪設(shè)在計(jì)算機(jī)硬件上的多層系統(tǒng)軟件,不僅增強(qiáng)了系統(tǒng)的功能,而且還隱藏了對硬件操作的細(xì)節(jié),由它實(shí)現(xiàn)了對計(jì)算機(jī)硬件操作的多層次的抽象。操作系統(tǒng)的一些原理在生活中也有所應(yīng)用,以下是我通過這一學(xué)期的學(xué)習(xí),把操作系統(tǒng)的一些原理聯(lián)系生活所得的心得體會(huì):
    1.生產(chǎn)—消費(fèi)者問題
    在實(shí)際的操作系統(tǒng)操作過程中,經(jīng)常會(huì)碰到如下場景:某個(gè)模塊負(fù)責(zé)產(chǎn)生數(shù)據(jù),這些數(shù)據(jù)由另一個(gè)模塊來負(fù)責(zé)處理(此處的模塊是廣義的,可以是類、函數(shù)、線程、進(jìn)程等)。產(chǎn)生數(shù)據(jù)的模塊,就形象地稱為生產(chǎn)者;而處理數(shù)據(jù)的模塊,就稱為消費(fèi)者。
    單單抽象出生產(chǎn)者和消費(fèi)者,還夠不上是生產(chǎn)者—消費(fèi)者問題。該問題還需要有一個(gè)緩沖區(qū)處于生產(chǎn)者和消費(fèi)者之間,作為一個(gè)中介。生產(chǎn)者把數(shù)據(jù)放入緩沖區(qū),而消費(fèi)者從緩沖區(qū)取出數(shù)據(jù)。
    為了理解這一問題,我們舉一個(gè)寄信的例子。假設(shè)你要寄一封平信,大致過程如下:
    1、你把信寫好——相當(dāng)于生產(chǎn)者制造數(shù)據(jù)
    2、你把信放入郵筒——相當(dāng)于生產(chǎn)者把數(shù)據(jù)放入緩沖區(qū)
    3、郵遞員把信從郵筒取出——相當(dāng)于消費(fèi)者把數(shù)據(jù)取出緩沖區(qū)
    4、郵遞員把信拿去郵局做相應(yīng)的處理——相當(dāng)于消費(fèi)者處理數(shù)據(jù)
    2、銀行家算法——避免死鎖
    死鎖的產(chǎn)生是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過程中,因爭奪資源而造成的一種互相等待的現(xiàn)象,若無外力作用,它們都將無法推進(jìn)下去。此時(shí)稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這些永遠(yuǎn)在互相等待的進(jìn)程稱為死鎖進(jìn)程。由于資源占用是互斥的,當(dāng)某個(gè)進(jìn)程提出申請資源后,使得有關(guān)進(jìn)程在無外力協(xié)助下,永遠(yuǎn)分配不到必需的資源而無法繼續(xù)運(yùn)行,這就產(chǎn)生了一種特殊現(xiàn)象死鎖。我覺得操作系統(tǒng)所講的死鎖就好像兩個(gè)人竟過獨(dú)木橋,兩輛車竟過單行橋等阻塞現(xiàn)象,原因是共享資源,即道路。
    為提高系統(tǒng)資源的利用率,避免死鎖并不嚴(yán)格限制死鎖必要條件的存在,而是在資源的動(dòng)態(tài)分配過程中,使用某種方法去防止系統(tǒng)進(jìn)入不安全狀態(tài),從而避免死鎖的最終出現(xiàn)。然而,最有代表性的避免死鎖的算法,是Dijkstra的銀行家算法。在該方法中把系統(tǒng)的狀態(tài)分為安全狀態(tài)和不安全狀態(tài),只要能使系統(tǒng)始終都處于安全狀態(tài),便可以避免發(fā)生死鎖。銀行家算法的基本思想是分配資源之前,判斷系統(tǒng)是否是安全的;若是安全的,才分配。
    我們可以把操作系統(tǒng)看作是銀行家,操作系統(tǒng)管理的資源相當(dāng)于銀行家管理的資金,進(jìn)程向操作系統(tǒng)請求分配資源相當(dāng)于用戶向銀行家貸款。為保證資金的安全,銀行家規(guī)定:
    (1)當(dāng)一個(gè)顧客對資金的最大需求量不超過銀行家現(xiàn)有的資金時(shí)就可接納該顧客;
    (2)顧客可以分期貸款,但貸款的總數(shù)不能超過最大需求量;
    (3)當(dāng)銀行家現(xiàn)有的資金不能滿足顧客尚需的貸款數(shù)額時(shí),對顧客的貸款可推遲支付,但總能使顧客在有限的時(shí)間里得到貸款;
    (4)當(dāng)顧客得到所需的全部資金后,一定能在有限的時(shí)間里歸還所有的資金。
    另外,我們也可以把操作系統(tǒng)看作是建造房子,操作系統(tǒng)的資源看作是造房子的起吊機(jī)臺數(shù),進(jìn)程向操作系統(tǒng)請求分配資源相當(dāng)于建造房子時(shí)申請的起吊機(jī)臺數(shù)。為保證工程的順利進(jìn)行,其操作過程如下:
    當(dāng)一棟房子對起吊機(jī)的最大需求量不超過建造房子現(xiàn)有的起吊機(jī)時(shí)可接納該房子的建造;
    所要建造的房子可以分開幾次申請起吊機(jī),但申請的起吊機(jī)的總數(shù)不能超過最大需求量;
    當(dāng)現(xiàn)有的起吊機(jī)臺數(shù)不能滿足某棟房子尚需的起吊機(jī)時(shí),對該棟房子所需的起吊機(jī)數(shù)可推遲給予,但總能是房子在有限的時(shí)間里得到貸款;
    當(dāng)建造的房子得到所需的全部起吊機(jī)后,一定能在有限的時(shí)間里歸還所有的起吊機(jī)數(shù)。
    進(jìn)程同步問題
    一個(gè)進(jìn)程到達(dá)了確定的點(diǎn)后,除非另一些進(jìn)程已經(jīng)完成了某些操作,否則不得不停下來等待另一進(jìn)程為它提供的消息,早未獲得消息前,該進(jìn)程處于等待狀態(tài),獲得消息后被喚醒處于就緒狀態(tài),這就是進(jìn)程同步。我們在生活中也可以找到相應(yīng)的例子:
    例如汽車司機(jī)和售票員,汽車司機(jī)負(fù)責(zé)開車、進(jìn)站、開車門、關(guān)車門與進(jìn)站;
    售票員負(fù)責(zé)售票、進(jìn)出站后觀察車門,給司機(jī)發(fā)開關(guān)門信息;正常狀態(tài)下,各自活動(dòng),司機(jī)開車,售票員售票;在進(jìn)出站時(shí)雙方要進(jìn)行進(jìn)程同步。
    小結(jié):
    總而言之,操作系統(tǒng)的一些原理在生活中都可以找到相應(yīng)的例子。結(jié)合生活中的例子,可以化抽象為具體,我們會(huì)更加清楚地了解到其原理與操作過程。我覺得通過我們的不斷學(xué)習(xí),結(jié)合生活中的實(shí)際問題,我們就會(huì)把操作系統(tǒng)學(xué)得更好。
    小編精心推薦
    心得體會(huì)范文 | 心得體會(huì)怎么寫 | 心得體會(huì)格式
    
    小編精心推薦
    心得體會(huì)范文 | 心得體會(huì)怎么寫 | 心得體會(huì)格式