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