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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

windows

操作系统习题3—进程的互斥与同步

發(fā)布時(shí)間:2025/3/21 windows 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统习题3—进程的互斥与同步 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

操作系統(tǒng)習(xí)題3—進(jìn)程的互斥與同步

1.例舉兩個(gè)現(xiàn)實(shí)生活中需要同步與互斥的例子。

我們?nèi)コ宰灾蜁r(shí),店里的廚師會(huì)在后臺(tái)廚房制作食物,然后將食物運(yùn)送到公共飲食區(qū)域,讓顧客自行挑選。如果公共飲食區(qū)域的食物都被顧客吃光了,那么顧客只有先進(jìn)行等待,等廚師做出更多食物再送到公共飲食區(qū);如果公共飲食區(qū)域食物數(shù)量多到一定程度,廚師會(huì)暫停制作食物。

駕駛員開(kāi)車行駛到一個(gè)十字路口時(shí),如果本路口的綠燈亮起,駕駛員可以順利通過(guò);如果本路口的紅燈亮起,駕駛員必須停車進(jìn)行等待,讓其他路口的車輛通過(guò)。

2.何謂原語(yǔ)?它與系統(tǒng)調(diào)用有何區(qū)別?如何實(shí)現(xiàn)原語(yǔ)執(zhí)行的不可分割性?

原語(yǔ)是由若干條機(jī)器指令構(gòu)成的可完成特定功能的程序段。具有以下三個(gè)特點(diǎn):

  • 處于操作系統(tǒng)最底層,是最接近硬件的部分
  • 程序的運(yùn)行具有原子性,作為一個(gè)整體而不可分割,即要么全都完成,要么全都不做
  • 程序的運(yùn)行時(shí)間都較短,而且調(diào)用頻繁

原語(yǔ)與系統(tǒng)調(diào)用的區(qū)別:原語(yǔ)只要強(qiáng)調(diào)操作的不可分割性,可以認(rèn)為是一個(gè)不可中斷的子程序調(diào)用;系統(tǒng)調(diào)用是由用戶態(tài)進(jìn)入核心態(tài),一般也不會(huì)被中斷,但如果有更緊迫的系統(tǒng)調(diào)用的話,原來(lái)的系統(tǒng)調(diào)用還是會(huì)被打斷。

原語(yǔ)可通過(guò)硬件實(shí)現(xiàn)不可中斷性,或通過(guò)實(shí)現(xiàn)臨界段的元方法(屏蔽中斷、加硬鎖)達(dá)到不被邏輯上中斷。

3.如果 P、V 操作不作為原語(yǔ),即可分割執(zhí)行,那么是否還可以用于
解決互斥問(wèn)題?若不能,舉例說(shuō)明。

如果 P、V 操作不作為原語(yǔ),就不能用于解決互斥問(wèn)題。

舉例:在生產(chǎn)者-消費(fèi)者問(wèn)題中,由于 P、V 操作可以分割執(zhí)行,很大可能會(huì)出現(xiàn)當(dāng)前緩沖池中滿緩沖區(qū)個(gè)數(shù)僅為 1,而多個(gè)消費(fèi)者同時(shí)成功使用到這個(gè)緩沖區(qū)的情況,造成不可避免的系統(tǒng)錯(cuò)誤。

4.請(qǐng)用并行語(yǔ)句和 P、V 操作描述圖 1 所示的任務(wù)執(zhí)行過(guò)程

int synch=0; //兩進(jìn)程 P1、P2 共享信號(hào)量ParbeginP1():{S1;V(synch);S2;S4;V(synch);S5;V(synch);}P2():{P(synch);S3;P(synch);S6;P(synch);S7;} Parend;

5.“理發(fā)師睡覺(jué)”問(wèn)題:假設(shè)理發(fā)店由等待間(n 個(gè)座位)和理發(fā)間(只有一個(gè)座位)構(gòu)成。無(wú)顧客時(shí),理發(fā)師睡覺(jué)。顧客先進(jìn)等待間再進(jìn)理發(fā)間,當(dāng)顧客進(jìn)入理發(fā)間發(fā)現(xiàn)理發(fā)師在睡覺(jué)時(shí),則喚醒理發(fā)師,請(qǐng)求理發(fā);如果理發(fā)師正在理發(fā),又有顧客到來(lái)時(shí),只要有空椅子,他就坐下來(lái)等待,如果沒(méi)有空椅子,他就離開(kāi)。請(qǐng)為理發(fā)師和顧客各編寫一段程序來(lái)描述他們的同步問(wèn)題。

int customer=0,barber=0; //顧客和理發(fā)師的信號(hào)量 int customerNumber=0,mutex=1; //當(dāng)前顧客數(shù)目和互斥控制量//理發(fā)師 Barber(){while(1){P(customer); //喚醒等待的一位顧客P(mutex); //顧客被喚醒,準(zhǔn)備理發(fā)。沒(méi)有顧客就睡覺(jué)customerNumber--; //店里顧客數(shù)減一V(barber); //有顧客來(lái)了,醒來(lái)理發(fā)V(mutex); //釋放信號(hào)量} }//顧客 Customer(){while(1){P(mutex); //顧客想要理發(fā)if(customerNumber<N){ //理發(fā)店人數(shù)未滿,進(jìn)店customerNumber++; //店里顧客數(shù)加一V(customer); //喚醒理發(fā)師理發(fā)V(mutex); //釋放信號(hào)量P(barber); //理發(fā)師進(jìn)行理發(fā)}else //理發(fā)店人數(shù)已滿,離店V(mutex);} } 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的操作系统习题3—进程的互斥与同步的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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