歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

西安郵電大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告.doc

  • 資源ID:7972205       資源大?。?span id="su5yzfa" class="font-tahoma">46.52KB        全文頁(yè)數(shù):4頁(yè)
  • 資源格式: DOC        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

西安郵電大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告.doc

西 安 郵 電 大 學(xué) (計(jì)算機(jī)學(xué)院)課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱: 專業(yè)名稱: 軟件工程班 級(jí): 1101班 學(xué)生姓名: 學(xué)號(hào)(8位): 04113027指導(dǎo)教師: 舒新峰實(shí)驗(yàn)日期: 2013年12月5日一. 實(shí)驗(yàn)?zāi)康募皩?shí)驗(yàn)環(huán)境(一) 實(shí)驗(yàn)環(huán)境Linux 操作系統(tǒng)(2) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)1 掌握Linux基本命令 和開發(fā)環(huán)境1. 掌握常用的Linux shell命令;2. 掌握編輯環(huán)境VIM;3. 掌握編譯環(huán)境gcc及跟蹤調(diào)試工具gdb。實(shí)驗(yàn)2 進(jìn)程通過(guò)觀察、分析實(shí)驗(yàn)現(xiàn)象,深入理解進(jìn)程及進(jìn)程在調(diào)度執(zhí)行和內(nèi)存空間等方面的特點(diǎn),掌握在POSIX 規(guī)范中fork和kill系統(tǒng)調(diào)用的功能和使用。實(shí)驗(yàn)3 線程 通過(guò)觀察、分析實(shí)驗(yàn)現(xiàn)象,深入理解線程及線程在調(diào)度執(zhí)行和內(nèi)存空間等方面的特點(diǎn),并掌握線程與進(jìn)程的區(qū)別。掌握POSIX 規(guī)范中pthread_create() 函數(shù)的功能和使用方法。 實(shí)驗(yàn)4 互斥通過(guò)觀察、分析實(shí)驗(yàn)現(xiàn)象,深入理解理解互斥鎖的原理及特點(diǎn)掌握在POSIX 規(guī)范中的互斥函數(shù)的功能及使用方法。2. 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)21. 你最初認(rèn)為運(yùn)行結(jié)果會(huì)怎么樣?答:會(huì)持續(xù)輸出0-9號(hào)進(jìn)程,直到輸入數(shù)字鍵+回車,則會(huì)殺死該進(jìn)程,接下來(lái)的輸出將不會(huì)有該進(jìn)程號(hào),當(dāng)輸入q+回車,則退出程序。2. 實(shí)際的結(jié)果什么樣?有什么特點(diǎn)?試對(duì)產(chǎn)生該現(xiàn)象的原因進(jìn)行分析。答:實(shí)際的結(jié)果與預(yù)期差不多。因輸入進(jìn)程總數(shù)20大于設(shè)定的最大進(jìn)程數(shù),因此按進(jìn)程數(shù)10來(lái)處理。隨機(jī)輸出0-9號(hào)進(jìn)程,sleep(SLEEP_INTERVAL),循環(huán)輸出,輸入數(shù)字鍵,則會(huì)殺死該數(shù)字對(duì)應(yīng)的進(jìn)程,直到輸入q退出循環(huán),然后殺死本組所有進(jìn)程。分析:每創(chuàng)建一個(gè)子進(jìn)程時(shí),將其pid存儲(chǔ)在pidi中,i存儲(chǔ)在proc_number,然后調(diào)用死循環(huán)函數(shù)do_something(),輸出該進(jìn)程的代號(hào)proc_number;當(dāng)輸入數(shù)字鍵時(shí),主進(jìn)程會(huì)執(zhí)行kill(pidch-0,SIGTERM),從而殺死(ch-0)號(hào)進(jìn)程。當(dāng)輸入q時(shí)循環(huán)退出,kill(0,SIGTERM),殺死本組所有進(jìn)程。程序退出。3. proc_number這個(gè)全局變量在各個(gè)子進(jìn)程里的值相同嗎?為什么?答:proc_number這個(gè)全局變量在各個(gè)子進(jìn)程里的值相同,因?yàn)樽舆M(jìn)程相互獨(dú)立,資源互不影響。4. kill命令在程序中使用了幾次?每次的作用是什么?執(zhí)行后的現(xiàn)象是什么?答:kill命令在程序中使用了2次:kill(pidch-0,SIGTERM)和kill(0,SIGTERM);第一次是殺死該進(jìn)程號(hào)pidch-0,執(zhí)行后接下來(lái)的結(jié)果中不會(huì)有該進(jìn)程號(hào),用另一個(gè)終端打開,使用命令ps aux | grep process,因?yàn)樽舆M(jìn)程先于父進(jìn)程退出,則被殺死的進(jìn)程為僵死狀態(tài),但我加了行代碼wait(&pidch-0),就會(huì)使該子進(jìn)程真正結(jié)束。第二次是殺死本組所有進(jìn)程。即主進(jìn)程以及它創(chuàng)建的所有子進(jìn)程。執(zhí)行后程序退出,進(jìn)程結(jié)束。5. 使用kill命令可以在進(jìn)程的外部殺死進(jìn)程。進(jìn)程怎樣能主動(dòng)退出?這兩種退出方法哪種更好一些。答:進(jìn)程在main函數(shù)中return,或調(diào)用exit()函數(shù)都可以正常退出。而使用kill命令則是異常退出。當(dāng)然是正常退出比較好,若在子進(jìn)程退出前使用kill命令殺死其父進(jìn)程,則系統(tǒng)會(huì)讓init進(jìn)程接管子進(jìn)程。當(dāng)用kill命令使得子進(jìn)程先于父進(jìn)程退出時(shí),而父進(jìn)程又沒(méi)有調(diào)用wait函數(shù)等待子進(jìn)程結(jié)束,子進(jìn)程處于僵死狀態(tài),并且會(huì)一直保持下去,直到系統(tǒng)重啟。子進(jìn)程處于僵死狀態(tài)時(shí),內(nèi)核只保存該進(jìn)程的必要信息以被父進(jìn)程所需,此時(shí)子進(jìn)程始終占著資源,同時(shí)減少了系統(tǒng)可以創(chuàng)建的最大進(jìn)程數(shù)。實(shí)驗(yàn)31. 你最初認(rèn)為前三列數(shù)會(huì)相等嗎?最后一列斜杠兩邊的數(shù)字是相等,還是大于或者小于關(guān)系?答:我認(rèn)為前三列數(shù)不會(huì)相等,因?yàn)槿齻€(gè)線程運(yùn)行次數(shù)是隨機(jī)的,結(jié)果不可預(yù)料,當(dāng)然counteri值不會(huì)一定相等。而我認(rèn)為main_counter與sum值應(yīng)該是相等的。因?yàn)槎际侨齻€(gè)線程的counter之和。2. 最后的結(jié)果如你所料嗎?有什么特點(diǎn)?試對(duì)原因進(jìn)行分析。答:實(shí)驗(yàn)結(jié)果是前三列數(shù)確實(shí)不相等。不過(guò)main_counter與sum的值也不相等,main_counter < sum。經(jīng)分析討論得出解釋:因?yàn)槿齻€(gè)線程在共同爭(zhēng)取運(yùn)行thread_worker()函數(shù),比如main_counter初值為0,pthread_id0執(zhí)行之后main_counter+1,此時(shí)還未來(lái)得及將值賦給main_counter,這時(shí)的main_counter還是0;pthread_id1也執(zhí)行這個(gè)函數(shù),main_counter+1,若此時(shí)在1號(hào)線程將main_counter+1的值還未賦給main_counter,即這時(shí)的main_counter還是0,pthread_id2也來(lái)執(zhí)行這個(gè)函數(shù),main_counter+1,此時(shí)三個(gè)線程才將加完之后的值賦給main_counter,則main_counter=0+1=1,而真正執(zhí)行次數(shù)sum=0+1+1+1=3。main_counter < sum。3. thread的cpu占有率是多少?為什么會(huì)這樣?答:thread的CPU占用率在我的機(jī)子上執(zhí)行結(jié)果是147,因?yàn)槿齻€(gè)線程是無(wú)限循環(huán)的運(yùn)行,使得cpu占用率很高。4. thread_worker()內(nèi)飾死循環(huán),它是怎么退出的?你認(rèn)為這樣退出好嗎?答: thread_worker()函數(shù)內(nèi)是死循環(huán),退出時(shí)因?yàn)橹骱瘮?shù)中設(shè)置的輸入q時(shí)循環(huán)退出。輸入q時(shí)主進(jìn)程執(zhí)行退出,return 退出程序,則子線程也強(qiáng)制退出。這樣退出不好。實(shí)驗(yàn)41. 你預(yù)想deadlock.c的運(yùn)行結(jié)果會(huì)如何?答:程序運(yùn)行會(huì)出現(xiàn)中止現(xiàn)象,可能會(huì)資源互斥。2. 實(shí)際運(yùn)行結(jié)果如何?多次運(yùn)行每次的現(xiàn)象都一樣嗎?為什么會(huì)這樣?答:實(shí)際運(yùn)行時(shí)程序會(huì)在運(yùn)行期間中止,出現(xiàn)死鎖現(xiàn)象。多次運(yùn)行之后現(xiàn)象都一樣。原因是:主線程申請(qǐng)mutex1資源,而子線程申請(qǐng)mutex2資源,此時(shí)主線程繼續(xù)申請(qǐng)mutex2資源,子線程來(lái)申請(qǐng)mutex1資源,而mutex2資源還未被子線程釋放,主線程無(wú)法申請(qǐng)到,同樣的,mutex1資源未被主線程釋放則子線程也無(wú)法申請(qǐng)到,此時(shí)便處于無(wú)限循環(huán)等待,形成死鎖。3 方案設(shè)計(jì)實(shí)驗(yàn)2 進(jìn)程學(xué)習(xí)man命令的用法,通過(guò)它查看fork和kill系統(tǒng)調(diào)用的在線幫助,并閱讀參考資料,學(xué)習(xí)fork與kill的用法。補(bǔ)全程序代碼,調(diào)試運(yùn)行,觀察并分析實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)3 線程閱讀參考資料,了解線程的創(chuàng)建等相關(guān)系統(tǒng)調(diào)用。補(bǔ)全程序代碼,調(diào)試運(yùn)行,觀察并分析實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)4 互斥準(zhǔn)備好上節(jié)實(shí)驗(yàn)3完成的程序。閱讀參考資料,了解互斥鎖的加鎖機(jī)制及相關(guān)的系統(tǒng)調(diào)用。找到實(shí)驗(yàn)3程序的代碼臨界區(qū),用臨界區(qū)解決main_counter 與sum 不同步的問(wèn)題。4 測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果五總結(jié)在本次實(shí)驗(yàn)中,我不僅學(xué)會(huì)了創(chuàng)建進(jìn)程命令fork和殺死進(jìn)程命令kill,還了解了函數(shù)int pthread_create(pthread_t *thread,pthread_attr_t *attr,void *(*start_routine)(void *),void *arg)的使用方法,并且大致掌握了PTHREAD_MUTEX_NORMAL,PTHREAD_MUTEX_ERRORCHECK,PTHREAD_MUTEX_RECURSIVE和PTHREAD_MUTEXT_DEFAULT等線程互斥鎖的類型。重新理解了互斥與同步的概念以及死鎖及其相關(guān)內(nèi)容。是的我對(duì)操作系統(tǒng)這門課程有了更加深刻的認(rèn)識(shí)。六附錄:源代碼(電子版)

注意事項(xiàng)

本文(西安郵電大學(xué)操作系統(tǒng)實(shí)驗(yàn)報(bào)告.doc)為本站會(huì)員(jian****018)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!