為什么要線程同步 請列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)?
請列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)?一個信號量的初始值只能設(shè)置一次,然后只能由P或v操作由此可以看出,信號量機(jī)制必須有公共內(nèi)存,不能在分布式操作系統(tǒng)中使用,這是它最大的弱點(diǎn)。信號量機(jī)制功能強(qiáng)大,
請列舉幾種進(jìn)程的同步機(jī)制,并比較其優(yōu)缺點(diǎn)?
一個信號量的初始值只能設(shè)置一次,然后只能由P或v操作
由此可以看出,信號量機(jī)制必須有公共內(nèi)存,不能在分布式操作系統(tǒng)中使用,這是它最大的弱點(diǎn)。信號量機(jī)制功能強(qiáng)大,但信號量的操作比較分散,控制、讀、寫和維護(hù)都比較困難。增加了程序員的編碼負(fù)擔(dān);核心操作P-V分散在每個用戶程序的代碼中,不易控制和管理;一旦出錯,后果嚴(yán)重,不易發(fā)現(xiàn)和糾正。(b) 自旋鎖:自旋鎖是一種保護(hù)共享資源的鎖機(jī)制。如果調(diào)用者請求的資源被占用,也就是說,自旋鎖已經(jīng)被另一個執(zhí)行單元持有,調(diào)用者將在那里循環(huán)以查看自旋鎖是否已經(jīng)被持有和釋放。自旋鎖(Spin lock)是一種相對低級的保護(hù)數(shù)據(jù)結(jié)構(gòu)和代碼片段的原始方法,它可能會導(dǎo)致以下兩個問題:1。僵局;2。CPU資源占用過多。傳統(tǒng)的自旋鎖會因無序競爭(c)管理而導(dǎo)致“公平”問題:信號量機(jī)制強(qiáng)大,但信號量操作分散,難以控制、讀寫和維護(hù)。因此,后來提出了一個集中式的同步過程tube進(jìn)程。其基本思想是將共享變量及其操作集中在一個模塊中,操作系統(tǒng)或并發(fā)程序由這些模塊組成。這樣,模塊之間的連接清晰,易于維護(hù)和修改,易于保證正確性。(d) 交會:過程直接相互作用。(E) 分布式系統(tǒng):由于分布式操作系統(tǒng)中沒有公共內(nèi)存,所以所有參數(shù)都是值參數(shù),不能是指針。(f) 原語是一個不間斷的過程。
什么是進(jìn)程同步進(jìn)程同步的概念?
進(jìn)程同步:協(xié)調(diào)并發(fā)進(jìn)程,以實現(xiàn)有效的資源共享和相互協(xié)作,使程序的執(zhí)行得以再現(xiàn)。
進(jìn)程同步與進(jìn)程互斥之間的區(qū)別?
互斥:這意味著同一時間只允許一個訪問者訪問一個資源,這是唯一和排他的。但是,mutex不能限制訪問者對資源的訪問順序,即訪問無序。同步:是指訪問者在互斥的基礎(chǔ)上(大多數(shù)情況下)通過其他機(jī)制有序地訪問資源。在大多數(shù)情況下,同步是互斥的,尤其是在寫入所有資源時。在少數(shù)情況下,可以允許多個訪問者同時訪問資源