保持程序同步的幾種方法

2021-08-22 08:28:45 字數 706 閱讀 7827

1、訊號量

用於程序間傳遞訊號的乙個整數值。在訊號量上只有三種操作可以進行:初始化,p操作和v操作,這三種操作都是原子操作。

p操作(遞減操作)可以用於阻塞乙個程序,v操作(增加操作)可以用於解除阻塞乙個程序。

基本原理是兩個或多個程序可以通過簡單的訊號進行合作,乙個程序可以被迫在某一位置停止,直到它接收到乙個特定的訊號。該訊號即為訊號量s。

為通過訊號量s傳送訊號,程序可執行原語semsignal(s);為通過訊號量s接收訊號,程序可執行原語semwait(s);如果相應的訊號仍然沒有傳送,則程序被阻塞,直到傳送完為止。

可把訊號量視為乙個具有整數值的變數,在它之上定義三個操作:

2、管程

管程是由乙個或多個過程、乙個初始化序列和區域性資料組成的軟體模組,其主要特點如下:

管程通過使用條件變數提供對同步的支援,這些條件變數包含在管程中,並且只有在管程中才能被訪問。有兩個函式可以操作條件變數:

3、訊息傳遞

訊息傳遞的實際功能以一對原語的形式提供:

這是程序間程序訊息傳遞所需要的最小操作集。

乙個程序以訊息的形式給另乙個指定的目標程序傳送訊息;

程序通過執行receive原語接收訊息,receive原語中指明傳送訊息的源程序和訊息。

保持程序同步的方法有哪些?

1 同步和通訊的目的是一樣的,實現程序間資料共享,同步只是為了做到處理協同。2 windows 環境下常用的同步方式有 計時器 訊號量 事件 互斥鎖 3 在其他環境下程序同步的四種方法 1 臨界區 critical section 通過對多執行緒的序列化來訪問公共資源或一段 速度快,適合控制資料訪問...

程序同步的幾種方式

1 訊號量 用於程序間傳遞訊號的乙個整數值。在訊號量上只有三種操作可以進行 初始化,p操作和v操作,這三種操作都是原子操作。p操作 遞減操作 可以用於阻塞乙個程序,v操作 增加操作 可以用於解除阻塞乙個程序。基本原理是兩個或多個程序可以通過簡單的訊號進行合作,乙個程序可以被迫在某一位置停止,直到它接...

程序間同步的幾種方法

什麼是臨界區?每個程序中訪問臨界資源的那段程式稱為臨界區 臨界資源是一次僅允許乙個程序使用的共享資源 每次只准許乙個程序進入臨界區,進入後不允許其他程序進入。程序間同步 把非同步環境下的一組併發程序因直接制約而互相傳送訊息而進行互相合作 互相等待,使得各程序按一定的速度執行的過程稱為程序間的同步。實...