pvOS的PV原理
時(shí)間:2022-02-16 22:00:01 | 來源:信息時(shí)代
時(shí)間:2022-02-16 22:00:01 來源:信息時(shí)代
PV原理是用來解決操作系統(tǒng)(OS)進(jìn)程之間的同步和互斥的。
同步:異步環(huán)境下的一組進(jìn)程因相互制約而發(fā)送消息,進(jìn)行互相合作互相等待。使各個(gè)進(jìn)程按照一定的速度執(zhí)行。
互斥:一組進(jìn)程因?yàn)楣蚕硪粋€(gè)公共資源,必需保證同一時(shí)刻只有一個(gè)進(jìn)程在使用臨界資源。
舉一個(gè)例子就是:
互斥就是很多人過一個(gè)獨(dú)木橋,同時(shí)只能有一個(gè)人使用這個(gè)橋。
同步就是兩個(gè)人同時(shí)過一個(gè)橋,一個(gè)人騎車,一個(gè)人步行,但是兩個(gè)人必需同時(shí)到達(dá)。這兩個(gè)人同時(shí)出發(fā),騎車的人的比較快,必需到一段等一下步行的人,保證他們相互制約著到達(dá)。
信號(hào)量:
代表并發(fā)進(jìn)程可用資源數(shù),小于零表示正在等待資源的進(jìn)程數(shù)。
P操作:
將信號(hào)量減一,如果信號(hào)量(sem)為負(fù)數(shù),則調(diào)用p操作的進(jìn)程停止,直到另一個(gè)進(jìn)程對(duì)同一信號(hào)量做v操作。
V操作:
將信號(hào)量加一,如果信號(hào)量(sem)大于等于0則在與sem有關(guān)的隊(duì)列中喚醒一個(gè)進(jìn)程,讓他執(zhí)行。
PV原理原則
1、互斥的信號(hào)量的PV操作在一個(gè)進(jìn)程中出現(xiàn)這里的Sn是互斥的,所以P(Sn)
V(Sn)都在顧客進(jìn)程里面。
2、同步的信號(hào)量的PV操作在兩個(gè)進(jìn)程之間交替出現(xiàn),比如S1,S2在顧客和收營員直接交替出現(xiàn)。
3、個(gè)人觀點(diǎn):PV操作難點(diǎn)就是同步的進(jìn)程之間的操作,這里同步的進(jìn)程對(duì)同一信號(hào)量的操作,一定是先P,后V.P操作是使用資源,V操作是釋放資源,進(jìn)程一定是先使用資源,然后再釋放資源。
這里就像是騎車的和步行的人,一開始他們都要走,只是走的過程中會(huì)出現(xiàn)彼此等待的情況,這就是說開始為什么是P操作了,因?yàn)镻操作是使用資源,他們要走,所以使用資源。
4、P操作使信號(hào)量小于零以后,則停止當(dāng)前進(jìn)程,等另一個(gè)進(jìn)程喚醒他,也就是給這個(gè)信號(hào)量加一。
5、當(dāng)一個(gè)V操作結(jié)束后,一般認(rèn)為,這個(gè)進(jìn)程接下去執(zhí)行,執(zhí)行下一個(gè)P操作,這里指的是P(S2)操作,然后停止,等待收銀員的V操作喚醒他。