




已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄目錄.1用多線程同步方法解決生產者消費者問題.31.設計題目與要求.31.1設計題目.31.2設計要求.32.設計思想及系統(tǒng)平臺.32.1設計思想.32.2系統(tǒng)平臺及使用語言.33.數據結構與模塊說明.44.源程序清單.75.運行結果與運行情況.126.調試過程.錯誤!未定義書簽。7.總結.16本科生課程設計成績評定表.18操作系統(tǒng)課程設計說明書2課程設計任務書學生姓名:專業(yè)班級:指導教師:工作單位:計算機科學與技術學院題目:用多線程同步方法解決生產者消費者問題(Producer-ConsumerProblem)初始條件:1操作系統(tǒng):Linux2程序設計語言:C語言3有界緩沖區(qū)內設有20個存儲單元,其初值為0。放入取出的數據項按增序設定為120這20個整型數。要求完成的主要任務:(包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)1技術要求:1)為每個生產者消費者產生一個線程,設計正確的同步算法2)每個生產者和消費者對有界緩沖區(qū)進行操作后,即時顯示有界緩沖區(qū)的當前全部內容、當前指針位置和生產者消費者線程的自定義標識符。3)生產者和消費者各有兩個以上。4)多個生產者或多個消費者之間須共享對緩沖區(qū)進行操作的函數代碼。2設計說明書內容要求:1)設計題目與要求2)總的設計思想及系統(tǒng)平臺、語言、工具等。3)數據結構與模塊說明(功能與流程圖)4)給出用戶名、源程序名、目標程序名和源程序及其運行結果。(要注明存儲各個程序及其運行結果的主機IP地址和目錄。)5)運行結果與運行情況(提示:(1)有界緩沖區(qū)可用數組實現。(2)編譯命令可用:cc-lpthread-o目標文件名源文件名(3)多線程編程方法參見附件。)3.調試報告:1)調試記錄2)自我評析和總結上機時間安排:18周一五08:012:00指導教師簽名:年月日系主任(或責任教師)簽名:年月日操作系統(tǒng)課程設計說明書3用多線程同步方法解決生產者消費者問題1.設計題目與要求1.1設計題目解決生產者消費者(Bounded-BufferProblem)問題1.2設計要求1)每個生產者和消費者對有界緩沖區(qū)進行操作后,即時顯示有界緩沖區(qū)的全部內容、當前指針位置和生產者消費者線程的標識符。2)生產者和消費者各有兩個以上。3)多個生產者或多個消費者之間須共享對緩沖區(qū)進行操作的函數代碼。2.設計思想及系統(tǒng)平臺2.1設計思想生產者進程與消費者進程是經典的同步互斥關系。系統(tǒng)創(chuàng)建兩類進程:proceducer()和consumer(),分別用來描述生產者和消費者的行為。生產者與消費者問題是指若干進程通過循環(huán)緩沖池區(qū)交換數據。生產者進程不斷向循環(huán)緩沖池區(qū)中寫入數據(即生產數據),而消費者進程不斷從循環(huán)緩沖池區(qū)中讀出數據(即消費數據)。循環(huán)緩沖池共有N個緩沖區(qū),緩沖區(qū)可以暫存一個產品,任何時刻只能有一個進程可以對循環(huán)緩沖池進行操作。只要緩沖區(qū)未滿,生產者就可以把產品送入緩沖區(qū);只要緩沖區(qū)未空,消費者就可以從緩沖區(qū)中取走物品。為了解決生產者和消費者問題,應該設置信號量和變量如下:full:滿緩沖區(qū)資源信號量,初值為0;empty:空緩沖區(qū)資源信號量,初值為n;in:生產者指針,初值均為0;out:消費者指針,均為0;mutex:緩沖區(qū)操作的互斥信號量,初值為1利用互斥信號量mutex實現諸進程對緩沖池的互斥使用,利用信號量empty和full分別表示緩沖池中空緩沖池和滿緩沖區(qū)的數量。操作系統(tǒng)課程設計說明書42.2系統(tǒng)平臺及使用語言1)操作系統(tǒng):Linux2)程序設計語言:C語言3)編譯器:GCC3.數據結構與模塊說明3.1程序自定義函數1、voidproduce(structsem_info*);這個函數是生產者進行的生產過程,為所有的生產者所共享。結構體指針用來接收生產者線程創(chuàng)建時傳來的生產者的個人信息。2、voidconsumer(structsem_info*);這個函數是消費者進行的生產過程,為所有的消費者所共享。結構體指針用來接收消費者線程創(chuàng)建時傳來的消費者的個人信息。3、voidsetproduce(void);這個函數是用來設置生產者的個數和他們的名字。4、voidsetconsumer(void);這個函數是用來設置消費者的個數和他們的名字。5、voidactivepthread(int);這個函數是用來創(chuàng)建生產者線程,int型參數為生產者的個數。6、voidactivecthread(int);這個函數是用來創(chuàng)建生產者線程,int型參數為生產者的個數。7、intgettime(void);這個函數返回來一個整數,作為線程的sleep()函數的參數。8、voidmyscanf(void);這個函數用來獲取設置生產者和消費者的個數時的整數,確保這個數字在0到MAX_BUFFER之間。3.2系統(tǒng)函數調用線程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年項目管理專業(yè)人士資格認證內容試題及答案
- 2025年燃氣安全生產管理人員模擬考試題及答案
- 植物園綠色建筑設計與節(jié)能環(huán)??己嗽嚲?/a>
- 2024年項目管理考試真題解析試題及答案
- 園藝師多功能果園管理試題及答案
- 2023年中國聯通博爾塔拉蒙古自治州分公司招聘筆試參考題庫附帶答案詳解
- 2023年中國石化高校畢業(yè)生專項招聘筆試參考題庫附帶答案詳解
- 煙草機械設備的遠程監(jiān)控與故障分析考核試卷
- 地鐵檢修庫維修施工方案
- 紙板容器市場前景預測考核試卷
- GB/T 44127-2024行政事業(yè)單位公物倉建設與運行指南
- 工裝裝修合同電子版
- Q195L板坯工藝方案
- 2024年415全民國家安全教育日知識競賽試題及答案 (二)
- 14-10 投資項目敏感性分析的方法
- 脫掛式客運索道報價說明(單線循環(huán)脫掛抱索器車廂式索道)
- 安徽省合肥市2023-2024學年三年級下學期期中綜合調研數學押題卷(蘇教版)
- 老年人抑郁癥的診斷和治療
- 20KV及以下配電網工程建設預算編制與計算規(guī)定
- APQP可行性分析報告
- 冀教版五年級數學下冊教學課件 第四單元 分數乘法第2課時 簡便運算
評論
0/150
提交評論