單道程序順序執(zhí)行特征 進(jìn)程同步與進(jìn)程互斥之間的區(qū)別?
進(jìn)程同步與進(jìn)程互斥之間的區(qū)別?互斥:這意味著同一時(shí)間只有一個(gè)訪問者可以訪問一個(gè)資源,這是唯一和排他的。但是,mutex不能限制訪問者對資源的訪問順序,即訪問無序。同步:是指訪問者在互斥的基礎(chǔ)上(大多數(shù)
進(jìn)程同步與進(jìn)程互斥之間的區(qū)別?
互斥:這意味著同一時(shí)間只有一個(gè)訪問者可以訪問一個(gè)資源,這是唯一和排他的。但是,mutex不能限制訪問者對資源的訪問順序,即訪問無序。同步:是指訪問者在互斥的基礎(chǔ)上(大多數(shù)情況下)通過其他機(jī)制有序地訪問資源。在大多數(shù)情況下,同步是互斥的,尤其是在寫入所有資源時(shí)。在少數(shù)情況下,可以允許多個(gè)訪問者同時(shí)訪問資源
兩個(gè)或多個(gè)進(jìn)程,它們不能同時(shí)進(jìn)入同一組共享變量的關(guān)鍵區(qū)域。否則,可能會(huì)發(fā)生與時(shí)間相關(guān)的錯(cuò)誤。這種現(xiàn)象稱為進(jìn)程互斥。換句話說,一個(gè)進(jìn)程正在訪問一個(gè)關(guān)鍵資源,而另一個(gè)想要訪問該資源的進(jìn)程必須等待。
在多道程序設(shè)計(jì)環(huán)境中,存在關(guān)鍵資源,這些資源是指當(dāng)存在多個(gè)進(jìn)程時(shí)必須相互排斥的資源。也就是說,不允許多個(gè)進(jìn)程同時(shí)訪問,只有單個(gè)進(jìn)程可以訪問。我們把這些程序段稱為關(guān)鍵區(qū)域或關(guān)鍵段。這些細(xì)分市場的目的是有效防止競爭環(huán)境,最大限度地利用共享數(shù)據(jù)。這些并發(fā)進(jìn)程必須有一個(gè)很好的解決方案來防止以下情況:多個(gè)進(jìn)程同時(shí)處于關(guān)鍵區(qū)域,關(guān)鍵區(qū)域外的進(jìn)程阻塞其他進(jìn)程,一些進(jìn)程在關(guān)鍵區(qū)域外無休止地等待。此外,這些方案不能對cpu的速度和數(shù)量做任何假設(shè)。只有滿足這些條件,才是好的解決辦法。
A:流程之間有兩種約束:直接約束和間接約束。直接約束(同步)是由進(jìn)程間的合作引起的,而間接約束(互斥)是由進(jìn)程間的關(guān)鍵資源共享引起的。(1) 一些學(xué)生去圖書館借書是一種間接的限制,其中圖書是至關(guān)重要的資源。(2) 兩隊(duì)之間的籃球比賽是一種間接制約,籃球是其中的關(guān)鍵資源。(3) 裝配線生產(chǎn)的每一道工序都受到直接的制約,每一道工序都需要相互配合。每個(gè)過程的開始取決于前一個(gè)過程的完成。(4) 商品生產(chǎn)和社會(huì)消費(fèi)是直接的制約因素,二者也需要相互配合:商品只有生產(chǎn)出來后才能消費(fèi);商品只有消費(fèi)出來后才能再生產(chǎn)。