五月婷婷在线观看|国产成人精品3p人妻网站|日本老熟妇maturebbw|日韩 欧美 综合

新聞資訊

醫患求助系統廠家-程控交換軟件進程的同步

2023-10-20 12:37

            引入進程的程控交換軟件還應考慮進程的同步(Synchroniza-tion)和互斥(MutualExclusion)o各種程控交換系統由于中斷機理、調度策略、資源分配方式等方面的差異,對同步和互斥的要求和實現方式也會有所不同。例如,S1240系統考慮了對SSM(系統支援機)內的共享數據的可靠存取,設置了臨界區(CriticalRegion),并采用監控(Monitor)方式。原語ENTER_MONITOR(進入監控)可使運行進入監控方式,設置新的中斷屏蔽字,使所有可屏蔽中斷不能進入。原語EXIT一MONITOR(退出監控)則用來退出監控方式,恢復原有中斷屏蔽字。

DMS-100系統對進程的同步和互斥有較多的設施,以下作一介紹。

1.進程的同步

            在DMS—100系列中,同步是指對進程訪問共享數據和申請共享的系統資源的同步,設置了號志和標志兩種同步原語。

(1)號志

            DMS-100系統采用Dijkstra提出的號志概念,以保證對共享數據的有效存取。

①psema和vsema原語

            每個臨界區可具有相應的號志。所謂臨界區,是指在任一時刻只允許一個進程在執行的程序段,也可稱為互斥段。
            每個進程要進入某臨界區,必須先申請號志,調用過程psema:DCLpsemaPROC(sidsemaid usertypesemauser UPDATESsrcsemarc)

sid:與該臨界區對應的號志識別碼。

usertype:賦與用戶進程的訪問類別(讀或寫)。

src;指示號志是否可用的返回碼。

            當進程離開臨界區,要調用過程vsema以釋放號志:DCLvsemaPROC(sidsemaidUPDATESsrcsemarc)

sid:調用psema時所指定的號志識別碼。

src:返回碼。

②號志狀態

號志可具有以下3種狀態:

(a)idle(空閑)

            沒有進程在臨界區執行。

(b)readersin(讀)

            一個或多個進程在臨界區執行以讀出數據。
(c)writerin(寫)

            一個且只能有一個進程在臨界區執行以寫入數據,了解也要讀出數據。

③號志隊列

            每個號志具有相應的隊列,隊列中是等待進入臨界區的各個進程,采用先到來先服務(First一ComeFirst一Served一FCFS)的原則。當正進臨界區執行的進程調用了vsema后,可從隊列中取一個進程。可用時限來保證較短的等待時間,時限是從該進程排到隊列之首時才起算。如超過時限,則“殺死”遲遲不離開臨界區的進程,而使排在隊首的進程進入臨界區。

            要對數據寫入的進程在申請號志時,如果號志狀態為讀或寫,都不能進入臨界區而要排入號志隊列。要讀出數據的進程在申請號志時,號志狀態為空閑或讀狀態,隊首并無要寫入數據的進程在等待,則可進入臨界區。

在讀狀態時可設一計數器指示在臨界區內的進程數,每當一個進程調用vsema,則計數器減lo當計數器減到零,狀態改為空閑。

            (2)標志

            標志用來控制有限的系統資源(例如緩沖器)的分配和歸還。每種有限的資源具有對應的標志,標志中的計數器的初值為資源的數量,每當分配一個資源,標志計數器減,每當歸還一個資源,標志計數器增1。因此,標志計數器中反映了此刻可用的資源數。標志計數器還可以為負值,表明資源全忙時在等待分配資源的進程數。

在要求分配某種資源時,進程必須先作申請標志的操作,調用過程claimflag:DCLclaimflagPROC(flidflagid timeouttime UPDATESfireflagrc)

Hid:標志識別碼。

timeout:進程在隊列中等待分配資源的最大時間°

fire:返回碼。

            claimflag過程將首先檢查標志計數器。如計數器大于零,申請成功,將資源分配給進程,進程可繼續運行。如計數器小于或等于零,表示資源已全忙,進程被掛起而置于標志隊列之中。在兩種情況下都要將計數器減lo進程等待時長可用時限監視,時限從進程進入等待隊列開始起算。返回碼可反映申請成功與否等不同情況。

當進程歸還資源時,調用過程releaseflag,執行釋放標志的操作:DCLreleaseflagPROC(flidflagid UPDATESfireflagrc)

            releaseflag將計數器增1,如果有進程在等待隊列中,則可取出隊首的進程進行資源分配。

上一篇:ICU探視系統廠家-采用可變掃描周期時的BHCA值
返回
下一篇:醫院探視系統廠家-什么是呼叫對講