進(jìn)程同步機(jī)制有幾種 請(qǐng)列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)?
請(qǐng)列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)?一個(gè)信號(hào)量的初始值只能設(shè)置一次,然后只能由P或v操作由此可以看出,信號(hào)量機(jī)制必須有公共內(nèi)存,不能在分布式操作系統(tǒng)中使用,這是它最大的弱點(diǎn)。信號(hào)量機(jī)制功能強(qiáng)大,
請(qǐng)列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)?
一個(gè)信號(hào)量的初始值只能設(shè)置一次,然后只能由P或v操作
由此可以看出,信號(hào)量機(jī)制必須有公共內(nèi)存,不能在分布式操作系統(tǒng)中使用,這是它最大的弱點(diǎn)。信號(hào)量機(jī)制功能強(qiáng)大,但信號(hào)量的操作比較分散,控制、讀、寫和維護(hù)都比較困難。增加了程序員的編碼負(fù)擔(dān);核心操作P-V分散在每個(gè)用戶程序的代碼中,不易控制和管理;一旦出錯(cuò),后果嚴(yán)重,不易發(fā)現(xiàn)和糾正。(b) 自旋鎖:自旋鎖是一種保護(hù)共享資源的鎖機(jī)制。如果調(diào)用者請(qǐng)求的資源被占用,也就是說(shuō),自旋鎖已經(jīng)被另一個(gè)執(zhí)行單元持有,調(diào)用者將在那里循環(huán)以查看自旋鎖是否已經(jīng)被持有和釋放。自旋鎖(Spin lock)是一種相對(duì)低級(jí)的保護(hù)數(shù)據(jù)結(jié)構(gòu)和代碼片段的原始方法,它可能會(huì)導(dǎo)致以下兩個(gè)問題:1。僵局;2。CPU資源占用過多。傳統(tǒng)的自旋鎖會(huì)因無(wú)序競(jìng)爭(zhēng)(c)管理而導(dǎo)致“公平”問題:信號(hào)量機(jī)制強(qiáng)大,但信號(hào)量操作分散,難以控制、讀寫和維護(hù)。因此,后來(lái)提出了一個(gè)集中式的同步過程tube進(jìn)程。其基本思想是將共享變量及其操作集中在一個(gè)模塊中,操作系統(tǒng)或并發(fā)程序由這些模塊組成。這樣,模塊之間的連接清晰,易于維護(hù)和修改,易于保證正確性。(d) 交會(huì):過程直接相互作用。(E) 分布式系統(tǒng):由于分布式操作系統(tǒng)中沒有公共內(nèi)存,所以所有參數(shù)都是值參數(shù),不能是指針。(f) 原語(yǔ)是一個(gè)不間斷的過程。
進(jìn)程同步有哪些方式?分別的含義?
父進(jìn)程首先關(guān)閉1,然后dup(FD)將FD重定向到當(dāng)前最小的文件描述符,即1。先占坑,吃完飯?jiān)偬?/p>
哇,我回來(lái)了
這主要是關(guān)于對(duì)DUP的理解,如圖所示:
讀取完par,使0和1不再是標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出。類似地,在子進(jìn)程中,相反的操作。這樣,父進(jìn)程就可以將文件描述符1發(fā)送到管道Chil,而子進(jìn)程則使用管道中的文件描述符0發(fā)送到Chil,這與Chil相同。但是,在將數(shù)據(jù)讀寫到管道之前,應(yīng)該關(guān)閉管道中未使用的端。否則,將發(fā)生錯(cuò)誤。我不知道具體原因。。。這樣,希望我能幫到你,哈哈
兩個(gè)或兩個(gè)以上的進(jìn)程不能同時(shí)進(jìn)入同一組共享變量的臨界區(qū)域,否則可能會(huì)發(fā)生與時(shí)間有關(guān)的錯(cuò)誤。這種現(xiàn)象稱為過程互斥。也就是說(shuō),一個(gè)進(jìn)程正在訪問關(guān)鍵資源,而另一個(gè)想要訪問該資源的進(jìn)程必須等待。
在多道程序設(shè)計(jì)環(huán)境中,存在關(guān)鍵資源,這些資源是指當(dāng)存在多個(gè)進(jìn)程時(shí)必須相互排斥的資源。也就是說(shuō),不允許多個(gè)進(jìn)程同時(shí)訪問,只有單個(gè)進(jìn)程可以訪問。我們把這些程序段稱為關(guān)鍵區(qū)域或關(guān)鍵段。這些細(xì)分市場(chǎng)的目的是有效防止競(jìng)爭(zhēng)環(huán)境,最大限度地利用共享數(shù)據(jù)。這些并發(fā)進(jìn)程必須有一個(gè)很好的解決方案來(lái)防止以下情況:多個(gè)進(jìn)程同時(shí)處于關(guān)鍵區(qū)域,關(guān)鍵區(qū)域外的進(jìn)程阻塞其他進(jìn)程,一些進(jìn)程在關(guān)鍵區(qū)域外無(wú)休止地等待。此外,這些方案不能對(duì)cpu的速度和數(shù)量做任何假設(shè)。只有滿足這些條件,才是好的解決辦法。
中文名
進(jìn)程互斥
條件1
空閑讓入
條件2
忙等待
條件3
有限等待