




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、年級 11級 專業(yè) 計算機科學(xué)與技術(shù) 班級 五班 組號 12組 實驗室 9#205 日期 2014/05/17 實驗 名稱 實驗二、進程控制與通信管理 實 驗 內(nèi) 容 分項內(nèi)容 實驗級別 1、Linux系統(tǒng)常用進程管理命令的使用 操作系統(tǒng)觀察級 2、Linux系統(tǒng)常用進程創(chuàng)建與管理的系統(tǒng)調(diào)用 原碼閱讀與系統(tǒng)編程級 3、Windows平臺常用進線程控制 API 原碼閱讀與系統(tǒng)編程級 4、進程冋步與互斥控制(讀者與者、一豕人吃蘋果桔子、 哲學(xué)家吃飯) 碼閱讀與系統(tǒng)編程級 5、簡單進程通信(管道、消息緩沖、郵件槽等) (原碼閱讀與系統(tǒng)編程 級) 小 組 成 員 姓名 學(xué)號 組內(nèi)分工 自我評分 教師評
2、分 獨立完成實驗二(1) 良好 獨立完成實驗二(2) 良好 獨立完成實驗二(3) 良好 獨立完成實驗二(4) 良好 獨立完成實驗二(5) 良好 小 組 成 績 評 疋 教師簽名: 年月日 實驗 分項1 1、Linux系統(tǒng)常用進程管理命令的使用2、Linux系統(tǒng)常用進程創(chuàng)建與管理的系統(tǒng)調(diào) 用 3、Windows平臺常用進線程控制 API 4、進程同步與互斥控制 信 5、簡單進程通 實 一、實驗?zāi)康模?驗 目 的 1、加深對進程概念的理解,明確進程和程序的區(qū)別。 2、進一步認(rèn)識并發(fā)執(zhí)行的實質(zhì)。 3、分析進程爭用資源的現(xiàn)象,學(xué)習(xí)解決進程互斥的方法。 實 驗 具體題目:進程創(chuàng)建、進程控制 要 系統(tǒng)平臺
3、:Linux/Windows操作系統(tǒng) 求 二、實驗原理 1. Linux系統(tǒng)常用進程管理命令 (1) at命令:定時運行命令 讓系統(tǒng)在兩天后的17 : 30執(zhí)行文件data中指定的作業(yè),使用命令: # at f data 15:30 +2 days (2) bg命令后臺運行命令 實 如果要將一個大目錄的文件進行排序后,將結(jié)果輸入到一個文件中, 可以使用命令: 驗 # du -a / | sort -rn /tmp/du.sorted 原 理 (3) Fg掛起程序 步 使用fg命令時,要加入后臺任務(wù)號碼,如果不加任何號碼,則所變動的均是當(dāng)前任 驟 ( 務(wù)。 算 # du -a / | sort
4、-rn /tmp/du.sorted who 2、 進程同步與互斥控制(數(shù)據(jù)同步),原理如下: (1) 、設(shè)置全局變量:int ticket=100;互斥量:HANDLE hMutex; (2) 、創(chuàng)建互斥信號量 ticket : hMutex=CreateMutex(NULL,TRUE,ticket); (3) 、用 WaitForSingleObject(hMutex,INFINITE);捕獲互斥信號量 hMutex (4) 、用ReleaseMutex(hMutex);釋放互斥量的使用權(quán) 3、通過郵件槽實現(xiàn)簡單進程通信,原理如下: (1) 、油槽服務(wù)器: 1) hMailslot=Cre
5、ateMailslot(.mailslotMyMailslot,0, MAILSLOT_WAIT_FOREVER,NULL)/ 創(chuàng)建一個郵路。 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)閉油槽 實驗源代碼如下: 1、進程同步與互斥控制(數(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、郵件槽進程通信: 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); (寫不完時,可另加附頁。) 三、實驗結(jié)果: 1、實驗截圖: 實 驗 結(jié) 果 及 分 析 國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進程控制達到數(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)建的進程來與原進程運行相同的程序代碼,為了 使新進程運行新的程序,用戶可以使用系統(tǒng)調(diào)用exec來裝入一個新的程序到當(dāng)前進 程的地址空間,如果exec調(diào)用成功,系統(tǒng)開始執(zhí)行新程序,永遠(yuǎn)不會返回原來的程 序。 2 )、進程同步與互斥控制,能有效的控制全局變量在某一進程
15、執(zhí)行過程中唯一被訪 問。在多線程程序中容易出現(xiàn)共享資源因時間片到期而終止訪問,這樣就很容易出 現(xiàn)數(shù)據(jù)的錯亂。假如全局變量未火車票;對于線程函數(shù)(Fun Procl、Fun Proc2),在 訪問全局變量ticket時,ticket自減一。如果在線程函數(shù)1 ( Fun Procl )訪問ticket, 還沒有來得及自減一就因時間片到期而被線程函數(shù)2( FunProc2 )搶占訪問,然后 自減一。這樣就造成了資源數(shù)據(jù)不一致,從而產(chǎn)生很危險的后果。 本實驗通過設(shè)置互斥信號量從而達到線程之間對共享資源的同步訪問,以此還可以 實現(xiàn)進程同步中的讀者/寫者問題。 3) 、由于油槽是單向通信機制,所以只能通過創(chuàng)建油槽服務(wù)器進程讀取數(shù)據(jù),打開 油槽客戶端進程寫入數(shù)據(jù)。如果只打開油槽服務(wù)器,創(chuàng)建讀取數(shù)據(jù)進程而沒有打開 客戶端就會導(dǎo)致服務(wù)器進入無限等代狀態(tài),造成程序崩潰。 在創(chuàng)建進程句柄后要記得釋放句柄,不然會產(chǎn)生不良后果。 心 得 體 會 在了解了操作系統(tǒng)中進程間的通信的方式我們使用了郵槽實現(xiàn)了簡單的進程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 室內(nèi)消防箱管理制度
- 家委會經(jīng)費管理制度
- 庫房紅黃線管理制度
- 強化對餐廳管理制度
- 影像科衛(wèi)生管理制度
- 微信工作群管理制度
- 德智體美勞管理制度
- 快餐店前廳管理制度
- 性傳播疾病管理制度
- 患者床頭卡管理制度
- 2025年中國高吸水性樹脂行業(yè)市場發(fā)展現(xiàn)狀研究及投資戰(zhàn)略咨詢報告
- 老年護理技能和知識培訓(xùn)
- 中職電子商務(wù)基礎(chǔ)理論試題及答案
- 駕駛員保密管理制度培訓(xùn)
- 市政工程溝槽開挖與溝槽回填專項施工方案
- 2025年吉林長春市軌道交通集團有限公司招聘筆試參考題庫含答案解析
- 制造業(yè)運營總監(jiān)崗位職責(zé)
- 廣州理工學(xué)院《計算機組成原理理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 項目財政評審服務(wù)采購?fù)稑?biāo)方案(技術(shù)方案)
- 2025年湖北省技能高考(建筑技術(shù)類)《建筑制圖與識圖》模擬練習(xí)試題庫(含答案)
- 2025年中國工商業(yè)光伏行業(yè)上下游產(chǎn)業(yè)鏈全景、發(fā)展環(huán)境及前景研究報告
評論
0/150
提交評論