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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

操作系统(四) | 经典进程的同步问题(生产者--消费者问题、哲学家进餐问题、读者--写者问题)

發(fā)布時(shí)間:2025/4/5 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统(四) | 经典进程的同步问题(生产者--消费者问题、哲学家进餐问题、读者--写者问题) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 生產(chǎn)者--消費(fèi)者問題
    • 分析
    • 實(shí)現(xiàn)
  • 哲學(xué)家進(jìn)餐問題
    • 方法一:最多4人同時(shí)拿左筷子,最終保證一人能進(jìn)餐
    • 方法二:同時(shí)給左右筷子
      • 解法1:AND信號(hào)量
      • 解法2:信號(hào)量保護(hù)機(jī)制
    • 方法三:讓奇數(shù)先左后右,讓偶數(shù)先右后左
  • 讀者--寫者問題
    • 分析
    • 實(shí)現(xiàn)

前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站。點(diǎn)擊這里

生產(chǎn)者–消費(fèi)者問題

分析

  • P1~Pl 向BUFF存信息,C1~Cm 從BUFF取信息。
  • 不能對(duì)同一個(gè)信息既存又取,因此P進(jìn)程和C進(jìn)程互斥(mutex)
  • BUFF中有空位,P進(jìn)程才能存信息(empty)
  • BUFF中有信息,C進(jìn)程才能取信息(full)

實(shí)現(xiàn)

int in = 0, out = 0; // 在BUFF中要操作(存消息,取消息)的位置 item buff[n]; // 創(chuàng)建BUFF semaphore mutex= 1, empty = n, full = 0; void producer(){do{產(chǎn)生一個(gè)消息并放到nextp里wait(empty); // 先檢驗(yàn)是否為空wait(mutex); // 后檢驗(yàn)是否互斥。順序顛倒,在滿的情況下,// 會(huì)導(dǎo)致mutex無法釋放,導(dǎo)致死鎖buff[in] = nextp;in = (in+1)%n; // 讓in指向下一個(gè)位置signal(mutex); // 釋放互斥信號(hào)signal(full); // 放進(jìn)去信息了,full+1}while(True) }void consumer(){do{wait(full);wait(mutex);nextc = buff[out];out = (out+1) mod n;signal(mutex);signal(empty);消費(fèi)nextc中的產(chǎn)品}while(True) }void main(){cobeginproducer();consumer();coend }

注意:

  • 每個(gè)進(jìn)程中 wait(mutex)和 signal(mutex)成對(duì)存在
  • 整個(gè)程序中 wait(empty/full)和 signal(empty/full)成對(duì)存在
  • wait()順序不能顛倒,先資源再互斥,避免死鎖

哲學(xué)家進(jìn)餐問題

方法一:最多4人同時(shí)拿左筷子,最終保證一人能進(jìn)餐

semaphore chopsticks[5] = {1,1,1,1,1} // 5根筷子 semaphore r = 4 // 最多4個(gè)人同時(shí)拿左筷子 void ohilosopher(int i) {while(true){think();wait(r);// 看看有幾個(gè)人拿了左筷子wait(chopsticks[i]); // 拿左筷子wait(chopsticks[(i+1)mod 5]; // 拿有筷子eat(); // 吃signal(chopsticks[(i+1)) mod 5]; //給出筷子signal(chopsticks[i]);// 給出筷子signal(r); // 1個(gè)吃完了,又允許1個(gè)人拿左筷子了think();} }

方法二:同時(shí)給左右筷子

解法1:AND信號(hào)量

semaphore chopsticks[5] = {1,1,1,1,1} void philosopher(int i){while(true){think();Swait(chopsticks [i] ; chopstick[i+1] mod 5); // 用AND信號(hào)量同時(shí)給左右筷子eat(); // 吃Ssignal(chopstick[(i+1) mod 5];chopstick[i]) // 吃完釋放一雙筷子think();} }

解法2:信號(hào)量保護(hù)機(jī)制

semaphore mutex = 1 semaphore chopsticks[5] = {1,1,1,1,1} void philosopher(int i){while(true){think();wait(mutex);wait(chopstick[i]);wait(chopstick[(i+1) mod 5]);signal(mutex);eat();signal(chopstick[i]);signal(chopstick[(i+1) mod 5]);think();} }

方法三:讓奇數(shù)先左后右,讓偶數(shù)先右后左

semaphore chopsticks[5] = {1,1,1,1,1] void philosopher(int i){while(true){if(i mod 2 == 0){wait(chopstick[(i+1) mod 5);wait(chopstick[i]);eat();signal(chopstick[i]);signal(chopstick[(i+1) mod 5]);}else{wait(chopstick[i]);wait(chopstick[(i+1) mod 5);eat();signal(chopstick[(i+1) mod 5]);signal(chopstick[i]);}} }

讀者–寫者問題

分析

  • 寫者和寫者之間互斥,寫者和讀者之間互斥
  • 只要有一個(gè)讀者,寫者就不能去寫

實(shí)現(xiàn)

int Readcount = 0; // 記錄有幾個(gè)讀者在讀 semaphore rmutex = 1; // 讀寫互斥 semaphore wmutex = 1// 讀者之間對(duì)Readcount訪問互斥 void Reader(){do{wait(rmutex);if (Readcount == 0) // 判斷是否是第一個(gè)讀者wait(wmutex);Readcount++;signal(rmutex);read();wait(rmutex);Readcount--;if (Readcount == 0){ // 判斷是否是最后一個(gè)讀者signal(wmutex);signal(wmutex);}while(true) }void Writer(){while(true){wait(wmutex);寫;signal(wmutex);}

本文哲學(xué)家進(jìn)餐問題參考【操作系統(tǒng)】“哲學(xué)家進(jìn)餐”問題

總結(jié)

以上是生活随笔為你收集整理的操作系统(四) | 经典进程的同步问题(生产者--消费者问题、哲学家进餐问题、读者--写者问题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 天天摸日日摸 | 桃色一区 | 日韩aⅴ在线观看 | 国产精品99久久久久久久久久久久 | 国产又黄又 | 成人网在线免费观看 | 国产精品破处 | 免费无遮挡无码永久在线观看视频 | 999精品| 五月丁香花 | 欧美另类高清videos的特点 | 亚洲一区有码 | 丰满肉嫩西川结衣av | 日本女人性视频 | 国内自拍xxxx18 | 欧美aaa级 | 欧美精品入口蜜桃 | 一区二区三区精品久久久 | 九九免费在线视频 | 涩涩爱在线| 高清一区二区三区视频 | 日本aa在线观看 | 色婷在线| 欧美特黄一级 | 91丨九色丨国产 | 绝顶高潮videos合集 | 91av短视频 | 尤物在线免费视频 | 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 精品盗摄一区二区三区 | 精品一区不卡 | 真实偷拍激情啪啪对白 | 黄色av国产 | 丰满尤物白嫩啪啪少妇 | 人妻熟妇又伦精品视频a | 免费在线观看a视频 | 成人午夜视频一区二区播放 | 成人性生交大片免费看中文 | 91午夜影院 | 日b视频在线观看 | 怡春院国产 | 可以在线观看的黄色 | 致命弯道8在线观看免费高清完整 | 青青草在线观看视频 | 91理论片午午伦夜理片久久 | xxxx日本免费 | 精品一区二区三区四区五区 | 亚洲黄色大片 | 成人性生交大片 | 1000部国产精品成人观看 | 午夜精品一区二区在线观看 | 丁香婷婷六月 | 深夜影院在线观看 | 久久中文字幕网 | 日韩精品极品视频 | 国产主播av在线 | 国产寡妇亲子伦一区二区三区四区 | 免费av网址在线观看 | eeuss日韩 | 妹子干综合网 | 欧美久久久 | 欧美偷拍视频 | 久久爱99 | 香蕉视频在线网址 | 国产欧美一区二区三区精品酒店 | 亚洲大色| 人人草在线观看 | 成年免费视频黄网站在线观看 | 欧美特黄一级视频 | 美女丝袜合集 | 国产精品一线 | 亚洲清纯唯美 | 四虎精品在线 | 亚洲国产伊人 | 潘金莲三级80分钟 | 性折磨bdsm欧美激情另类 | 国产的av| 黑人粗进入欧美aaaaa | 国产精品揄拍一区二区 | 精品国产www | 伊人999| 女女h百合无遮羞羞漫画软件 | 在线国产视频一区 | 国产激情对白 | 色姑娘天天操 | 牛av| 伊人蕉 | 国产亚洲天堂网 | 男人女人拔萝卜视频 | 久久91av | 蓝牛av| 91视频在线免费看 | 国产亚洲欧美日韩精品 | 国产66页 | 国产中文字幕久久 | 全部免费毛片在线播放一个 | 色女人网站| 在线看黄网 | 91性高潮久久久久久久久 |