210226階段三 systemV訊號量

2021-10-20 09:12:15 字數 952 閱讀 4751

systemv訊號量

二、上課沒有聽懂或者沒有理解的地方

三、當天學習的收穫

執行緒屬於posix執行緒

互斥鎖、訊號量屬於posix訊號量 在程序內部使用

systemv訊號量: semget shmget 在程序間使用

通過ipcs檢視的都是systemv系列

訊號量都是對乙個數字進行加一減一的操作,訊號量為 0 時,若進行減一,則阻塞在此,

systemv系列的p操作對訊號量減1,v操作對訊號量加1

根據伺服器的功能分為兩個程序

接入客戶端,把資料寫入共享記憶體,通知後置伺服器取資料

取出資料,對資料進行處理,寫入共享記憶體,通知前置伺服器取

使用兩塊共享記憶體 兩個systemv訊號量 乙個共享記憶體 存放未處理的資料,另乙個共享記憶體存放處理後的資料。

使用兩個訊號量的原因是:避免後置伺服器和子程序搶奪 訊號量的p操作

#include

//man semop

#include

#include

void

sem_p

(int sem_id)

;//引數1 第幾個sem 引數三 標誌 0為預設 阻塞

semop

(sem_id,

&sops,1)

;//1 操作1個訊號量

}void

sem_v

(int sem_id)

;semop

(sem_id,

&sops,1)

;}int semid1 =

semget

(1234,1

,0);

//引數1 key 引數2 初始化的訊號量個數 引數三 訊號量的建立方式或許可權

if(semid1 ==-1

)//如果開啟失敗 就建立

人生三階段

本文摘於 感謝博主 逍遙文 的分享!一張圖道盡 人生三階段 年少時 成年時年老時 現在正值成年期的我們,屬於自己的時間看起來是最少的,這一切的代價就是以時間去換取金錢,然後就容易錯過許多事情。我們沒有 富爸富媽 無法逃離這個宿命,那麼既然要工作,就選自己喜歡且擅長的工作吧!因為做起來輕鬆愉快,儘管偶...

三階段提交

由於二階段提交存在很多的問題,我們對其做了一定的改進,也就是三階段提交,過程圖如下 主要有2個優化點 1 引入超時機制。同時在協調者和參與者中都引入超時機制。2 在第一階段和第二階段中插入乙個準備階段。保證了在最後提交階段之前各參與節點的狀態是一致的。協調者向參與者傳送commit請求,參與者如果可...

二階段提交協議,三階段提交協議

其實三者都是為了解決分布式一致性問題而存在的協議和演算法。首先先來了解幾個概念。協調者 coordinator 在分布式系統中,當事務操作需要跨越多個分布式節點的時候,為了保持分布式處理的acid特性,需要引入它來統一排程所有節點的執行邏輯。參與者 participant 協調者排程的這些節點就是參...