信號量的實現(xiàn)和應用_第1頁
已閱讀1頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、信號量的實現(xiàn)和應用難度系數(shù):★★★★☆實驗目的?加深對進程同步與互斥概念的認識;?掌握信號量的使用,并應用它解決生產者——消費者問題;?掌握信號量的實現(xiàn)原理。實驗內容本次實驗的基本內容是:1.在Ubuntu下編寫程序,用信號量解決生產者——消費者問題;2.在0.11中實現(xiàn)信號量,用生產者—消費者程序檢驗之。用信號量解決生產者—消費者問題在Ubuntu上編寫應用程序“pc.c”,解決經典的生產者—消費者問題,完成下面的功能:1.建立一個生

2、產者進程,N個消費者進程(N1);2.用文件建立一個共享緩沖區(qū);3.生產者進程依次向緩沖區(qū)寫入整數(shù)012...M,M=500;4.消費者進程從緩沖區(qū)讀數(shù),每次讀一個,并將讀出的數(shù)字從緩沖區(qū)刪除,然后將本進程ID和數(shù)字輸出到標準輸出;5.緩沖區(qū)同時最多只能保存10個數(shù)。一種可能的輸出效果是:10:010:110:210:310:411:511:612:7?name是信號量的名字。不同的進程可以通過提供同樣的name而共享同一個信號量。如果

3、該信號量不存在,就創(chuàng)建新的名為name的信號量;如果存在,就打開已經存在的名為name的信號量。?value是信號量的初值,僅當新建信號量時,此參數(shù)才有效,其余情況下它被忽略。?當成功時,返回值是該信號量的唯一標識(比如,在內核的地址、ID等),由另兩個系統(tǒng)調用使用。如失敗,返回值是NULL。sem_wait()就是信號量的P原子操作。如果繼續(xù)運行的條件不滿足,則令調用進程等待在信號量sem上。返回0表示成功,返回1表示失敗。sem_p

4、ost()就是信號量的V原子操作。如果有等待sem的進程,它會喚醒其中的一個。返回0表示成功,返回1表示失敗。sem_unlink()的功能是刪除名為name的信號量。返回0表示成功,返回1表示失敗。在kernel目錄下新建“sem.c”文件實現(xiàn)如上功能。然后將pc.c從Ubuntu移植到0.11下,測試自己實現(xiàn)的信號量。實驗報告完成實驗后,在實驗報告中回答如下問題:1.在pc.c中去掉所有與信號量有關的代碼,再運行程序,執(zhí)行效果有變化

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論