有一群生產者程序在生產產品,並將這些產品提供給消費者程序進行消費,生產者程序和消費者
程序可以併發執行,在兩者之間設定了乙個具有n可緩衝區的緩衝池,生產者程序需要將所生產
的產品放到乙個緩衝區中,消費者程序可以從緩衝區取走產品消費。
單兩者併發執行時就可能出差錯
有五個哲學家,他們的生活方式是交替地進行思考和進餐,哲學家們共同使用一張圓桌,分別坐
在周圍的五張椅子上,在圓桌上有五個碗和五支筷子。平時哲學家們只進行思考,飢餓時則試圖
取靠近他們的左、右兩支筷子,只有兩支筷子都被他拿到的時候就能進餐,進餐完畢之後,放下
左右筷子繼續思考。
需要程序間的同步
◆ 根源問題是:彼此相互之間沒有通訊
◆ 「如果生產者通知消費者我已經完成一件生產」
◆ 「哲學家向旁邊哲學家說我要進餐了」
對競爭資源在多程序間進行使用次序的協調
使得併發執行的多個程序之間可以有效使用資源和相互合作
◆ 空閒讓進:資源無占用,允許使用
◆ 忙則等待:資源有占用,請求程序等待
◆ 有限等待:保證有限等待時間能夠使用資源
◆ 讓權等待:等待時,程序需要讓出cpu
-----臨界資源
臨界資源指的是一些雖作為共享資源卻又無法同時被多個執行緒共同訪問的共享資源。當有程序在使用臨界資源時,其他程序必須依據作業系統的同步機制等待占用程序釋放該共享資源才可重新競爭使用共享資源。
-----方法
◆ 訊息佇列
◆ 共享儲存
◆ 訊號量
當多個執行緒併發使用程序資源時,程序內多執行緒也需要同步
-----方法
◆ 互斥量
◆ 讀寫鎖
◆ 自旋鎖
◆ 條件變數
作業系統 程序管理之程序同步
程序同步 由程序非同步所匯出的概念。由於多道程式設計的非同步性,導致記憶體中的程序時走時停,以不可預知的速度前進 但某些情況下又要求固定某些程序的先後順序。所謂程序同步就是指程序之間的直接制約關係,具體體現在程序的執行順序上。程序互斥 是由於程序之間均需要訪問同一臨界資源,而臨界資源同一時間又只能允...
作業系統 程序管理
程序 申請資源和排程資源的基本單位,乙個程序就是乙個程式的乙個執行過程。是乙個動態的概念,在不同的作業系統中,會有不同的程序出現。程式 靜態概念,是指令和資料的集合,可長期儲存。程序與程式對應關係 乙個程式可以對應乙個程序或者多個程序 乙個程序可以對應乙個程式,或者一段程式 程序由程式,資料集合,程...
作業系統 程序管理
1.程序描述 2.程序狀態 2.2 程序狀態變化模型 2.3 程序掛起模型 2.4 程序控制 3.執行緒 4.ipc 5.程序互斥與同步 乙個程式在乙個資料集合上的一次動態執行過程。程式 演算法 資料結構 與程式的區別 併發concurrency 一段時間內有多個程序執行 並行parallelism...