什麼是程序同步和互斥 ?
什麼是程序同步和互斥
互斥:是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。
同步:是指在互斥的基礎上(大多數情況),通過暢它機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源
計算機作業系統:什麼是程序同步
你好,那些作業系統的書籍都喜歡用這個同步的俗語,所以導致很多人不理解,我當時就是這樣,不過後來我問了一個資深的作業系統老師,她和我說程序同步其實好比就是一件事情必須先做什麼再做什麼,否則不能繼續下去,就比如有3個程序A,B,C,A是輸出程序,B是處理程序,C是輸出程序,假如A程序沒有輸入資料,那麼B程序就無法進行處理,只有A輸出了,B才能繼續,這就是程序同步,你這樣理解就可以了,望採納
什麼是程序間的同步與互斥?
互斥:是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。
同步:是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。在大多數情況下,同步已經實現了互斥,特別是所有寫入資源的情況必定是互斥的。少數情況是指可以允許多個訪問者同時訪問資源
什麼是程序的互斥和同步?
相互合作的兩個程序之間需要在某個(些)確定點協調它們的工作,一個程序到達了該點後,除非另一程序已經完成了某些操作,否則就不得不停下來,等待這些操作的完成。這就是程序間的同步。
兩個程序由於不能同時使用同一臨界資源,只能在一個程序使用完了,另一程序才能使用,這種現象稱為程序間的互斥。①同步的主要特徵是:一個程序在某一點上等待另一程序提供資訊,兩程序之間存在直接制約關係,其表現形式為程序—程序。②互斥的主要特徵是爭用資源,兩程序間存在間接制約關係,其表現形式是程序—資源—程序
什麼是程序的互斥和同步?
lz你好,
在作業系統中,有很多術語都是想通的,都是相似的,相近的。比如同步、非同步、並行、併發、互斥等等。對這類詞語,如果沒有同時出現,我們對它們最好的處理就是不去比較它們,因為很多都沒有可比性。
首先:互斥和同步如果是同時出現的話,那就是相反的,值得比較的兩個術語。
【互斥】:就是說兩個程序只能在某一時刻執行一個,這種結果可能是因為共同爭奪資源而產生的。舉個例子:假設把火車上的公共廁所看成一種臨界資源,而兩個乘客是兩個程序,我們就可以認為同時需要使用公共廁所的乘客是互斥的
【同步】:就是程序之間可以同時執行的,之間並不存在“利益衝突”,不競爭資源。大有“你走你的陽關道,我過我的獨木橋”之意,兩個程序互不干涉,互不影響。
說的很直白了,希望可以幫你o(∩_∩)o
什麼是程序同步?wait是如何實現程序同步的
我們把非同步環境下的一組併發程序因直接制約而互相傳送訊息而進行互相合作、互相等待,使得各程序按一定的速度執行的過程稱為程序間的同步。具有同步關係的一組併發程序稱為合作程序,合作程序間互相傳送的訊號稱為訊息或事件。 如果我們對一個訊息或事件賦以唯一的訊息名,則我們可用過程wait(訊息名)表示程序等待合作程序發來的訊息,而用過程signal(訊息名)表示向合作程序傳送訊息。
等待物件的同步鎖,需要獲得該物件的同步鎖才可以呼叫這個方法,否則後收到一個錯誤訊號,這個是執行時異常。呼叫這個方法後,就放棄了這個同步鎖了。如果不帶引數的wait方法就只有等別人喚醒了,如果帶一個引數的話就設定等待最長時間,過了這個時間即使沒有人喚醒這個執行緒也不再等待了。
什麼是程序的互斥什麼是程序的同步同步和互斥
兩個或兩個以上的程序,不能同時進入關於同一組共享變數的臨界區域,否則可能發生與時間有關的錯誤,這種現象被稱作程序互斥· 也就是說,一個程序正在訪問臨界資源,另一個要訪問該資源的程序必須等待。
在多道程式環境下,存在著臨界資源,它是指多程序存在時必須互斥訪問的資源。也就是某一時刻不允許多個程序同時訪問,只能單個程序的訪問。我們把這些程式的片段稱作臨界區或臨界段,它存在的目的是有效的防止競爭條件又能保證最大化使用共享資料。而這些併發程序必須有好的解決方案,才能防止出現以下情況:多個程序同時處於臨界區,臨界區外的程序阻塞其他的程序,有些程序在臨界區外無休止的等待。除此以外,這些方案還不能對CPU的速度和數目做出任何的假設。只有滿足了這些條件,才是一個好的解決方案。
中文名
程序互斥
準則1
空閒讓進
準則2
忙則等待
準則3
有限等待
作業系統程序同步的基本概念?
程序的同步與互斥
程序的同步與互斥是指程序在推進時的相互制約關係。在多道程式系統中,由於資源共享與程序合作,這種程序間的制約稱為可能。為了保證程序的正確執行以及相互合作的程序之間交換資訊,需要程序之間的通訊。程序之間的制約關係體現為:程序的同步和互斥。
·程序同步:它主要源於程序合作,是程序間共同完成一項任務時直接發生相互作用的關係。為程序之間的直接制約關係。在多道環境下,這種程序間在執行次序上的協調是必不可少的。
·程序互斥:它主要源於資源共享,是程序之間的間接制約關係。在多道系統中,每次只允許一個程序訪問的資源稱為臨界資源,程序互斥就是保證每次只有一個程序使用臨界資源。
臨界資源和臨界區:一次只允許一個程序使用的共享資源稱為臨界資源,如印表機、公共變數等;而在併發程序中與共享變數有關的程式段稱為臨界區。對臨償區的訪問必須是互斥進行。程序進入臨界區要滿足一定的條件,以保證臨界資源的安全使用,系統的正常執行,即對臨界區的管理就遵循以下三個原則:
(1)當有若干程序要求進入它們的臨界區時,應在有限時間內使一程序進入臨界區。換句話說,它們不應該相互等待而致使誰都不能進入。
(2)每次最多有一個程序處於臨界區內。
(3)程序在臨界區內逗留應在有限時間範圍內。
什麼是程序同步和死鎖
程序同步:我們把非同步環境下的一組併發程序因直接制約而互相傳送訊息而進行互相合作、互相等待,使得各程序按一定的速度執行的過程稱為程序間的同步。具有同步關係的一組併發程序稱為合作程序,合作程序間互相傳送的訊號稱為訊息或事件。 如果我們對一個訊息或事揣賦以唯一的訊息名,則我們可用過程 wait (訊息名) 表示程序等待合作程序發來的訊息,而用過程 signal (訊息名) 表示向合作程序傳送訊息。
程序死鎖: 如果多個程序同時佔有對方需要的資源而同時請求對方的資源,而它們在得到請求之前不會釋放所佔有的資源,那麼就會導致死鎖的發生,也就是程序不能實現同步。
程序/執行緒同步問題是什麼
多執行緒就象是人體一樣,一直在並行的做許多工作,例如,人可以同時呼吸,血液迴圈,消化食物的。多執行緒可以將一個程式劃分成多個任務,他們彼此獨立的工作,以方便有效的使用處理器和使用者的時間.這種比喻精闢,只要我們的機器資源夠用,就要儘量提高程式的執行速度,這樣能讓使用者感到舒服。
執行緒同步的方法:
wait():使一個執行緒處於等待狀態,並且釋放所持有的物件的lock。
sleep():使一個正在執行的執行緒處於睡眠狀態,是一個靜態方法,呼叫此方法要捕捉InterruptedException異常。
notify():喚醒一個處於等待狀態的執行緒,注意的是在呼叫此方法的時候,並不能確切的喚醒某一個等待狀態的執行緒,而是由JVM確定喚醒哪個執行緒,而且不是按優先順序。
Allnotity():喚醒所有處入等待狀態的執行緒,注意並不是給所有喚醒執行緒一個物件的鎖,而是讓它們競爭。