什么是進程同步進程同步的概念
什么是進程同步進程同步的概念
進程同步是指在多道程序環(huán)境下,進程是并發(fā)執(zhí)行的,不同進程之間存在著不同的相互制約關(guān)系。那么你對進程同步了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是進程同步的內(nèi)容,提供給大家參考和了解,希望大家喜歡!
進程同步的的概念
我們把異步環(huán)境下的一組并發(fā)進程因直接制約而互相發(fā)送消息、進行互相合作、互相等待,使得各進程按一定的速度執(zhí)行的過程稱為進程間的同步。具有同步關(guān)系的一組并發(fā)進程稱為合作進程,合作進程間互相發(fā)送的信號稱為消息或事件。 如果我們對一個消息或事件賦以唯一的消息名,則我們可用過程 wait (消息名) 表示進程等待合作進程發(fā)來的消息,而用過程 signal (消息名) 表示向合作進程發(fā)送消息。
進程同步的制約關(guān)系
在多道程序環(huán)境下,系統(tǒng)中各進程以不可預(yù)測的速度向前推進,進程的異步性會給系統(tǒng)造成混亂,造成了結(jié)果的不可再現(xiàn)性。為防止這種現(xiàn)象,異步的進程間推進受到二種限制:
(1)資源共享關(guān)系
多進程共享資源,例如各進程爭用一臺計算機,這時各進程使用這臺打印機時有一定的限制。如各進程隨意使用打印機,會造成打印機結(jié)果交織在一起難以區(qū)分。所以必須由系統(tǒng)統(tǒng)一分配,每次只允許一個進程使用一段時間打印機,等該進程使用完畢后再將打印機分配給其它進程。這種使用原則稱為互斥使用。
(2)相互合作關(guān)系
在某些進程之間還存在合作關(guān)系,例如圖2-2程序并發(fā)執(zhí)行圖中一個程序的輸入、計算、打印三個程序段作為三個進程并發(fā)執(zhí)行,由于這三個進程間存在著相互合作的關(guān)系,即先輸入再計算、最后再打印的關(guān)系,所以這三個進程在并發(fā)執(zhí)行時推進序列受到限制,要保證其合作關(guān)系正確,進程間這種關(guān)系稱為同步關(guān)系。
用P,V原語操作實現(xiàn)同步
步驟:
1. 為各并發(fā)進程設(shè)置私用信號量
2. 為私用信號量賦初值 3. 利用P、v原語和私用信號量規(guī)定各進程的執(zhí)行順序。 實例:
例:設(shè)進程PA和PB通過緩沖區(qū)隊列傳遞數(shù)據(jù)。PA為發(fā)送進程、PB為接收 進程。PA發(fā)送數(shù)據(jù)時調(diào)用發(fā)送過程deposit(data),PB接收數(shù)據(jù)時調(diào)用過程remove(data)。且數(shù)據(jù)的發(fā)送和接收過程滿足如下條件:
1)在PA至少送一塊數(shù)據(jù)入一個緩沖區(qū)之前,PB不可能從緩沖區(qū)中取出數(shù)據(jù)(假定數(shù)據(jù)塊長等于緩沖區(qū)長度)
2)PA往緩沖隊列發(fā)送數(shù)據(jù)時,至少有一個緩沖區(qū)是空的;
3)由PA發(fā)送的數(shù)據(jù)塊在緩沖隊列中按先進先出(FIFO)方式排列。 描述發(fā)送過程deposit(data)和接收過程remove(data)。
看過“進程同步的概念“的人還看了:
1.什么是進程名
2.如何解決win8系統(tǒng)進程占據(jù)大量內(nèi)存
4.關(guān)于中國電影產(chǎn)業(yè)化發(fā)展進程中若干問題的思考
5.在推進城鄉(xiāng)一體化進程中統(tǒng)籌解決人口問題