程序同步與非同步

2022-08-03 05:45:06 字數 518 閱讀 2175

過程的執行有一定的順序,也就是說必須一步一步執行。舉個例子,在socket中,伺服器accept()等待客戶端的連線,這裡的等待實際上就是阻塞了,在客戶端連線之前,該過程不會往下執行。

在同步阻塞中,應用程式執行到需要io操作,會執行乙個系統呼叫,然後講控制權交給核心,此時應用程式便發生的堵塞。核心得到控制權後,開始執行這個系統呼叫,執行完畢後會向應用程式返回響應,應用程式得到響應後,就不再阻塞,往下執行。

程序的同步也可以設定非阻塞模型,也就是在執行乙個系統呼叫時,核心立即返回響應,但這個響應並不代表io操作成功,知識為了讓應用程式往下執行,想知道io操作是否成功還需要應用程式自己去訪問核心。

非同步通訊是指,應用程式在需要io操作時,會執行乙個系統呼叫,但是它並不等待核心返回響應,就直接往下執行了。注意非同步與同步非阻塞模型的差別,非同步是不等待核心返回響應;而同步非阻塞是有等待核心返回響應的,只不過該響應不代表io操作成功。

同步:在需要io操作時,等待系統響應

非同步:在需要io操作時,不等待系統響應

程序同步與非同步 軟體實現(演算法)

一,初步設想 讓兩個程序實現同步與互斥訪問臨界資源。偽 turn 0 1 p0while turn 1 do 臨界區 turn 1 p1while turn 0 do 臨界區 turn 1 問題 turn 為0時,程序p0在進入臨界區前 在臨界區外 如果發生失敗,則會影響其他程序的執行。同理,反過來...

程序同步及非同步的概念

所謂同步,就是在發出乙個功能呼叫時,在沒有得到結果之前,該呼叫就不返回。也就是必須一件一件事做,等前一件做完了才能做下一件事.就像早上起床後,先洗涮,然後才能吃飯,不能在洗涮沒有完成時,就開始吃飯.按照這個定義,其實絕大多數函式都是同步呼叫 例如sin,isdigit等 但是一般而言,我們在說同步 ...

程序通訊與程序同步

多個程序可以共享系統中的各種資源,但其中許多資源一次只能為乙個程序使用,我們把一次僅允許乙個程序使用的資源稱為臨界資源。許多物理裝置都屬於臨界資源,如印表機等 對臨界資源的訪問必須互斥進行,在每個程序中,訪問臨界資源的那段 稱為臨界區。程序通訊與同步的目的主要有下面 1 資料傳輸 乙個程序需要將他的...