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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Operating System-进程/线程内部通信-临界区(Critical Regions)

發(fā)布時(shí)間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Operating System-进程/线程内部通信-临界区(Critical Regions) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上一篇文章講述了進(jìn)程之間的競爭條件:多個(gè)進(jìn)程同時(shí)進(jìn)入一個(gè)共享區(qū)域,導(dǎo)致了數(shù)據(jù)的不一致,本文主要介紹如何解決這個(gè)問題。

一、臨界區(qū)介紹

解決這個(gè)問題就是阻止多個(gè)進(jìn)程同時(shí)進(jìn)入這個(gè)共享區(qū)域,換句話說,進(jìn)程之間針對這塊共享區(qū)域需要排他(Mutual Exclusion)。問題的根源是進(jìn)程B在進(jìn)程A沒有從共享區(qū)域返回之前就進(jìn)入了共享區(qū)域。

在大部分情況下兩個(gè)進(jìn)程之間是不會(huì)共享變量的,只會(huì)有一部分步驟會(huì)使用到共享變量,在程序設(shè)計(jì)中,可以把這部分訪問共享變量程序單獨(dú)設(shè)計(jì)出來,這部分程序叫做臨界區(qū)(Critical Regions)。如果保證兩個(gè)進(jìn)程永遠(yuǎn)只有一個(gè)進(jìn)程進(jìn)入這塊臨界區(qū)域,那么進(jìn)程之間的條件競爭也就迎刃而解。

達(dá)到上面的結(jié)果需要以下條件:

  • 沒有兩個(gè)進(jìn)程同時(shí)進(jìn)入臨界區(qū)域
  • 對CPU的速度或者數(shù)量不做要求
  • 被Block在臨界區(qū)域之外的等待的進(jìn)程會(huì)block其他進(jìn)程,比如,進(jìn)程A在臨界區(qū)域內(nèi),那么這個(gè)時(shí)候進(jìn)程B來訪問臨界區(qū),進(jìn)程B就會(huì)被Block到臨界區(qū)外,這個(gè)時(shí)候的進(jìn)程B不應(yīng)該Block其他進(jìn)程
  • 沒有進(jìn)程會(huì)被永遠(yuǎn)Block到臨界區(qū)之外

二、臨界區(qū)演示

圖示

?

  • 在T1時(shí)間Process A進(jìn)入臨界區(qū)域
  • T2時(shí)間,Process B嘗試進(jìn)入臨界區(qū)域
  • 因?yàn)锳在臨界區(qū)域,所以B被Block
  • T3時(shí)間A離開臨界區(qū)域,B進(jìn)入臨界區(qū)域時(shí)間
  • T4時(shí)間,B離開臨界區(qū)域

使用臨界區(qū)域的概念有什么好處呢?

  • 如果進(jìn)程A和B在大部分時(shí)間內(nèi)沒有使用到共享資源,那么在這段時(shí)間內(nèi)內(nèi)A、B是可以并行執(zhí)行的。
  • 只有針對臨界區(qū)域的訪問才不能并行。
  • 最大限度讓進(jìn)程并行工作,且高效的使用共享數(shù)據(jù)

三、總結(jié)

  • 抽象臨界區(qū)域
  • 對臨界區(qū)域進(jìn)行排他
  • 如歌實(shí)現(xiàn)排他呢?下一篇文章進(jìn)行介紹。

轉(zhuǎn)載于:https://www.cnblogs.com/Brake/p/Operating_System_Interprocess_Communication_Critical_Regions.html

總結(jié)

以上是生活随笔為你收集整理的Operating System-进程/线程内部通信-临界区(Critical Regions)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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