【OS】进程同步概念
文章目錄
- 臨界資源
- 同步
- 互斥
臨界資源
雖然多個進程可以共享系統(tǒng)中的各種資源,其中許多資源一次只能為一個進程所用,我們將一次僅允許一個進程使用的資源稱為臨界資源。許多物理設備都屬于臨界資源,如打印機等。此外,還有許多變量、數據等都可以被若干進程共享,也屬于臨界資源。
對臨界資源的訪問,必須互斥地進行,在每個進程中,訪問臨界資源的那段代碼稱為臨界區(qū)。
為了保證臨界資源的正確使用,把臨界資源的訪問過程分成4個部分:
進入區(qū)
為了進入臨界區(qū)使用臨界資源,在進入區(qū)要檢查可否進入臨界區(qū),若能進入臨界區(qū),則應設置正在訪問臨界區(qū)的標志,以阻止其他進程同時進入臨界區(qū)。
*臨界區(qū)
進程中訪問臨界資源的那段代碼,又稱臨界段。
退出區(qū)
將正在訪問臨界區(qū)的標志清除。
剩余區(qū)
代碼中的其余部分。
同步
同步也叫直接制約關系,是指為完成某種任務而建立的兩個或多個進程,這些進程因為需要在某些位置上協(xié)調它們的工作次序面等待、傳遞信息所產生的制約關系。進程間的同步源于它們之間的相互合作。
例如:輸入進程A通過單緩沖向進程B提供數據。當該緩沖區(qū)空時,進程B不能獲得所需數據而阻塞,旦進程
A將數據送入緩沖區(qū),進程B就被喚醒,反之,當緩沖區(qū)滿時,進程A被阻塞,僅當進程B取走緩沖數據時,才喚醒進程A.
互斥
互斥也稱間接制約關系。當一個進程進入臨界區(qū)使用臨界資源時,另一個進程必須等待,當占用臨界資源的進程退出臨界區(qū)后,另一進程才允許去訪問此臨界資源。
例如:
在僅有一臺打印機的系統(tǒng)中,有兩個進程A和進程B,若進程A需要打印時,系統(tǒng)已將打印機分配給進程B,則進程A必須阻塞。一且進程B將打印機釋放,系統(tǒng)便將進程A喚醒,并將其由阻塞態(tài)變?yōu)榫途w態(tài)。
總結
以上是生活随笔為你收集整理的【OS】进程同步概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络】TCP/IP 模型与OSI
- 下一篇: idea的pom变成橙色的xml文件