




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、年級(jí) 11級(jí) 專業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí) 五班 組號(hào) 12組 實(shí)驗(yàn)室 9#205 日期 2014/05/17 實(shí)驗(yàn) 名稱 實(shí)驗(yàn)二、進(jìn)程控制與通信管理 實(shí) 驗(yàn) 內(nèi) 容 分項(xiàng)內(nèi)容 實(shí)驗(yàn)級(jí)別 1、Linux系統(tǒng)常用進(jìn)程管理命令的使用 操作系統(tǒng)觀察級(jí) 2、Linux系統(tǒng)常用進(jìn)程創(chuàng)建與管理的系統(tǒng)調(diào)用 原碼閱讀與系統(tǒng)編程級(jí) 3、Windows平臺(tái)常用進(jìn)線程控制 API 原碼閱讀與系統(tǒng)編程級(jí) 4、進(jìn)程冋步與互斥控制(讀者與者、一豕人吃蘋果桔子、 哲學(xué)家吃飯) 碼閱讀與系統(tǒng)編程級(jí) 5、簡(jiǎn)單進(jìn)程通信(管道、消息緩沖、郵件槽等) (原碼閱讀與系統(tǒng)編程 級(jí)) 小 組 成 員 姓名 學(xué)號(hào) 組內(nèi)分工 自我評(píng)分 教師評(píng)
2、分 獨(dú)立完成實(shí)驗(yàn)二(1) 良好 獨(dú)立完成實(shí)驗(yàn)二(2) 良好 獨(dú)立完成實(shí)驗(yàn)二(3) 良好 獨(dú)立完成實(shí)驗(yàn)二(4) 良好 獨(dú)立完成實(shí)驗(yàn)二(5) 良好 小 組 成 績(jī) 評(píng) 疋 教師簽名: 年月日 實(shí)驗(yàn) 分項(xiàng)1 1、Linux系統(tǒng)常用進(jìn)程管理命令的使用2、Linux系統(tǒng)常用進(jìn)程創(chuàng)建與管理的系統(tǒng)調(diào) 用 3、Windows平臺(tái)常用進(jìn)線程控制 API 4、進(jìn)程同步與互斥控制 信 5、簡(jiǎn)單進(jìn)程通 實(shí) 一、實(shí)驗(yàn)?zāi)康模?驗(yàn) 目 的 1、加深對(duì)進(jìn)程概念的理解,明確進(jìn)程和程序的區(qū)別。 2、進(jìn)一步認(rèn)識(shí)并發(fā)執(zhí)行的實(shí)質(zhì)。 3、分析進(jìn)程爭(zhēng)用資源的現(xiàn)象,學(xué)習(xí)解決進(jìn)程互斥的方法。 實(shí) 驗(yàn) 具體題目:進(jìn)程創(chuàng)建、進(jìn)程控制 要 系統(tǒng)平臺(tái)
3、:Linux/Windows操作系統(tǒng) 求 二、實(shí)驗(yàn)原理 1. Linux系統(tǒng)常用進(jìn)程管理命令 (1) at命令:定時(shí)運(yùn)行命令 讓系統(tǒng)在兩天后的17 : 30執(zhí)行文件data中指定的作業(yè),使用命令: # at f data 15:30 +2 days (2) bg命令后臺(tái)運(yùn)行命令 實(shí) 如果要將一個(gè)大目錄的文件進(jìn)行排序后,將結(jié)果輸入到一個(gè)文件中, 可以使用命令: 驗(yàn) # du -a / | sort -rn /tmp/du.sorted 原 理 (3) Fg掛起程序 步 使用fg命令時(shí),要加入后臺(tái)任務(wù)號(hào)碼,如果不加任何號(hào)碼,則所變動(dòng)的均是當(dāng)前任 驟 ( 務(wù)。 算 # du -a / | sort
4、-rn /tmp/du.sorted who 2、 進(jìn)程同步與互斥控制(數(shù)據(jù)同步),原理如下: (1) 、設(shè)置全局變量:int ticket=100;互斥量:HANDLE hMutex; (2) 、創(chuàng)建互斥信號(hào)量 ticket : hMutex=CreateMutex(NULL,TRUE,ticket); (3) 、用 WaitForSingleObject(hMutex,INFINITE);捕獲互斥信號(hào)量 hMutex (4) 、用ReleaseMutex(hMutex);釋放互斥量的使用權(quán) 3、通過郵件槽實(shí)現(xiàn)簡(jiǎn)單進(jìn)程通信,原理如下: (1) 、油槽服務(wù)器: 1) hMailslot=Cre
5、ateMailslot(.mailslotMyMailslot,0, MAILSLOT_WAIT_FOREVER,NULL)/ 創(chuàng)建一個(gè)郵路。 2) ReadFile(hMailslot,buf,100,讀取郵路數(shù)據(jù) 3) CloseHandle(hMailslot);/ 關(guān)閉油槽 (2) 、油槽客戶端: 1) hMailslot=CreateFile(.mailslotMyMailslot,GENERIC_WRITE, FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); /創(chuàng)建油槽文件 2) WriteFile(hM
6、ailslot,buf,strle n(buf)+1, / 寫入數(shù)據(jù) 3) CloseHandle(hMailslot);/ 關(guān)閉油槽 實(shí)驗(yàn)源代碼如下: 1、進(jìn)程同步與互斥控制(數(shù)據(jù)同步) #include stdafx.h #in clude #i ncludeiostream using n amespace std; int in dex =0; int ticket=100; HANDLE hMutex; DWORD WINAPI Fu n1Proc(LPVOID lpParameter) while(TRUE) WaitForSi ngleObject(hMutex,INFINITE
7、); if(ticketO) coutthread1 sell ticket :ticket-0) coutthread2 sell ticket :ticket-e ndl; else break; ReleaseMutex(hMutex); return 0; int _tmain(int argc, _TCHAR* argv) HANDLE hTread1; HANDLE hTread2; hTread 仁CreateThread(NULL,O,Fu n1Proc,NULL,0,NULL); hTread2=CreateThread(NULL,0,Fu n2Proc,NULL,0,NUL
8、L); CloseHa ndle(hTreadl); CloseHa ndle(hTread2); hMutex=CreateMutex(NULL,TRUE,ticket); if(hMutex) if(ERROR_ALREADY_EXISTS=GetLastError() cout Only one in sta nee can run !e ndl; return 0; ReleaseMutex(hMutex); ReleaseMutex(hMutex); Sleep(IOOOO); return 0; 2、郵件槽進(jìn)程通信: 1)油槽服務(wù)器:(關(guān)鍵代碼段) void C 油槽客戶端 Dlg
9、:OnSend() / TODO:在此添加控件通知處理程序代碼 HANDLE hMailslot; hMailslot=CreateFile(.mailslotMyMailslot,GENERIC_WRITE,FILE_SHARE_RE AD,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if(INVALID_HANDLE_VALUE=hMailslot) MessageBox(打開油槽失敗!”); return; CStri ng str; char buf100; m_edit.GetWi ndowText(str); strcpy_s(b
10、uf,str); DWORD dwWrite; if(!WriteFile(hMailslot,buf,strle n(buf)+1, return; CloseHa ndle(hMailslot); 2) 油槽客戶端:(關(guān)鍵代碼段) void C 油槽客戶端 Dlg:OnSend() / TODO:在此添加控件通知處理程序代碼 HANDLE hMailslot; hMailslot=CreateFile(.mailslotMyMailslot,GENERIC_WRITE,FILE_SHARE_RE AD,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NUL
11、L); if(INVALID_HANDLE_VALUE=hMailslot) MessageBox(打開油槽失?。 ?; return; CStri ng str; char buf1OO; m_edit.GetWi ndowText(str); strcpy_s(buf,str); DWORD dwWrite; if(!WriteFile(hMailslot,buf,strle n(buf)+1, return; CloseHa ndle(hMailslot); (寫不完時(shí),可另加附頁(yè)。) 三、實(shí)驗(yàn)結(jié)果: 1、實(shí)驗(yàn)截圖: 實(shí) 驗(yàn) 結(jié) 果 及 分 析 國(guó)3 匚:冷 d o wvste m 3
12、2c m d thradlticket: :1EIEI thread2 sell ticket : :99 thradlticket : :98 threadticket : 97 threadl sell ticket : 96 thread2 $911 ticket : :95 threadl sell ticket : :91 thread sell ticket : 93 thrdl sell ticket : :32 thrad2 well ticket : 31 threadl well ticket . :9G thread2 ell ticket ; threadl sell
13、ticket ; :88 thread sell ticket : ;87 threadl ell ticket . ;G thread2 sell ticket ; 85 threadl xll ticket ; thrad2 oell ticket ; :83 threadl dell ticket ; ;82 thrad2 cell ticket : :S1 threadl 命ell ticket : throad2 cell ticket : :79 threadl *1】ticket ; :78 thread2 soil ticket : ;77 threadl gll ticket
14、 ; tTG 2-1進(jìn)程控制達(dá)到數(shù)據(jù)同步處理截圖 2-2油槽通信控制面板截圖 2-3油槽-服務(wù)器截圖 2-4油槽-客戶端截圖 2-5發(fā)送-接受效果截圖 2、結(jié)果分析: 1 )、Is命令列出了指定目錄下的文件名和目錄名,參數(shù)-I要求顯示文件或目錄的詳 細(xì)信息,例如類型、訪問權(quán)限、連接數(shù)、擁有者等。 在Linux中,用戶通過利用fork創(chuàng)建的進(jìn)程來與原進(jìn)程運(yùn)行相同的程序代碼,為了 使新進(jìn)程運(yùn)行新的程序,用戶可以使用系統(tǒng)調(diào)用exec來裝入一個(gè)新的程序到當(dāng)前進(jìn) 程的地址空間,如果exec調(diào)用成功,系統(tǒng)開始執(zhí)行新程序,永遠(yuǎn)不會(huì)返回原來的程 序。 2 )、進(jìn)程同步與互斥控制,能有效的控制全局變量在某一進(jìn)程
15、執(zhí)行過程中唯一被訪 問。在多線程程序中容易出現(xiàn)共享資源因時(shí)間片到期而終止訪問,這樣就很容易出 現(xiàn)數(shù)據(jù)的錯(cuò)亂。假如全局變量未火車票;對(duì)于線程函數(shù)(Fun Procl、Fun Proc2),在 訪問全局變量ticket時(shí),ticket自減一。如果在線程函數(shù)1 ( Fun Procl )訪問ticket, 還沒有來得及自減一就因時(shí)間片到期而被線程函數(shù)2( FunProc2 )搶占訪問,然后 自減一。這樣就造成了資源數(shù)據(jù)不一致,從而產(chǎn)生很危險(xiǎn)的后果。 本實(shí)驗(yàn)通過設(shè)置互斥信號(hào)量從而達(dá)到線程之間對(duì)共享資源的同步訪問,以此還可以 實(shí)現(xiàn)進(jìn)程同步中的讀者/寫者問題。 3) 、由于油槽是單向通信機(jī)制,所以只能通過創(chuàng)建油槽服務(wù)器進(jìn)程讀取數(shù)據(jù),打開 油槽客戶端進(jìn)程寫入數(shù)據(jù)。如果只打開油槽服務(wù)器,創(chuàng)建讀取數(shù)據(jù)進(jìn)程而沒有打開 客戶端就會(huì)導(dǎo)致服務(wù)器進(jìn)入無限等代狀態(tài),造成程序崩潰。 在創(chuàng)建進(jìn)程句柄后要記得釋放句柄,不然會(huì)產(chǎn)生不良后果。 心 得 體 會(huì) 在了解了操作系統(tǒng)中進(jìn)程間的通信的方式我們使用了郵槽實(shí)現(xiàn)了簡(jiǎn)單的進(jìn)程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新能源項(xiàng)目施工團(tuán)隊(duì)派遣服務(wù)協(xié)議
- 二零二五年度員工期權(quán)激勵(lì)計(jì)劃執(zhí)行與員工福利協(xié)議
- 二零二五年度特色商業(yè)街區(qū)商鋪轉(zhuǎn)讓合同
- 2025年度鋼構(gòu)建筑鋼結(jié)構(gòu)加工與施工合同
- 2025年度電子商務(wù)平臺(tái)合作協(xié)議簽約變更終止全流程手冊(cè)
- 二零二五年度醫(yī)療糾紛調(diào)解與醫(yī)療機(jī)構(gòu)糾紛調(diào)解機(jī)制建設(shè)協(xié)議
- 2025年度電商旺季客服團(tuán)隊(duì)增援服務(wù)協(xié)議
- 2025年度金融科技合作入股協(xié)議書
- 二零二五年度城市綜合體工程款房屋抵償協(xié)議
- 二零二五年度電影學(xué)院電影包場(chǎng)教學(xué)合同
- 2025年湖南環(huán)境生物職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案一套
- 14 文言文二則 學(xué)弈 教學(xué)設(shè)計(jì)-2024-2025學(xué)年語(yǔ)文六年級(jí)下冊(cè)統(tǒng)編版
- Unit 4 Eat Well(大單元教學(xué)設(shè)計(jì))2024-2025學(xué)年七年級(jí)英語(yǔ)下冊(cè)同步備課系列(人教版2024)
- 2024-2030年中國(guó)游戲直播行業(yè)市場(chǎng)深度分析及投資策略研究報(bào)告
- 第一課+追求向上向善的道德【中職專用】中職思想政治《職業(yè)道德與法治》高效課堂(高教版2023·基礎(chǔ)模塊)
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗(yàn)人員理論考試題庫(kù)及答案
- 教師的五重境界公開課教案教學(xué)設(shè)計(jì)課件案例試卷
- ??怂箍等鴺?biāo)測(cè)量?jī)x的使用課件
- 高血壓臨床路徑
- 鋁的陽(yáng)極氧化和著色
- (新版)傳染病防治監(jiān)督試題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論