linux下利用互斥實現(xiàn)線程訪問共享資源含源文件2

上傳人:痛*** 文檔編號:45149002 上傳時間:2021-12-06 格式:DOC 頁數(shù):23 大小:1.03MB
收藏 版權(quán)申訴 舉報 下載
linux下利用互斥實現(xiàn)線程訪問共享資源含源文件2_第1頁
第1頁 / 共23頁
linux下利用互斥實現(xiàn)線程訪問共享資源含源文件2_第2頁
第2頁 / 共23頁
linux下利用互斥實現(xiàn)線程訪問共享資源含源文件2_第3頁
第3頁 / 共23頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《linux下利用互斥實現(xiàn)線程訪問共享資源含源文件2》由會員分享,可在線閱讀,更多相關(guān)《linux下利用互斥實現(xiàn)線程訪問共享資源含源文件2(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 “計算機(jī)操作?系統(tǒng)”課程設(shè)計大?作業(yè) 一、實驗題目: linux?下利用互斥?實現(xiàn)線程訪?問共享資源? 二、實驗?zāi)康模赫莆站€程創(chuàng)?建和終止,加深對線程?和進(jìn)程概念?的理解,會用同步與?互斥方法實?現(xiàn)線程之間?的通信。 三、實驗內(nèi)容 事先了解操?作系統(tǒng)中經(jīng)?典的生產(chǎn)者?-消費者問題?,安裝lin?ux虛擬機(jī)?(可以用vi?rtual?box或者?vmwar?e軟件)。在linu?x下創(chuàng)建三?個生產(chǎn)者線?程(P1,P2,P3)和一個消費?者線程(C1),生產(chǎn)者和消?費者線程共?享一個長度?為2KB的?環(huán)型公共緩?沖區(qū),生產(chǎn)者向緩?沖區(qū)寫入消?息,消費者從緩?沖區(qū)中取走?消息顯示

2、到?屏幕。只要緩沖區(qū)?未滿,生產(chǎn)者可將?消息送入緩?沖區(qū);只要緩沖區(qū)?未空,消費者可從?緩沖區(qū)取走?一個消息。 每個消息具?下列結(jié)構(gòu)格?式: 消息長度(1個字節(jié)),消息內(nèi)容(n個字節(jié))。 每個生產(chǎn)者?每隔2秒生?產(chǎn)一個消息?加入緩沖區(qū)?,并把消息產(chǎn)?生時間和內(nèi)?容記錄在一?個文本文件?中。P1每次生?產(chǎn)的數(shù)據(jù)為?26個大寫?字母, P2每次生?產(chǎn)的數(shù)據(jù)為?26個小寫?字母,P3每次生?產(chǎn)的數(shù)據(jù)為?10個阿拉?伯?dāng)?shù)字。 消費者C1?每隔3秒讀?取緩沖區(qū)中?的一個消息?并將消息內(nèi)?容顯示到屏?幕上。 用兩種方法?(不采線程用?互斥和采用?線程互斥技?術(shù))編寫上述功?能的程序,對比兩種程?

3、序運行結(jié)果?有何區(qū)別?不采線程用?互斥時存在?什么問題? 備注:編程中用到?的函數(shù) 創(chuàng)建線程函?數(shù):pthre?ad_cr?eate 互斥鎖初始?化:pthre?ad_mu?tex_i?nit 互斥鎖加鎖?:pthre?ad_mu?tex_l?ock 互斥鎖解鎖?:pthre?ad_mu?tex_u?nlock? 四、實驗要求: 每人完成一?份大作業(yè)實?驗報告。報告分設(shè)計?思想、數(shù)據(jù)定義、處理流程、源程序、運行結(jié)果截?圖、設(shè)計體會等?部分。 1) 給出數(shù)據(jù)定?義和詳細(xì)說?明; 2) 給出實現(xiàn)思?想和設(shè)計流?程; 3) 調(diào)試完成源?程序; 4) 屏幕觀察運?行結(jié)果;

4、 5) 總結(jié)自己的?設(shè)計體會; 編程語言及?操作系統(tǒng)平?臺不限。 五、提交內(nèi)容 本大作業(yè)每?個人必須單?獨完成。最后需提交?的內(nèi)容包括?:源程序(關(guān)鍵代碼需?要注釋說明?)、可運行程序?、算法思路及?流程圖、心得體會。大作業(yè)必須?以WORD?附件的形式?提交。 大作業(yè)嚴(yán)禁?抄襲。發(fā)現(xiàn)抄襲一?律以不及格?論。大作業(yè)內(nèi)容?要完整,一定要有算?法思路、流程圖、心得體會、運行輸出信?息截屏等內(nèi)?容,如果只提交?源代碼則大?作業(yè)成績記?為不合格。 2016-10-20 linux?下利用互斥?實現(xiàn)線程訪?問共

5、享資源? 一、原理的理解? 生產(chǎn)者-消費者問題?是一個經(jīng)典?的線程同步?問題,該問題最早?由Dijk?stra提?出,用以演示他?提出的信號?量機(jī)制。在同一個線?程地址空間?內(nèi)執(zhí)行的兩?個線程。生產(chǎn)者線程?生產(chǎn)物品,然后將物品?放置在一個?空緩沖區(qū)中?供消費者線?程消費。消費者線程?從緩沖區(qū)中?獲得物品,然后釋放緩?沖區(qū)。當(dāng)生產(chǎn)者線?程生產(chǎn)物品?時,如果沒有空?緩沖區(qū)可用?,那么生產(chǎn)者?線程必須等?待消費者線?程釋放出一?個空緩沖區(qū)?。當(dāng)消費者線?程消費物品?時,如果沒有滿?的緩沖區(qū),那么消費者?線程將被阻?塞,直到新的物?品被生產(chǎn)出?來。 多個生產(chǎn)/消費者在有?界緩沖上操?作。它利用N

6、個?字節(jié)的共享?內(nèi)存作為有?界循環(huán)緩沖?區(qū),利用寫一字?符模擬放一?個產(chǎn)品,利用讀一字?符模擬消費?一個產(chǎn)品。當(dāng)緩沖區(qū)空?時消費者應(yīng)?阻塞睡眠,而當(dāng)緩沖區(qū)?滿時生產(chǎn)者?應(yīng)當(dāng)阻塞睡?眠。一旦緩沖區(qū)?中有空單元?,生產(chǎn)者線程?就向空單元?中入寫字符?,并報告寫的?內(nèi)容和位置?。一旦緩沖區(qū)?中有未讀過?的字符,消費者線程?就從該單元?中讀出字符?,并報告讀取?位置。生產(chǎn)者不能?向同一單元?中連續(xù)寫兩?次以上相同?的字符,消費者也不?能從同一單?元中連續(xù)讀?兩次以上相?同的字符。 二、完成步驟 1、思路分析 本作業(yè)是完?善課件上的?線程綜合實?例的練習(xí)生?產(chǎn)者-消費者問題?,重構(gòu)這個程?序的框架

7、,完成性能分?析,使之進(jìn)一步?理解掌握L?inux下?線程的同步?、通信以及互?斥和多線程?的安全問題?。 一般情況下?,解決互斥方?法常用信號?量和互斥鎖?,即sema?phore?和mute?x,而解決這個?問題,多采用一個?類似資源槽?的結(jié)構(gòu),每個槽位標(biāo)?示了指向資?源的指針以?及該槽位的?狀態(tài),生產(chǎn)者和消?費者互斥查?詢資源槽,判斷是否有?產(chǎn)品或者有?空位可以生?產(chǎn),然后根據(jù)指?針進(jìn)行相應(yīng)?的操作。同時,為了告訴生?產(chǎn)者或者消?費者資源槽?的情況,還要有一個?消息傳送機(jī)?制,無論是管道?還是線程通?信。 然而,本次試驗有?幾個特殊的?要求: A、循環(huán)緩沖。 B、除了std?er

8、r,stdou?t等外,只用小于2?個的互斥鎖?、 C、放棄資源槽?分配機(jī)制,采用額外的?數(shù)據(jù)結(jié)構(gòu)。 D、生產(chǎn)者一直?持續(xù)生產(chǎn),形成生產(chǎn)消?費的良性循?環(huán)。 首先,使用一個互?斥鎖,意味著資源?槽機(jī)制就不?能使用了。因為資源槽?雖以用一個?互斥鎖完成?,但是需要有?額外的通信?,如果使用管?道通信,則管道也必?須是互斥,這就不滿足?1個互斥鎖?的要求。其次,要求生產(chǎn)者?一直生產(chǎn),這就否定了?另外一種方?法:消費者、生產(chǎn)者的位?置均平等,消費者消費?的時候生產(chǎn)?者不能生產(chǎn)?,生產(chǎn)者生產(chǎn)?的時候消費?者不能消費?。因此,就需要采用?A要求,也就是循環(huán)?鏈表的形式?。 為了保證互?斥要求,需

9、要定義一?個數(shù)據(jù)結(jié)構(gòu)?,這個數(shù)據(jù)結(jié)?構(gòu)包含兩個?指針,一個讀一個?寫,同時有一個?資源數(shù)目量?,告訴生產(chǎn)者?和消費者是?否可以生產(chǎn)?或者消費。由于該數(shù)據(jù)?結(jié)構(gòu)很小,因而可以對?此結(jié)構(gòu)互斥?訪問。同時,對于每組數(shù)?據(jù),都有一個標(biāo)?志位,表示此組數(shù)?據(jù)是否被占?用,生產(chǎn)者和消?費者均可以?先占用此位?置然后完成?相應(yīng)的操作?。 當(dāng)消費者互?斥訪問此結(jié)?構(gòu)時,首先判斷是?否有數(shù)據(jù)可?以取,如果沒有,直接等待,若有數(shù)據(jù)可?取,先更改標(biāo)志?位占用此數(shù)?據(jù),并將資源數(shù)?目-1。然后交出互?斥,把數(shù)據(jù)拷貝?到自己緩沖?區(qū)內(nèi),清空數(shù)據(jù)。當(dāng)生產(chǎn)者訪?問時,首先判斷有?沒有空位可?以生產(chǎn),如果沒有,直接等待,若

10、有數(shù)據(jù)可?以生產(chǎn),先判斷該位?是否被占用?,如果沒被占?用,則占用此位?置進(jìn)行生產(chǎn)?。生產(chǎn)完成后?,將占用位改?為未占用,同時將資源?數(shù)目+1。這個過程可?以如圖所示?: 2、重要函數(shù)和?數(shù)據(jù)結(jié)構(gòu) (1)數(shù)據(jù)結(jié)構(gòu) #defin?e N 5 // 生產(chǎn)者的數(shù)?目 #defin?e N2 15 // 消費者數(shù)目? #defin?e M 20 // 緩沖數(shù)目 #defin?e debug? 0 //調(diào)試模式 #defin?e nowai?t 1 //是否添加額?外等待 pthre?ad_mu?tex_t? mutex?; // 互斥信號量? int pr

11、od_?id = 0; //生產(chǎn)者id? int proc_?id = 0; //消費者id? //成功以及失?敗次數(shù)計數(shù)? int Succ[N+N2]; int Fail[N+N2]; //用于生產(chǎn)的?填充數(shù)據(jù) char dt[30]="aaaaa?aaaaa?bbbbb?bbbbb?ccccc?ccccc?"; int toexi?t=0;//退出標(biāo)記 //共用數(shù)據(jù)區(qū)? struc?t data_?struc? { int Occup?ied; //該位置是否?被占用 無論生產(chǎn)還?是消費 char d[1024]; //數(shù)據(jù) struc?t d

12、ata_?struc?* nx; //下一個指針? }; //互斥量 struc?t mtx { struc?t data_?struc?* rd_p; struc?t data_?struc?* wr_p; int cnt; //產(chǎn)品數(shù)量 }; struc?t mtx *mymut?ex; (2)函數(shù)說明 void print?info();//調(diào)試函數(shù),打印公用數(shù)?據(jù)區(qū)的內(nèi)容?和狀態(tài) void Creat?e_Emp?ty_DS?();//初始化循環(huán)?鏈表 void *buy();//消費者 void *sell();//生產(chǎn)者 void *Recou?

13、nt();//數(shù)據(jù)統(tǒng)計,同時控制程?序自動退出? 3、程序流程圖? A、主函數(shù) B、統(tǒng)計線程 C、生產(chǎn)者線程? D、消費者線程? 三、實驗數(shù)據(jù) 1、程序運行截?圖 虛擬機(jī):VMwar?e Works?tatio?n7.0,win7;硬件:i3,2G DDR13?33;編譯:gcc produ?ct.c –pg –lpthr?ead;報告生成:gprof? –b。 運行時截圖?: CPU占用?情況(無額外等待?): 2、原始數(shù)據(jù) 由于程序要?求使用gp?rof進(jìn)行?分析,而在機(jī)器配?置較好的情?況下,使用gpr?of可能分?析不出每個?

14、函數(shù)執(zhí)行時?間,甚至連函數(shù)?都分析不全?,因而在實際?代碼中添加?了一些空循?環(huán)來增加c?pu占用。 為了更便于?觀察,首先假設(shè)如?下場景:消費者、生產(chǎn)者在執(zhí)?行各自動作?前,均usle?ep(1),同時,消費者在成?功消費之后?,也會usl?eep(3)來為其他消?費者讓位。同時,也將測試沒?有任何等待?的數(shù)據(jù)。程序內(nèi)有一?計時線程,每個一秒會?顯示一次生?產(chǎn)消費情況?,當(dāng)60秒后?程序自動退?出,從而保存數(shù)?據(jù)已被分析?。 生產(chǎn)者數(shù)量? 1 消費者數(shù)量? 1 緩沖長度 20 額外等待 有 CPU占用? <0.3% 函數(shù)分析情?況 無法分析到?消費者、生產(chǎn)者線程?

15、 程序運行情?況 生產(chǎn)者: #1 成功次數(shù):12243? 失敗次數(shù):12213? 消費者: #1 成功次數(shù):12223? 失敗次數(shù):0 生產(chǎn)者數(shù)量? 1 消費者數(shù)量? 1 緩沖長度 20 額外等待 無 CPU占用? >97% 函數(shù)分析情?況 % cumul?ative? self self total? time secon?ds secon?ds calls? Ts/call Ts/call name 54.59 2.08 2.08

16、 buy 45.41 3.81 1.73 sell 0.00 3.81 0.00 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?larit?y: each sampl?e hit cover?s 4 byte(s) for 0.26% of 3.81 secon?ds index? % time self child?ren ca

17、lle?d name [1] 54.6 2.08 0.00 buy [1] ----------------------------------------------- [2] 45.4 1.73 0.00 sell

18、 [2] ----------------------------------------------- 0.00 0.00 1/1 main [8] [3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] ----------------------------------------------- Index? by funct?ion name [3] Creat?e_Emp?ty_DS? [1] buy

19、 [2] sell 程序運行情?況 生產(chǎn)者: #1 成功次數(shù):21260? 失敗次數(shù):11461?17485? 消費者: #1 成功次數(shù):21240? 失敗次數(shù):11511?77763? 生產(chǎn)者數(shù)量? 1 消費者數(shù)量? 5 緩沖長度 20 額外等待 有 CPU占用? <0.3% 函數(shù)分析情?況 無法分析到?消費者、生產(chǎn)者線程? 程序運行情?況 生產(chǎn)者: #1 成功次數(shù):24829? 失敗次數(shù):0 消費者: #1 成功次數(shù):4900 失敗次數(shù):15102? 消費者: #2 成功次數(shù):5261 失敗

20、次數(shù):14386? ….. 消費者: #5 成功次數(shù):5069 失敗次數(shù):14752? 生產(chǎn)者數(shù)量? 1 消費者數(shù)量? 5 緩沖長度 20 額外等待 無 CPU占用? >97% 函數(shù)分析情?況 % cumul?ative? self self total? time secon?ds secon?ds calls? Ts/call Ts/call name 85.29 2.90 2.90

21、 buy 14.71 3.40 0.50 sell 0.00 3.40 0.00 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?larit?y: each sampl?e hit cover?s 4 byte(s) for 0.29% of 3.40 secon?ds index? % time self child?ren calle?d name

22、 [1] 85.3 2.90 0.00 buy [1] ----------------------------------------------- [2] 14.7 0.50 0.00 sell [2] --------------------

23、--------------------------- 0.00 0.00 1/1 main [8] [3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] ----------------------------------------------- Index? by funct?ion name [3] Creat?e_Emp?ty_DS? [1] buy [2] se

24、ll 程序運行情?況 生產(chǎn)者: #1 成功次數(shù):10800? 失敗次數(shù):36294?4304 消費者: #1 成功次數(shù):1980 失敗次數(shù):36898?8095 … 消費者: #5 成功次數(shù):2560 失敗次數(shù):39180?1113 生產(chǎn)者數(shù)量? 3 消費者數(shù)量? 10 緩沖長度 20 額外等待 有 CPU占用? 約4% 函數(shù)分析情?況 % cumul?ative? self self total? time secon?ds secon?ds calls?

25、 Ts/call Ts/call name 94.08 1.59 1.59 sell 5.92 1.69 0.10 buy 0.00 1.69 0.00 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?larit?y: each sampl?e hit cover?s 4 byte(s) for 0.59% of

26、 1.69 secon?ds index? % time self child?ren calle?d name [1] 94.1 1.59 0.00 sell [1] -----------------------------------------------

27、u?s> [2] 5.9 0.10 0.00 buy [2] ----------------------------------------------- 0.00 0.00 1/1 main [8] [3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] ----------------------------------------------- Index? by func

28、t?ion name [3] Creat?e_Emp?ty_DS? [2] buy [1] sell 程序運行情?況 生產(chǎn)者: #1 成功次數(shù):16167?7 失敗次數(shù):0 生產(chǎn)者: #2 成功次數(shù):16141?2 失敗次數(shù):0 生產(chǎn)者: #3 成功次數(shù):16153?5 失敗次數(shù):0 消費者: #1 成功次數(shù):44264? 失敗次數(shù):75030? 消費者: #2 成功次數(shù):47878? 失敗次數(shù):67808? 消費者: #3 成功次數(shù):47805? 失敗次數(shù):67967? …… 消費者:

29、#10 成功次數(shù):45942? 失敗次數(shù):71664? 生產(chǎn)者數(shù)量? 3 消費者數(shù)量? 10 緩沖長度 20 額外等待 無 CPU占用? >97% 函數(shù)分析情?況 % cumul?ative? self self total? time secon?ds secon?ds calls? Ts/call Ts/call name 77.28 2.96 2.96 buy 22.72

30、 3.83 0.87 sell 0.00 3.83 0.00 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?larit?y: each sampl?e hit cover?s 4 byte(s) for 0.26% of 3.83 secon?ds index? % time self child?ren calle?d name

31、 [1] 77.3 2.96 0.00 buy [1] ----------------------------------------------- [2] 22.7 0.87 0.00 sell [2] -------------------------------------

32、---------- 0.00 0.00 1/1 main [8] [3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] ----------------------------------------------- Index? by funct?ion name [3] Creat?e_Emp?ty_DS? [1] buy [2] sell 程序運行情?況 生產(chǎn)者:

33、 #1 成功次數(shù):4640 失敗次數(shù):17418?4091 生產(chǎn)者: #2 成功次數(shù):4000 失敗次數(shù):17972?4333 生產(chǎn)者: #3 成功次數(shù):4120 失敗次數(shù):17001?8676 消費者: #1 成功次數(shù):1280 失敗次數(shù):18220?5853 消費者: #2 成功次數(shù):1340 失敗次數(shù):17304?4281 ….. 消費者: #9 成功次數(shù):1020 失敗次數(shù):16687?7134 消費者: #10 成功次數(shù):1380 失敗次數(shù):16480?3475 生產(chǎn)者數(shù)量? 5 消費者數(shù)量? 20 緩沖長度 40 額外等待

34、 有 CPU占用? 約9% 函數(shù)分析情?況 % cumul?ative? self self total? time secon?ds secon?ds calls? Ts/call Ts/call name 96.37 4.25 4.25 sell 3.63 4.41 0.16 buy 0.00 4.41

35、 0.00 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?larit?y: each sampl?e hit cover?s 4 byte(s) for 0.23% of 4.41 secon?ds index? % time self child?ren calle?d name [1] 96.4 4.25 0.00

36、 sell [1] ----------------------------------------------- [2] 3.6 0.16 0.00 buy [2] ----------------------------------------------- 0.00 0.00 1/1 main [8]

37、[3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] ----------------------------------------------- Index? by funct?ion name [3] Creat?e_Emp?ty_DS? [2] buy [1] sell 程序運行情?況 生產(chǎn)者: #1 成功次數(shù):13968?9 失敗次數(shù):0 生產(chǎn)者: #2 成功次數(shù):13923?5 失敗次數(shù):0 …. 生產(chǎn)者: #5

38、成功次數(shù):13780?1 失敗次數(shù):0 消費者: #1 成功次數(shù):25922? 失敗次數(shù):96488? 消費者: #2 成功次數(shù):39009? 失敗次數(shù):70402? 消費者: #3 成功次數(shù):39645? 失敗次數(shù):69154? ….. 消費者: #20 成功次數(shù):33775? 失敗次數(shù):80811? 生產(chǎn)者數(shù)量? 5 消費者數(shù)量? 20 緩沖長度 40 額外等待 無 CPU占用? >97% 函數(shù)分析情?況 % cumul?ative? self self total?

39、 time secon?ds secon?ds calls? Ts/call Ts/call name 80.29 2.81 2.81 buy 19.71 3.50 0.69 sell 0.00 3.50 0.00 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?larit?y: each sa

40、mpl?e hit cover?s 4 byte(s) for 0.29% of 3.50 secon?ds index? % time self child?ren calle?d name [1] 80.3 2.81 0.00 buy [1] -----------------------------------------------

41、 [2] 19.7 0.69 0.00 sell [2] ----------------------------------------------- 0.00 0.00 1/1 main [8] [3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] -----------------------

42、------------------------ Index? by funct?ion name [3] Creat?e_Emp?ty_DS? [1] buy [2] sell 程序運行情?況 生產(chǎn)者: #1 成功次數(shù):4120 失敗次數(shù):81703?999 …. 生產(chǎn)者: #5 成功次數(shù):4200 失敗次數(shù):91874?644 消費者: #1 成功次數(shù):1080 失敗次數(shù):83483?253 消費者: #2 成功次數(shù):1240 失敗次數(shù):85970?149 消費者: #3 成功次數(shù):1360

43、 失敗次數(shù):10626?5813 消費者: #4 成功次數(shù):960 失敗次數(shù):82522?392 消費者: #5 成功次數(shù):1360 失敗次數(shù):93462?020 消費者: #6 成功次數(shù):1160 失敗次數(shù):91337?608 消費者: #7 成功次數(shù):1520 失敗次數(shù):10295?4859 消費者: #8 成功次數(shù):1080 失敗次數(shù):91363?902 消費者: #9 成功次數(shù):760 失敗次數(shù):10531?9175 消費者: #10 成功次數(shù):1320 失敗次數(shù):10214?4117 消費者: #11 成功次數(shù):720 失敗次數(shù):909

44、33?552 消費者: #12 成功次數(shù):1120 失敗次數(shù):90537?228 消費者: #13 成功次數(shù):920 失敗次數(shù):90670?465 消費者: #14 成功次數(shù):840 失敗次數(shù):10915?3419 消費者: #15 成功次數(shù):1320 失敗次數(shù):91949?204 消費者: #16 成功次數(shù):960 失敗次數(shù):80094?023 消費者: #17 成功次數(shù):1120 失敗次數(shù):81866?777 消費者: #18 成功次數(shù):1000 失敗次數(shù):87802?980 消費者: #19 成功次數(shù):800 失敗次數(shù):79470?741

45、 消費者: #20 成功次數(shù):960 失敗次數(shù):93098?801 生產(chǎn)者數(shù)量? 30 消費者數(shù)量? 100 緩沖長度 200 額外等待 有 CPU占用? 26% 函數(shù)分析情?況 % cumul?ative? self self total? time secon?ds secon?ds calls? Ts/call Ts/call name 79.17 10.49 10.49 sell

46、 20.83 13.25 2.76 buy 0.00 13.25 0.00 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?larit?y: each sampl?e hit cover?s 4 byte(s) for 0.08% of 13.25 secon?ds index? % time self child?ren calle?d name

47、 [1] 79.2 10.49 0.00 sell [1] ----------------------------------------------- [2] 20.8 2.76 0.00 buy [2] ----------------------------

48、------------------- 0.00 0.00 1/1 main [8] [3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] ----------------------------------------------- Index? by funct?ion name [3] Creat?e_Emp?ty_DS? [2] buy [1] sell 程序運行

49、情?況 生產(chǎn)者: #1 成功次數(shù):24555? 失敗次數(shù):0 生產(chǎn)者: #2 成功次數(shù):24423? 失敗次數(shù):0 生產(chǎn)者: #3 成功次數(shù):24529? 失敗次數(shù):0 生產(chǎn)者: #4 成功次數(shù):24428? 失敗次數(shù):0 ….. 生產(chǎn)者: #8 成功次數(shù):24552? 失敗次數(shù):0 生產(chǎn)者: #9 成功次數(shù):24467? 失敗次數(shù):0 生產(chǎn)者: #10 成功次數(shù):24612? 失敗次數(shù):0 ……………………………. 生產(chǎn)者: #29 成功次數(shù):24439? 失敗次數(shù):0 生產(chǎn)者: #30 成功次數(shù):24723? 失敗次數(shù):0 消費者

50、: #1 成功次數(shù):7351 失敗次數(shù):16473? 消費者: #2 成功次數(shù):6408 失敗次數(shù):18192? 消費者: #3 成功次數(shù):6725 失敗次數(shù):17620? ……. 消費者: #8 成功次數(shù):7830 失敗次數(shù):15630? 消費者: #9 成功次數(shù):7264 失敗次數(shù):16677? ……… 消費者: #97 成功次數(shù):6628 失敗次數(shù):17780? 消費者: #98 成功次數(shù):7200 失敗次數(shù):16692? 消費者: #99 成功次數(shù):6921 失敗次數(shù):17335? 消費者: #100 成功次數(shù):7433 失敗次數(shù)

51、:16319? 生產(chǎn)者數(shù)量? 30 消費者數(shù)量? 100 緩沖長度 200 額外等待 無 CPU占用? >97% 函數(shù)分析情?況 % cumul?ative? self self total? time secon?ds secon?ds calls? Ts/call Ts/call name 78.77 2.82 2.82 buy 21.23 3.58 0.76

52、 sell 0.00 3.58 0.00 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?larit?y: each sampl?e hit cover?s 4 byte(s) for 0.28% of 3.58 secon?ds index? % time self child?ren calle?d name

53、 [1] 78.8 2.82 0.00 buy [1] ----------------------------------------------- [2] 21.2 0.76 0.00 sell [2] -----------------------------------------------

54、 0.00 0.00 1/1 main [8] [3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] ----------------------------------------------- Index? by funct?ion name [3] Creat?e_Emp?ty_DS? [1] buy [2] sell 程序運行情?況 生產(chǎn)者: #1 成功次數(shù):3600 失敗次

55、數(shù):10645?017 生產(chǎn)者: #2 成功次數(shù):4000 失敗次數(shù):16728?291 生產(chǎn)者: #3 成功次數(shù):3200 失敗次數(shù):17111?918 生產(chǎn)者: #4 成功次數(shù):3400 失敗次數(shù):10212?130 …… 生產(chǎn)者: #17 成功次數(shù):1400 失敗次數(shù):15370?944 生產(chǎn)者: #18 成功次數(shù):2200 失敗次數(shù):21377?626 生產(chǎn)者: #19 成功次數(shù):2600 失敗次數(shù):11692?857 生產(chǎn)者: #20 成功次數(shù):3800 失敗次數(shù):16007?285 生產(chǎn)者: #21 成功次數(shù):2200 失敗次數(shù):1

56、4244?794 生產(chǎn)者: #22 成功次數(shù):3600 失敗次數(shù):22401?337 ….. 生產(chǎn)者: #29 成功次數(shù):4000 失敗次數(shù):18425?015 生產(chǎn)者: #30 成功次數(shù):4800 失敗次數(shù):25033?822 消費者: #1 成功次數(shù):1800 失敗次數(shù):12785?639 消費者: #2 成功次數(shù):2800 失敗次數(shù):16116?393 消費者: #3 成功次數(shù):2400 失敗次數(shù):10309?678 消費者: #4 成功次數(shù):800 失敗次數(shù):24464?415 消費者: #52 成功次數(shù):0 失敗次數(shù):13483?90

57、7 消費者: #53 成功次數(shù):0 失敗次數(shù):20152?736 消費者: #54 成功次數(shù):0 失敗次數(shù):14236?228 消費者: #55 成功次數(shù):800 失敗次數(shù):21535?076 消費者: #56 成功次數(shù):400 失敗次數(shù):18554?678 消費者: #57 成功次數(shù):200 失敗次數(shù):20539?844 消費者: #58 成功次數(shù):800 失敗次數(shù):12377?087 ……. 消費者: #94 成功次數(shù):1600 失敗次數(shù):14401?603 消費者: #95 成功次數(shù):2000 失敗次數(shù):24301?257 消費者: #

58、96 成功次數(shù):1800 失敗次數(shù):15476?220 消費者: #97 成功次數(shù):2600 失敗次數(shù):17645?168 消費者: #98 成功次數(shù):1000 失敗次數(shù):15002?154 消費者: #99 成功次數(shù):200 失敗次數(shù):14299?381 消費者: #100 成功次數(shù):1600 失敗次數(shù):21723?729 生產(chǎn)者數(shù)量? 50 消費者數(shù)量? 200 緩沖長度 500 額外等待 有 CPU占用? >97% 函數(shù)分析情?況 % cumul?ative? self self t

59、otal? time secon?ds secon?ds calls? Ts/call Ts/call name 98.61 50.26 50.26 sell 1.39 50.97 0.71 buy 0.00 50.97 0.00 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?

60、larit?y: each sampl?e hit cover?s 4 byte(s) for 0.02% of 50.97 secon?ds index? % time self child?ren calle?d name [1] 98.6 50.26 0.00 sell [1] -----------------------------------------------

61、 [2] 1.4 0.71 0.00 buy [2] ----------------------------------------------- 0.00 0.00 1/1 main [8] [3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] ------

62、----------------------------------------- Index? by funct?ion name [3] Creat?e_Emp?ty_DS? [2] buy [1] sell 程序運行情?況 生產(chǎn)者: #1 成功次數(shù):14839? 失敗次數(shù):0 生產(chǎn)者: #2 成功次數(shù):14688? 失敗次數(shù):0 生產(chǎn)者: #3 成功次數(shù):14838? 失敗次數(shù):0 生產(chǎn)者: #4 成功次數(shù):14738? 失敗次數(shù):0 ……….. ….. 生產(chǎn)者: #49 成功次數(shù):1

63、4908? 失敗次數(shù):0 生產(chǎn)者: #50 成功次數(shù):14949? 失敗次數(shù):0 消費者: #1 成功次數(shù):3602 失敗次數(shù):20037? 消費者: #2 成功次數(shù):3777 失敗次數(shù):19650? 消費者: #3 成功次數(shù):3655 失敗次數(shù):19907? 消費者: #4 成功次數(shù):3909 失敗次數(shù):19429? 消費者: #5 成功次數(shù):3744 失敗次數(shù):19693? ……… 消費者: #200 成功次數(shù):3590 失敗次數(shù):19568? 生產(chǎn)者數(shù)量? 50 消費者數(shù)量? 50 緩沖長度 200 額外等待 無 CPU

64、占用? >97% 函數(shù)分析情?況 % cumul?ative? self self total? time secon?ds secon?ds calls? Ts/call Ts/call name 51.80 1.87 1.87 buy 48.20 3.61 1.74 sell 0.00 3.61 0.00

65、 1 0.00 0.00 Creat?e_Emp?ty_DS? Call graph? granu?larit?y: each sampl?e hit cover?s 4 byte(s) for 0.28% of 3.61 secon?ds index? % time self child?ren calle?d name [1] 51.8 1.87 0.00

66、 buy [1] ----------------------------------------------- [2] 48.2 1.74 0.00 sell [2] ----------------------------------------------- 0.00 0.00 1/1 main [8] [3] 0.0 0.00 0.00 1 Creat?e_Emp?ty_DS? [3] ----------------------------------------------- Index? by funct?ion name [3] Creat?e_Emp?ty_DS? [1] buy [2

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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