版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)報(bào)告課程名稱:操作系統(tǒng)實(shí)驗(yàn)名稱:生產(chǎn)者與消費(fèi)者的進(jìn)程同步問題學(xué) 號(hào):學(xué)生姓名:班 級(jí):指導(dǎo)老師:實(shí)驗(yàn)日期:2014年11月4日1、實(shí)驗(yàn)?zāi)康? 熟悉臨界資源、信號(hào)最及PV操作的定義與物理意義(2)了解進(jìn)程通信的方法 堂握進(jìn)程互斥與進(jìn)程同步的相關(guān)知識(shí) 學(xué):握用信號(hào)最機(jī)制解決進(jìn)程之間的同步與互斥問題 實(shí)現(xiàn)生產(chǎn)考一消費(fèi)考問題,深刻理解進(jìn)程同步問題2、實(shí)驗(yàn)要求:本實(shí)驗(yàn)的主要目的是模擬操作系統(tǒng)中進(jìn)程同步和互斥。在系統(tǒng)進(jìn)程并發(fā)執(zhí)行異 步推進(jìn)的過程中,由于資源共亨和進(jìn)程間合作而造成進(jìn)程間相互制約。進(jìn)程間的相 互制約有兩種不冋的方式。(1)間接制約。這是由于多個(gè)進(jìn)程共亨同一資源(如CPU、共亨輸入/輸出設(shè)
2、備)而引起的,即共亨資源的多個(gè)進(jìn)程因系統(tǒng)協(xié)調(diào)使用資源而相互制約。(2)直接制約。只是由于進(jìn)程合作中各個(gè)進(jìn)程為完成同一任務(wù)而造成的,即并 發(fā)進(jìn)程各門的執(zhí)行結(jié)果互為對(duì)方的執(zhí)行條件,從而限制各個(gè)進(jìn)程的執(zhí)行速度。3、實(shí)驗(yàn)環(huán)境:VC6+4、丈驗(yàn)內(nèi)容:生產(chǎn)者和消費(fèi)者是經(jīng)典的進(jìn)程同步問題,在這個(gè)問題中,生產(chǎn)者不斷的向緩沖 區(qū)中寫入數(shù)據(jù),而消費(fèi)者則從緩沖區(qū)中讀取數(shù)據(jù)。生產(chǎn)者進(jìn)程和消費(fèi)者對(duì)緩沖區(qū)的 操作是互斥,即當(dāng)前只能有一個(gè)進(jìn)程對(duì)這個(gè)緩沖區(qū)進(jìn)行操作,生產(chǎn)者進(jìn)入操作緩沖 區(qū)Z前,先要看緩沖區(qū)是否已滿,如果緩沖區(qū)已滿,則它必須等待消費(fèi)者進(jìn)程將數(shù) 據(jù)取出才能寫入數(shù)據(jù),同樣的,消費(fèi)者進(jìn)程從緩沖區(qū)讀取數(shù)據(jù)之前,也要判斷
3、緩沖 區(qū)是否為空,如果為空,則必須等待生產(chǎn)者進(jìn)程寫入數(shù)據(jù)才能讀取數(shù)據(jù)。1)實(shí)驗(yàn)原理在本實(shí)驗(yàn)中,進(jìn)程之間要進(jìn)行通信來操作同一緩沖區(qū)。一般來說,進(jìn)程間的通 信根據(jù)通信內(nèi)容可以劃分為兩種:即控制信息的傳送與大批最數(shù)據(jù)傳送。有時(shí),也 把進(jìn)程間控制在本實(shí)驗(yàn)中,進(jìn)程Z間要進(jìn)行通信來操作同一緩沖區(qū)。一般來說,進(jìn) 程間的通信根據(jù)通信內(nèi)容可以劃分為兩種:閱控制信息的傳送與大批量數(shù)據(jù)傳送。 有時(shí),也把進(jìn)程間控制信息的交換稱為低級(jí)通信,而把進(jìn)程間大批量數(shù)據(jù)的交換稱 為高級(jí)通信。目前,計(jì)算機(jī)系統(tǒng)中用得比較普遍的高級(jí)通信機(jī)制可分為3大類:共亨存儲(chǔ)器 系統(tǒng)、消息傳遞系統(tǒng)及管道通信系統(tǒng)。共享存儲(chǔ)器系統(tǒng)共亨存儲(chǔ)器系統(tǒng)為了傳送
4、大量數(shù)據(jù),在存儲(chǔ)器中劃出一塊共亨存儲(chǔ)區(qū),諸進(jìn)程 可通過對(duì)共亨存儲(chǔ)區(qū)進(jìn)行讀數(shù)據(jù)或?qū)憯?shù)據(jù)以實(shí)現(xiàn)通信。進(jìn)程在通信之前,向系統(tǒng)申 請(qǐng)共享存儲(chǔ)區(qū)中的一個(gè)分區(qū),并為它指定一個(gè)分區(qū)關(guān)鍵字。信息的交換稱為低級(jí)通 信,而把進(jìn)程間大批量數(shù)據(jù)的交換稱為高級(jí)通信。目前,計(jì)算機(jī)系統(tǒng)中用得比較普遍的高級(jí)通信機(jī)制可分為3大類:共亨存儲(chǔ)器 系統(tǒng)、消息傳遞系統(tǒng)及管道通信系統(tǒng)。消息傳遞系統(tǒng)在消息傳遞系統(tǒng)中,進(jìn)程間的數(shù)據(jù)交換以消息為單位,在計(jì)算機(jī)網(wǎng)絡(luò)中被稱為 報(bào)文。消息傳遞系統(tǒng)的實(shí)現(xiàn)方式乂可以分為以下兩種:(1) 直接通信方式發(fā)送進(jìn)程可將消息直接發(fā)送給接收進(jìn)程,即將消息掛在接收進(jìn)程的消息緩沖隊(duì) 列上,而接收進(jìn)程可從自己的消息緩沖隊(duì)
5、列中取得消息。(2) 間接通信方式發(fā)送進(jìn)程將消息發(fā)送到指定的信箱中,而接收進(jìn)程從信箱中取得消息。這種通 信方式乂稱信箱通信方式,被廣泛地應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)中。相應(yīng)地,該消息傳遞系 統(tǒng)被稱為電子郵件系統(tǒng)。管道通信系統(tǒng)向管道提供輸入的發(fā)送進(jìn)程,以字符流方式將大量的數(shù)據(jù)送入管道,而接收進(jìn) 程從管道中接收數(shù)據(jù)。由丁發(fā)送進(jìn)程和接收進(jìn)程是利用管道進(jìn)行通信的,故稱為管 道通信。為了協(xié)調(diào)發(fā)送和接收雙方的通信,管道逍信機(jī)制必須提供以下3方面的協(xié)調(diào)功 能。(1) 互斥當(dāng)一個(gè)進(jìn)程正在對(duì)文件進(jìn)行讀或?qū)懖僮鲿r(shí),另一個(gè)進(jìn)程必須等待。(2) 同步當(dāng)寫進(jìn)程把一定數(shù)最的數(shù)據(jù)寫入文件后,便阻塞等待,直到讀進(jìn)程取走數(shù)據(jù)后, 再把寫進(jìn)
6、程喚醒。(3) 確認(rèn)對(duì)方是否存在只有確定對(duì)方己存在時(shí),才能進(jìn)行管道通信,否則會(huì)造成因?qū)Ψ讲淮嬖诙鵁o限制 地等待。在這個(gè)問題當(dāng)中,我們采用信號(hào)量機(jī)制進(jìn)行進(jìn)程之間的通信,設(shè)置兩個(gè)信 號(hào)量,空的信號(hào)星和滿的信號(hào)暈。使用信號(hào)星機(jī)制可以實(shí)現(xiàn)進(jìn)程Z間的同步和互斥, 允許并發(fā)進(jìn)程一次對(duì)一組信號(hào)最進(jìn)行相同或不同的操作。每個(gè)P、V操作不限于減1 或加1,而是可以加減任何整數(shù)。在進(jìn)程終I匕時(shí),系統(tǒng)可根據(jù)需要白動(dòng)消除所有被進(jìn) 程操作過的信號(hào)量的影響。2)程序要求 緩沖區(qū)采用循環(huán)隊(duì)列表示,利用頭、尾指針來存放、讀取數(shù)據(jù),以及判斷隊(duì) 列是否為空。緩沖區(qū)中數(shù)組大小為15: 利用函數(shù)producerO作為生產(chǎn)者每次生產(chǎn)的數(shù)
7、據(jù),存放到緩沖區(qū)中: 使用main。函數(shù)調(diào)用實(shí)現(xiàn)共亭主存段的創(chuàng)建,返回共亨內(nèi)存區(qū)的ID。對(duì)于已 經(jīng)申請(qǐng)到的共左段,進(jìn)程需把它附加到門己的虛擬空間中才能對(duì)其進(jìn)行讀寫。 使用Append0與Take()函數(shù)進(jìn)行循環(huán)。5、實(shí)驗(yàn)測(cè)試及分析結(jié)果分析:1、在每個(gè)程序中先做P (mutex),后做V (mutex),二者要成對(duì)出現(xiàn)。夾在二者 中間的代碼段就是該進(jìn)程的臨界區(qū)。2、對(duì)同步信號(hào)最full和empty的P, V操作同樣必須成對(duì)出現(xiàn),但它們分別位 于不同的程序中。3、無論在生產(chǎn)者進(jìn)程中還是在消費(fèi)者進(jìn)程中,兩個(gè)P操作的次序不能顛倒:應(yīng) 先執(zhí)行同 步信號(hào)最的P操作,然后執(zhí)行互斥信號(hào)最的P操作。否則可能造成進(jìn)程死鎖。6、實(shí)驗(yàn)心得體會(huì)在分析程序的過程中發(fā)現(xiàn)了幾點(diǎn)問題,第一個(gè)便是C語言與C卄混亂,C語言 里面的語句用到了本程序中如“/n”在C語言中為換行符號(hào),但在C卄中卻不是: 第二個(gè)便是符號(hào)問題,在程序編寫過程中應(yīng)用英文標(biāo)點(diǎn)符號(hào)。本次實(shí)驗(yàn)是關(guān)于生產(chǎn) 者與消費(fèi)者之間互斥和同步的問題。問題的是指是P、V操作,實(shí)驗(yàn)設(shè)一個(gè)共亨緩沖 區(qū),生產(chǎn)者和消費(fèi)者互斥的使用,當(dāng)一個(gè)線程使用緩沖區(qū)的時(shí)候,另一個(gè)讓其等待 直到前一個(gè)線程釋放緩沖區(qū)為止。實(shí)驗(yàn)中包倉的知識(shí)點(diǎn)很多,包括臨界區(qū)資源共享 問題、信號(hào)量定義、PV操作流程、進(jìn)程間的通信方式(消息傳遞和共亨
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- (完整版)《珠心算口訣表》
- 風(fēng)力發(fā)電機(jī)組在極端氣候下的結(jié)構(gòu)健康監(jiān)測(cè)考核試卷
- 飲料制造原材料采購管理考核試卷
- 銀行間市場(chǎng)融資機(jī)制-洞察分析
- 超臨界流體技術(shù)在化學(xué)試劑制備中的應(yīng)用考核試卷
- 稅收信息化建設(shè)-洞察分析
- 漁業(yè)節(jié)能減排技術(shù)創(chuàng)新-洞察分析
- 遠(yuǎn)程醫(yī)療在農(nóng)村地區(qū)的發(fā)展策略研究-洞察分析
- 原型理論與文學(xué)批評(píng)-洞察分析
- 碳酸飲料廣告?zhèn)鞑バЧ?洞察分析
- 空調(diào)系統(tǒng)維保記錄表格模板
- QC小組活動(dòng)管理制度
- 市區(qū)自備井排查整治工作實(shí)施方案
- 8位半萬用表大比拼
- 品牌管理部績效考核指標(biāo)
- 瀝青路面施工監(jiān)理工作細(xì)則
- 物業(yè)設(shè)備設(shè)施系統(tǒng)介紹(詳細(xì)).ppt
- 公司走賬合同范本
- 獲獎(jiǎng)一等獎(jiǎng)QC課題PPT課件
- 人教版小學(xué)三年級(jí)數(shù)學(xué)上冊(cè)判斷題(共3頁)
- 國際項(xiàng)目管理手冊(cè)The Project Manager’s Manual
評(píng)論
0/150
提交評(píng)論