日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

生产者-消费者问题(有例题!!!)

發(fā)布時間:2024/3/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 生产者-消费者问题(有例题!!!) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 問題描述
  • 如何實現(xiàn)
  • 思考:能否改變相鄰P、V操作的順序?
  • 知識回顧與重要考點

前言

此篇文章是我在B站學(xué)習(xí)時所做的筆記,大部分圖片都是課件老師的PPT,方便復(fù)習(xí)用。此篇文章僅供學(xué)習(xí)參考。


提示:以下是本篇文章正文內(nèi)容

問題描述

系統(tǒng)中有一組生產(chǎn)者進程和一組消費者進程,生產(chǎn)者進程每次生產(chǎn)一個產(chǎn)品放入緩沖區(qū),消費者進程每次從緩沖區(qū)中取出一個產(chǎn)品并使用。(注:這里的“產(chǎn)品”理解為某種數(shù)據(jù))

  • 生產(chǎn)者、消費者共享一個初始為空、大小為n的緩沖區(qū)。
  • 只有緩沖區(qū)沒滿時,生產(chǎn)者才能把產(chǎn)品放入緩沖區(qū),否則必須等待。
  • 只有緩沖區(qū)不空時,消費者才能從中取出產(chǎn)品,否則必須等待。
  • 緩沖區(qū)是臨界資源,各進程必須互斥地訪問。


解釋:
在剛開始,由于這個緩沖區(qū)全部是空的,所以生產(chǎn)者進程可以生產(chǎn)一些產(chǎn)品,把它放入到這個緩沖區(qū)當(dāng)中。那一直到這個緩沖區(qū)被充滿了之后,如果此時生產(chǎn)者進程,它還想繼續(xù)生產(chǎn)產(chǎn)品,并且把它充入緩沖區(qū)的話,那這個行為很顯然應(yīng)該是被阻止的,因為此時緩沖區(qū)的這些數(shù)據(jù)已經(jīng)被裝滿了,那只有這個緩沖區(qū)騰出別的空閑的空間之后,生產(chǎn)者進程才可以繼續(xù)往里邊放出去,所以在這個時候,只能切換為消費者進程來消費這些數(shù)據(jù),也就是從緩沖區(qū)當(dāng)中取走其中的一些產(chǎn)品或者說數(shù)據(jù),只要緩沖區(qū)當(dāng)中有一個或者大于一個的空閑的空間,那么此時就可以喚醒生產(chǎn)者進程,讓他從阻塞態(tài)又重新回到就緒隊列,當(dāng)然這個喚醒并不意味著生產(chǎn)者進程就立即回處理機運行,它只是回到了就緒隊列而已,所以接下來有可能是消費者進程繼續(xù)執(zhí)行那么每一次每一輪執(zhí)行都會從緩沖區(qū)取走一輪,并且使用,那一直到這個緩沖區(qū)被取空了之后,如果此時消費者進程還繼續(xù)嘗試從緩沖區(qū)當(dāng)中取走產(chǎn)品的話,那由于此時已經(jīng)為空了,那么這個時候這個取產(chǎn)品的行為,應(yīng)該是被阻止了,所以消費者進程應(yīng)該被阻塞,而只有生產(chǎn)的進程再往里邊放數(shù)據(jù)的時候,消費者進程才可以在重新被喚醒,又重新回到了就是就緒隊列,這個緩沖區(qū)它屬于一種臨界資源,各個進程是必須互斥的訪問的,假如說我們的這個系統(tǒng)當(dāng)中有兩個生產(chǎn)者競爭,那此時這兩個生產(chǎn)者進程在檢查了之后,發(fā)現(xiàn)緩沖區(qū)的這些位置,每個地方都是空的,那這個生產(chǎn)者進程他可能就往這個位置,充入了一個它自己的產(chǎn)品,也就是數(shù)據(jù),而另一個生產(chǎn)者進程在之前的那個檢查當(dāng)中也發(fā)現(xiàn)這個緩沖區(qū)所有的地方都是空的,那么在并發(fā)的環(huán)境下,就有可能導(dǎo)致這個生產(chǎn)者進程,它同時也在檢查了之后,也往這個地方充入了一個數(shù)據(jù),所以這就導(dǎo)致了前者的數(shù)據(jù)背后的數(shù)據(jù)給覆蓋的情況,因此我們是必須保障緩沖區(qū)是被互斥地訪問的。

PV操作題目分析步驟:

  • 關(guān)系分析。找出題目中描述的各個進程,分析它們之間的同步、互斥關(guān)系。
  • 整理思路。根據(jù)各進程的操作流程確定P、V操作的大致順序。
  • 生產(chǎn)者每次要消耗(P)一個空閑緩沖區(qū),并生產(chǎn)(V)一個產(chǎn)品。
    消費者每次要消耗(P)一個產(chǎn)品,并釋放一個空閑緩沖區(qū)(V)。
    [第一個P和第二個V是一對,第二個P和第一個V是一對]
    往緩沖區(qū)放入/取走產(chǎn)品需要互斥。

  • 設(shè)置信號量。設(shè)置需要的信號量,并根據(jù)題目條件確定信號量初值。(互斥信號量初值一般為1,同步信號量的初始值要看對應(yīng)資源的初始值是多少)
  • 如何實現(xiàn)

    思考:能否改變相鄰P、V操作的順序?

    • 若此時緩沖區(qū)內(nèi)已經(jīng)放滿產(chǎn)品,則empty=0,full=n。
    • 則生產(chǎn)者進程執(zhí)行①使mutex變?yōu)?,再執(zhí)行②,由于已沒有空閑緩沖區(qū),因此生產(chǎn)者被阻塞。由于生產(chǎn)者阻塞,因此切換回消費者進程。消費者進程執(zhí)行③,由于mutex為0,即生產(chǎn)者還沒釋放對臨界資源的“鎖”,因此消費者也被阻塞。
    • 這就造成了生產(chǎn)者等待消費者釋放空閑緩沖區(qū),而消費者又等待生產(chǎn)者釋放臨界區(qū)的情況,生產(chǎn)者和消費者循環(huán)等待被對方喚醒,出現(xiàn)“死鎖”。
    • 同樣的,若緩沖區(qū)中沒有產(chǎn)品,即full=0,empty=n。按③④①的順序執(zhí)行就會發(fā)生死鎖。

    因此,實現(xiàn)互斥的P操作一定要在實現(xiàn)同步的P操作之后。 V操作不會導(dǎo)致進程阻塞,因此兩個V操作順序可以交換。

    接下來我們再來考慮第三個問題:生產(chǎn)者生產(chǎn)產(chǎn)品和消費者使用產(chǎn)品。這兩個操作,它們都是放在各自的這些pv操作之外的,那這些操作能不能放到pv操作之內(nèi)呢?

    答:其實邏輯上來看是沒有問題的,我們可以讓消費者從緩沖區(qū)取出一個產(chǎn)品之后,就立即緊接著使用產(chǎn)品。但這會導(dǎo)致臨界區(qū)的這個代碼量變大,那么消費者進程在訪問臨界區(qū)的過程當(dāng)中,就需要耗費更長的時間。那如果此時有別的進程也想訪問臨界區(qū)的話,它是會被阻塞的,所以說如果把這些非必要的代碼把它也放到臨界區(qū)內(nèi)的話,就顯然會導(dǎo)致進程之間的并發(fā)度降低,所以對于這兩部分的大碼,我們最好不要放到pv操作之間。

    知識回顧與重要考點


    PV操作題目的解題思路:

  • 關(guān)系分析。找出題目中描述的各個進程,分析它們之間的同步、互斥關(guān)系。
  • 整理思路。根據(jù)各進程的操作流程確定P、V操作的大致順序。
  • 設(shè)置信號量。設(shè)置需要的信號量,并根據(jù)題目條件確定信號量初值。(互斥信號量初值一般為1,同步信號量的初始值要看對應(yīng)資源的初始值是多少)
    • 生產(chǎn)者消費者問題是一個互斥、同步的綜合問題。
    • 對于初學(xué)者來說最難的是發(fā)現(xiàn)題目中隱含的兩對同步關(guān)系。
    • 有時候是消費者需要等待生產(chǎn)者生產(chǎn),有時候是生產(chǎn)者要等待消費者消費,這是兩個不同的“一前一后問題”,因此也需要設(shè)置兩個同步信號量。

    總結(jié)

    以上是生活随笔為你收集整理的生产者-消费者问题(有例题!!!)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲专区第一页 | 国偷自拍 | 三级不卡视频 | 在线视频综合网 | 免费黄色小视频网站 | 青青青手机视频在线观看 | 久草97| 87福利视频 | 动漫美女露胸网站 | 69视频网站 | 国产精品视频久久久久久 | 免费在线日本 | 丁香一区二区 | 青春草在线视频免费观看 | 精品在线观看一区 | 黑人超碰| 91亚洲国产成人精品一区二区三 | 国产性一乱一性一伧一色 | 男女搞鸡网站 | av一级网站| 99精品视频在线免费观看 | 国产在线一区二区三区 | 中文字幕 成人 | 国产真人做爰毛片视频直播 | 欧美性大战久久久久久久蜜桃 | 久久国产精品一区 | 麻豆偷拍| 日韩免费视频一区二区视频在线观看 | 国产又粗又硬 | 国产老熟女伦老熟妇露脸 | 欧美精品久久久久久久 | 欧美日韩亚洲在线观看 | 美女a视频 | 日韩av在线一区二区三区 | 激情综合丁香五月 | 国产三区av| 久久久久99人妻一区二区三区 | 99久久精品国产一区二区三区 | 少妇户外露出[11p] | 97香蕉超级碰碰久久免费软件 | 国产青青草视频 | 让男按摩师摸好爽 | 黄色网在线看 | 亚洲日日夜夜 | 成人网站在线进入爽爽爽 | 国产综合一区二区 | 精品久久人妻av中文字幕 | 日本黄色美女网站 | 色葡萄影院 | 亚洲精品高清视频在线观看 | 毛茸茸亚洲孕妇孕交片 | 天天躁日日躁狠狠很躁 | 超碰三级| 日韩亚洲国产精品 | 香蕉久久a毛片 | 精品日本一区二区三区 | 午夜少妇影院 | 国产真实的和子乱拍在线观看 | 国产午夜精品久久久久久久久久 | a天堂中文 | 日夜夜操 | 国产视频xxx | 久久久久亚洲日日精品 | 国产精品视频你懂的 | 欧美特级黄色 | 久久久亚洲国产精品 | 欧美一级做a爰片免费视频 成人激情在线观看 | 玖玖在线资源 | 全黄性性激高免费视频 | 污污的视频网站在线观看 | 一二三在线视频 | 亚洲人成电影网站 | 很黄很污的视频网站 | 黄色动漫免费在线观看 | 久久久www成人免费精品 | 日本精品三级 | 在线观看中文字幕视频 | 男人猛进女人爽的大叫 | 大胸美女被爆操 | 91看片黄色 | 久久久久人妻一区精品色 | 极品91尤物被啪到呻吟喷水 | 最近更新中文字幕 | 天天综合网久久综合网 | 欧美最猛性xxxx | 高h视频在线免费观看 | 日韩欧美xxx | 麻豆黄色网址 | 欧美专区日韩专区 | 欧美成人午夜电影 | 国产毛片在线 | 香蕉茄子视频 | 香蕉亚洲 | 黄色a在线观看 | 国产精品无码久久久久久电影 | 深田咏美av在线 | 婷婷色中文网 | 日本偷拍一区 | 韩国av一区|