專利名稱:多任務系統(tǒng)的排它控制方法
技術領域:
本發(fā)明涉及多任務系統(tǒng)的排它控制方法,該方法可適用于例如IP電話服務那樣的在1個服務提供服務器(交換服務器)中所容納的用戶非常多、用于對1個用戶建立服務的事件多樣且集中發(fā)生的加入者服務的服務提供服務器(交換服務器)。
背景技術:
在一般的非同步通信系統(tǒng)的服務器(例如,提供IP電話服務的交換服務器)中,對輸入的事件分配前后文,利用多線程(在本說明書把線程和進程一同稱為線程)的構造,實現(xiàn)了多樣且集中的事件的處理(例如,來自多個加入者的呼出和呼入以及其它的處理)。在對實現(xiàn)了加入者服務的服務對象等的上位資源進行訪問時,通過再次加入前后文,實施使用了mutex等鎖定基元的排它控制處理,而不破壞數(shù)據(jù)(例如參照,專利文獻1~專利文獻3、非專利文獻1、非專利文獻2)。
例如,即使是對加入者A的呼出,對于在加入者A與加入者B處于通話狀態(tài)時發(fā)生的呼出(事件X)和對未處于通話狀態(tài)的加入者A的呼出(事件Y)而言,處理和優(yōu)先度也是不同的,而且,根據(jù)加入者A是否簽定了持機等待服務的契約,呼出時(事件X-1、X-2)的處理和優(yōu)先度也不同,因而需要排它控制處理。
雖然事件的順序性可根據(jù)前后文的優(yōu)先度來實現(xiàn),但由于依賴于系統(tǒng),所以,在應用上通過構筑隊列排列來進行排序。通常,隊列長度的設定,要考慮事件集中,需要預先留出余量。
日本特開平9-026923號公報[專利文獻2]日本特開平9-044368號公報[專利文獻3]日本特開平9-101901號公報 www.hlla.is.tsukuba.ac.jp/~yas/sie/pdsoft-2000/2001/01-18/[非專利文獻2]www.valinux.co.jp/docs/pdf/VABF2003/VABF_T01.pdf在一元的mutex那樣的排它控制中,只是避免了保持了事件的前后文的相互之間的沖突,而保持有排它的其它事件的前后文在當前正在進行處理的前后文的處理結(jié)束之前進行待機,直到向服務對象進行事件傳達為止,耗費時間。因此,不能適用于要求服務的持續(xù)性和質(zhì)量的系統(tǒng)(例如IP電話系統(tǒng))的服務器等中。
用于保證順序性的隊列是一次排列,而且其隊列長度有限。因此,例如在多個服務對象被一齊生成,并發(fā)生了事件的情況下,將發(fā)生隊列溢出,事件丟失。
另一方面,雖然可考慮動態(tài)地生成/確保隊列排列的模式,但是在系統(tǒng)存儲器受限制的系統(tǒng)中,必須實施隊列大小的管理,存儲器管理部需要考慮服務對象的生成條件,不適合面向?qū)ο箝_發(fā)下的模式。如上所述,以與所提供的服務的特性和動作條件相適合的形式,預先決定隊列的構造配置是非常困難的。
另外,對于實施向隊列的事件輸入和從隊列的事件輸出的前后文而言,為了確保順序性,必須對1個隊列逐一地配置與該前后文相關的輸入事件和輸出事件。這在對集中發(fā)生的事件進行處理時,成為性能上的瓶頸。
并且,在從已經(jīng)排成隊列的事件隊列中刪除/變更給某個特定的對象的事件的情況下,在通常的隊列排列中,如果不從先頭實施線性檢索,則不能執(zhí)行。在事件集中發(fā)生的情況下,隊列長度也增大,不能保證實施線性檢索的處理時間。
因此,希望有一種多任務系統(tǒng)的排它控制方法,其適用于容納的用戶多、對同一用戶提供用于建立服務的事件多樣且集中發(fā)生的服務的服務器等。
發(fā)明內(nèi)容
本發(fā)明提供一種多任務系統(tǒng)的排它控制方法,單CPU根據(jù)在存儲器中展開的服務提供程序,對集中發(fā)生的事件一邊進行排它控制一邊執(zhí)行,其特征在于,(A)規(guī)定具有排它控制對象的排它組,該排它控制對象使向同一被提供者提供服務所需的1個或多個服務對象附屬于它,而且收納了上述服務對象,(B)根據(jù)執(zhí)行的緊急性,將各個事件分成優(yōu)先進行處理的優(yōu)先事件、和其它的非優(yōu)先事件,(C)上述各個服務對象分別具有收納與本對象相關的非優(yōu)先事件的非優(yōu)先事件隊列,(D)對排列在各上述服務對象的非優(yōu)先事件隊列中的、該排它組內(nèi)的全部非優(yōu)先事件建立鏈接,(E)上述排它控制對象具有收納優(yōu)先事件的優(yōu)先事件隊列,(F)上述排它控制對象在該排它組獲得了執(zhí)行權時,優(yōu)先于排列在建立了鏈接的各上述服務對象的非優(yōu)先事件隊列中的非優(yōu)先事件,執(zhí)行控制排列在優(yōu)先事件隊列中的優(yōu)先事件。
根據(jù)本發(fā)明,在對同一用戶(同一被提供者)提供用于建立服務的事件多樣且集中發(fā)生的服務時,能適當?shù)剡M行事件的排它控制。
圖1是本發(fā)明實施方式的每個排它組的事件的順序性的說明圖。
圖2是表示本發(fā)明實施方式的多任務處理裝置的功能性構造的說明圖。
圖3是表示本發(fā)明實施方式的非優(yōu)先事件之間的鏈接狀態(tài)例的說明圖。
圖4是本發(fā)明實施方式的優(yōu)先于非優(yōu)先事件來執(zhí)行優(yōu)先事件時的處理流程圖。
圖5是表示本發(fā)明實施方式的脫離時的處理的概念說明圖。
圖6是表示本發(fā)明實施方式的脫離時的處理的流程圖。
圖7是本發(fā)明實施方式的把給脫離對象的非優(yōu)先事件從隊列排列中刪除時的具體方法的說明圖。
圖8是表示本發(fā)明實施方式的排它組結(jié)合的概念說明圖(1)。
圖9是表示本發(fā)明實施方式的排它組結(jié)合的概念說明圖(2)。
圖10是表示本發(fā)明實施方式的結(jié)合排它組中的事件執(zhí)行控制的流程圖。
圖11是表示本發(fā)明實施方式的排它組分離的概念說明圖。
圖12是表示本發(fā)明實施方式的結(jié)合排它組內(nèi)的對象移動的概念說明圖。
圖中1-多呼叫處理線程處理裝置;10-硬件;20-通用多任務OS;21-核;22-TSS調(diào)度程序;30-呼叫處理事件引擎;31-呼叫處理事件調(diào)度程序;32-分組排它控制處理部;40-VoIP應用程序。
具體實施例方式
(A)實施方式以下,參照附圖,對本發(fā)明的多任務系統(tǒng)的排它控制方法的一個實施方式進行詳細說明。另外,在以下的說明中,作為具體的補充例,以設在IP電話系統(tǒng)中的呼叫代理(交換服務器)中的多呼叫處理任務系統(tǒng)為例。
(A-1)實施方式的技術思想的特征本實施方式的特征在于根據(jù)輸入到服務對象的事件的形態(tài),提供用于使隊列和前后文的配置最優(yōu)化的排它控制對象EXOB、和各個服務對象的基本類,由此實現(xiàn)對象的編組、在該組內(nèi)服務對象增加時的隊列長度的自然擴展、以及不需要鎖定處理的前后文的分配。
另外,本實施方式的特征還在于通過使事件隊列的排列與服務對象相結(jié)合,可立即發(fā)現(xiàn)給該對象的事件隊列。
(A-2)多任務處理裝置下面,以多呼叫處理任務處理裝置為例,對安裝了多任務系統(tǒng)的多任務處理裝置的結(jié)構進行說明。
多呼叫處理任務處理裝置,是應用于例如對來自IP電話機等的大量VoIP信號(例如,80萬路)進行處理的呼叫代理的裝置,其硬件與一般的呼叫代理相同。即,具有CPU、存儲器、內(nèi)置HDD等大容量存儲裝置、鍵盤、鼠標、顯示器、通信接口部等,CPU通過系統(tǒng)總線與存儲器連接,另外,通過系統(tǒng)總線和輸入輸出器件,與大容量存儲裝置、鍵盤、鼠標、顯示器、通信接口部等連接。
該多呼叫處理任務處理裝置應用了例如Linux、Windows(注冊商標)等通用多任務OS。通用多任務OS在核內(nèi)具有TSS調(diào)度程序。
如圖2所示,多呼叫處理任務處理裝置1除了具有通用多任務OS20中的核21內(nèi)的TSS調(diào)度程序22之外,還具有呼叫處理事件引擎30,該呼叫處理事件引擎30具有位于用戶層的調(diào)度程序功能(呼叫處理事件調(diào)度程序31)和排它控制功能(分組排它控制處理部32)。TSS調(diào)度程序22從調(diào)度程序功能面,通過事件引擎30,能夠?qū)⑴cVoIP應用程序40相關的線程作為處理對象。換言之,事件調(diào)度程序31是在核21的TSS調(diào)度程序22上動作的前后文。
在本實施方式的情況下,如后述的那樣,存在多個成為排它控制的單位的排它組,在核21的TSS調(diào)度程序22上動作的事件調(diào)度程序31用于決定將CPU的執(zhí)行權付與哪個排它組。另外,該決定由于不是本實施方式的特征,所以省略對它的說明(例如,可以應用日本特愿2004-379909號說明書以及附圖中記載的方法)。
分組排它控制處理部32針對各個排它組的每一個,管理事件的順序性,對于被付與了CPU的執(zhí)行權的排它組,對多個事件一邊進行排它控制,一邊執(zhí)行。
(A-3)每個排它組的事件的順序性下面,參照圖1,說明每個排它組的事件的順序性。這里,圖1是表示排它組中的對象與事件隊列的關系的說明圖。
排它組是成為排它控制的單位的對象的集合體。在是上述呼叫代理的情況下,各個排它組大體上與各個“呼叫”相對應。
如圖1所示,排它組EG由用于控制排它組EG內(nèi)的事件執(zhí)行的排它控制對象EXOB、和一個以上(圖1中表示了為4個的例子)的服務對象SEOB-1~SEOB-4構成。
圖1所示的排它組EG的例子是,4個服務對象SEOB-1~SEOB-4同屬于1個排它組EG,由排它控制對象EXOB進行事件執(zhí)行控制的例子。
圖1表示了呼叫代理中的排它組的例子,服務對象SEOB-1~SEOB-4分別是負責進行與呼出側(cè)的IP電話機的信號收發(fā)的“(呼出側(cè))資源對象”、負責呼叫處理序列的“呼叫控制對象EXOB”、負責進行3方通話服務和對轉(zhuǎn)送服務等的轉(zhuǎn)移處理等的“腳本對象(scenario object)”、和負責進行與呼入側(cè)的IP電話機的信號收發(fā)的“(呼入側(cè))資源對象”。例如,如果在未輸入呼入側(cè)電話號碼的狀態(tài)下,則不形成“(呼入側(cè))資源對象”,在輸入了呼入側(cè)電話號碼時,通過執(zhí)行與其對應的線程,而形成“(呼入側(cè))資源對象。在通話狀態(tài)下,如果呼出側(cè)或呼入側(cè)的IP電話機被掛機,則通過執(zhí)行與其對應的線程,把與被掛機的IP電話機有關的“資源對象”刪除,使之脫離。如上述那樣,也可增減一個排它組EG內(nèi)的服務對象SEOB。
排它控制對象EXOB對當前存在的服務對象SEOB-1~SEOB-4的列表信息LIS進行管理。
排它組EG具有由2種優(yōu)先度構成的事件隊列。即,具有“非優(yōu)先”事件隊列Q1(Q1-1~Q1-4)、和“優(yōu)先”事件隊列Q2。
“非優(yōu)先”事件隊列Q1是如來自外部的輸入輸出那樣的數(shù)量多、且被非優(yōu)先處理的事件(非優(yōu)先事件)EVN的隊列排列,該隊列Q1被配置在服務對象SEOB-1~SEOB-4中。非優(yōu)先事件EVN被排列在事件執(zhí)行對象的服務對象SEOB-1~SE0B-4的非優(yōu)先事件隊列Q1中。這里,把非優(yōu)先事件隊列Q1的隊列長度選定為,被認為在生成各個服務對象SEOB-1~SEOB-4的期間同時進行接收的非優(yōu)先事件EVN的最大數(shù)。因此,雖然各個服務對象SEOB-1~SEOB-4的特性不同,各個服務對象SEOB-1~SEOB-4中的必要的隊列長度不同,但都確保了各自所需的隊列長度。另外,當服務對象SEOB被重新生成,并被結(jié)合到組EG內(nèi)時,整個排它組EG的隊列長度伸長。
所發(fā)生的非優(yōu)先事件EVN,如上述那樣,被排列到執(zhí)行目標服務對象SEOB-1~SEOB-4的非優(yōu)先事件隊列Q1中,并且,鏈接到在排它組EG內(nèi)目前為止被排列在最后的非優(yōu)先事件EVN。
圖3是表示在排它組EG的非優(yōu)先事件隊列Q1之間的非優(yōu)先事件EVN的鏈接狀態(tài)的一例的說明圖。
首先,說明未發(fā)生非優(yōu)先事件EVN-5,只存在4個非優(yōu)先事件EVN-1~EVN-4的狀態(tài)。與服務對象SEOB-A有關的非優(yōu)先事件EVN-1和EVN-3,被排列在服務對象SEOB-A內(nèi)的非優(yōu)先事件隊列Q1-A中,與服務對象SEOB-B有關的非優(yōu)先事件EVN-2,被排列在服務對象SEOB-B內(nèi)的非優(yōu)先事件隊列Q1-B中,與服務對象SEOB-C有關的非優(yōu)先事件EVN-4,被排列在服務對象SEOB-C內(nèi)的非優(yōu)先事件隊列Q1-C中。這4個非優(yōu)先事件EVN-1~EVN-4按照其生成順序,建立鏈接。即,從非優(yōu)先事件EVN-1向非優(yōu)先事件EVN-2建立鏈接,從非優(yōu)先事件EVN-2向非優(yōu)先事件EVN-3建立鏈接,從非優(yōu)先事件EVN-3向非優(yōu)先事件EVN-4建立鏈接,由此,規(guī)定了非優(yōu)先事件的處理順序。
處理順序為先頭(第1)的非優(yōu)先事件EVN-1的位置信息STA、和處理順序為最后的非優(yōu)先事件EVN-4的位置信息END,如圖1所示,由排它控制對象EXOB管理。鏈接的先頭位置信息STA在把非優(yōu)先事件EVN從該對象中解列出來并執(zhí)行時使用。圖3表示以下情況作為先頭位置信息STA,存儲與先頭的非優(yōu)先事件EVN-1有關的服務對象SEOB-A的ID,作為最后位置信息END,存儲與最后的非優(yōu)先事件EVN-4有關的服務對象SEOB-C的ID。由于在規(guī)定了服務對象SEOB后,先頭或最后的非優(yōu)先事件EVN由其內(nèi)部的非優(yōu)先事件隊列Q1唯一地決定,所以可應用圖3那樣的存儲方法。
假設在排它組EG中,在存在4個非優(yōu)先事件EVN-1~EVN-4的狀態(tài)下,發(fā)生了新的非優(yōu)先事件EVN-5。該非優(yōu)先事件EVN-5被排列在與該非優(yōu)先事件EVN-5相關的服務對象SEOB-C內(nèi)的非優(yōu)先事件隊列Q1-C中,并且鏈接至到目前為止最后的非優(yōu)先事件EVN-4。另外,最后位置信息END被更新到新的非優(yōu)先事件EVN-5的位置。
也可以考慮不是在每個服務對象SEOB中設置非優(yōu)先事件隊列Q1(圖1中的Q1-1~Q1-4、在圖3中的Q1-A~Q1-B),而在整個排它組EG中設置1個非優(yōu)先事件隊列。但是,在每個服務對象SEOB中設置非優(yōu)先事件隊列Q1的本實施方式的方法,能夠根據(jù)對象的生成/脫離,動態(tài)地切換非優(yōu)先事件的順序性,并且能夠根據(jù)需要動態(tài)地切換整個排它組EG的隊列長度。
“優(yōu)先”事件隊列Q2,是在排它組EG內(nèi)的對象之間的通信中所發(fā)生的、事件數(shù)量少且優(yōu)先處理的事件(優(yōu)先事件)EVP的隊列排列,其在排它組EG內(nèi)配置1個,并且配置在排它控制對象EXOB中。由于優(yōu)先事件隊列Q2被立即執(zhí)行,所以除了從1個事件發(fā)生多個優(yōu)先事件EVP的情況之外,只有1個優(yōu)先事件EVP發(fā)生,因此,通過對每個排它組EG設定隊列長度,可將存儲器資源抑制到最低限度。
(A-4)優(yōu)先事件和非優(yōu)先事件的執(zhí)行下面,對如上述那樣排列的優(yōu)先事件和非優(yōu)先事件的執(zhí)行進行說明。
優(yōu)先事件EVP的執(zhí)行,優(yōu)先于排它組EG內(nèi)的各個服務對象SEOB所具有的非優(yōu)先事件EVN的執(zhí)行。例如,在從排它組EG內(nèi)的服務對象SEOB-A向服務對象SEOB-B發(fā)送了事件的情況下,該事件作為優(yōu)先事件EVP被排列在排它控制對象EXOB內(nèi)的優(yōu)先事件隊列Q2中。在實施了在服務對象EXOB-A中進行的處理后,前后文返回到排它控制對象EXOB,接著,排它控制對象EXOB從優(yōu)先事件隊列Q2中抽出服務對象SEOB-B的事件,把事件傳遞給服務對象SEOB-B,實施處理。此時,在發(fā)生了服務對象SEOB-A的優(yōu)先事件EVP的處理中,被輸入到服務對象SEOB-B的來自外部的非優(yōu)先事件EVN,雖然被立即排列在服務對象SEOB-B內(nèi)的非優(yōu)先事件隊列Q1-B中,但與排它控制對象EXOB內(nèi)的優(yōu)先事件隊列Q2為疏結(jié)合,在優(yōu)先事件的處理結(jié)束后執(zhí)行。
圖4是在優(yōu)先于非優(yōu)先事件EVN來執(zhí)行優(yōu)先事件EVP時的處理流程圖。另外,由排它控制對象EXOB控制優(yōu)先事件EVP和非優(yōu)先事件EVN的執(zhí)行。
排它控制對象EXOB首先在排它控制對象EXOB所保有的優(yōu)先事件隊列Q2中確認在該排它組EG內(nèi)是否存在優(yōu)先事件EVP(步驟100)。如果在優(yōu)先事件隊列Q2中排列有優(yōu)先事件EVP,則把先頭的隊列事件解列(步驟101),把優(yōu)先事件EVP交給進行事件執(zhí)行的服務對象,執(zhí)行事件處理(步驟102)。
在結(jié)束了這樣的事件處理,并且返回到排它控制對象EXOB的控制后,排它控制對象EXOB再次查看本對象所保有的優(yōu)先事件隊列Q2,確認優(yōu)先事件EVP的有無(步驟103)。如果有優(yōu)先事件EVP,則排它控制對象EXOB反復執(zhí)行與上述同樣的處理(步驟101、102)。
在優(yōu)先事件隊列Q2中從當初就不存在優(yōu)先事件EVP的情況下(步驟100中的否定結(jié)果)、或已執(zhí)行了全部與優(yōu)先事件隊列Q2中存在的優(yōu)先事件EVP相關的處理,在優(yōu)先事件隊列Q2中已沒有優(yōu)先事件EVP的情況下(步驟103中的否定結(jié)果),排它控制對象EXOB進行非優(yōu)先事件EVN的處理。
在非優(yōu)先事件EVN的處理中,首先排它控制對象EXOB確認非優(yōu)先事件EVN的存在(步驟104)。如果非優(yōu)先事件EVN是按照執(zhí)行順序鏈接的,并且在排它控制對象EXOB所保持的非優(yōu)先事件鏈接的先頭信息STA中記述有有效的信息,則排它控制對象EXOB判斷為存在非優(yōu)先事件EVN。
排它控制對象EXOB根據(jù)非優(yōu)先事件鏈接的先頭信息STA,從排列有先頭非優(yōu)先事件的服務對象SEOB的非優(yōu)先事件隊列Q1中解列出非優(yōu)先事件EVN(步驟105),使該服務對象SEOB執(zhí)行該非優(yōu)先事件EVN的處理(步驟106)。另外,在解列時,還執(zhí)行非優(yōu)先事件鏈接的先頭信息STA的改寫等。
在不存在非優(yōu)先事件EVN的情況下(步驟104中的否定結(jié)果)、和非優(yōu)先事件EVN的處理結(jié)束而控制返回到排它控制對象EXOB的情況下,排它控制對象EXOB釋放執(zhí)行權(步驟107)。換言之,把執(zhí)行權交給其它的前后文(例如其它的排它組)。
在執(zhí)行權被返還給該排它組時,排它控制對象EXOB轉(zhuǎn)到上述的步驟102,確認在優(yōu)先事件隊列Q2中是否存在事件EVP。
如上所述,通過1次的執(zhí)行權的付與,如果存在優(yōu)先事件EVP,則進行所存在的全部的優(yōu)先事件EVP的處理,在不存在優(yōu)先事件EVP的情況下和已執(zhí)行完的情況下,進行一個非優(yōu)先事件EVN的處理。即,總是先執(zhí)行優(yōu)先事件EVP的處理,在不存在優(yōu)先事件EVP時和已執(zhí)行完時,執(zhí)行非優(yōu)先事件EVN的處理。
(A-5)從排它組的服務對象的脫離是服務對象SEOB根據(jù)服務上的條件從排它組EG的結(jié)構中脫離的情況。
每當基于服務形態(tài)的對象群完成了一個服務后,就需要根據(jù)在服務的實施過程中所產(chǎn)生的新的請求,變更其形態(tài),有時某個服務對象會脫離。例如,在與加入者A和加入者B的通話相關的排它組EG中,在加入者A在通話中的狀態(tài)下掛機那樣的情況下,負責進行與加入者A的信號收發(fā)的資源對象SEOB-1(參照圖1)會從排它組中脫離。
圖5是表示脫離時的處理的概念說明圖,圖6是表示脫離時的處理的流程圖。這里,是在排它控制對象EXOB中的脫離時使用的線程的控制下,執(zhí)行脫離時的處理。
在脫離時,脫離的對象SEOB-1把輸入到自身的非優(yōu)先事件EVN從非優(yōu)先事件隊列Q1的排列中刪除(步驟200)。然后,從排它控制對象EXOB內(nèi)的優(yōu)先事件隊列Q2的排列中,刪除與脫離的對象SEOB-1相關的優(yōu)先事件EVP(步驟201)。在如上述那樣從隊列Q1、Q2的排列中刪除了針對脫離的對象SEOB-1的所有的事件EVN、EVP后,從排它控制對象EXOB內(nèi)的對象列表LIS中刪除該服務對象SEOB-1(步驟202),由此,實現(xiàn)了服務對象SEOB-1從排它組EG的脫離。
另外,服務對象SEOB的追加處理,只是向排它控制對象EXOB內(nèi)的對象列表LIS的寫入,在追加后,立即根據(jù)需要,把事件EVN、EVP寫入隊列Q1、Q2的排列中。
這里,在從非優(yōu)先事件隊列Q1的排列中進行刪除的處理中,執(zhí)行剩余的非優(yōu)先事件EVN的鏈接的重新建立、和先頭位置信息STA和最終位置信息END的更新等。
圖7是在把給脫離的對象的非優(yōu)先事件從隊列排列中刪除時的具體方法的說明圖。
圖7表示了對象SEOB-A從存在2個對象SEOB-A和SEOB-B的狀態(tài)脫離的情況。各個對象的非優(yōu)先事件隊列Q1-A、Q1-B的非優(yōu)先事件QA-1~QA-3、QB-1~QB-3,為了管理順序性而被進行鏈管理,其中保持有前后的非優(yōu)先事件的位置信息。對象非優(yōu)先事件的刪除通過置換其前后的非優(yōu)先事件的信息來實現(xiàn)。
首先,關注脫離對象SEOB-A的先頭的非優(yōu)先事件QA-1,通過將寫入有該先頭非優(yōu)先事件QA-1和之前的非優(yōu)先事件的非優(yōu)先事件QB-1、與寫入有該先頭非優(yōu)先事件QA-1和之后的非優(yōu)先事件的非優(yōu)先事件QA-2直接連結(jié),使先頭非優(yōu)先事件QA-1脫離。
然后,關注脫離SEOB-A的成為新的先頭非優(yōu)先事件的非優(yōu)先事件QA-2,通過使寫入有該非優(yōu)先事件QA-2和之前的非優(yōu)先事件的非優(yōu)先事件QB-1、與寫入有該非優(yōu)先事件QA-2和之后的非優(yōu)先事件的非優(yōu)先事件QB-2直接連結(jié),使先頭非優(yōu)先事件QA-2脫離。
以下,反復執(zhí)行同樣的不可分割的處理,直到脫離對象SEOB-A的非優(yōu)先事件EVN全部消失為止。
(A-6)排它組的結(jié)合和分離下面,對排它組EG的結(jié)合和分離進行說明。首先,對排它組EG的結(jié)合進行說明。圖8和圖9是表示排它組結(jié)合的概念圖。
排它組的結(jié)合是指,實現(xiàn)各自不同的服務的多個排它組,為了實現(xiàn)新的服務而作為1個排它組進行事件控制。例如,有與加入者A和加入者B的通話服務相關的第1排它組,還有加入者C剛剛開始了呼出處理之后的第2排它組,然后,在加入者C輸入的呼出目標的電話號碼是加入者A的電話號碼、且加入者A簽定了持機等待服務的情況下,第1和第2排它組被結(jié)合。
如圖8所示,排它組EG的結(jié)合使得1個排它組EG-A的排它控制對象EXOB-1成為母排它控制對象,使另一個排它組EG-B的排它控制對象EXOB-2作為子排它控制對象,附屬于母排它組EG-A(=EG-C)。
還能夠使已經(jīng)結(jié)合的排它組與已經(jīng)結(jié)合的排它組結(jié)合、以及使已經(jīng)結(jié)合的排它組與其它的排它組結(jié)合。例如,如果是已經(jīng)結(jié)合的排它組與已經(jīng)結(jié)合的排它組的結(jié)合,則如圖9所示,把一個已經(jīng)結(jié)合的排它組EG-A的最下位層面的子排它控制對象EXOB-1作為母排它控制對象,把一個已經(jīng)結(jié)合的排它組EG-B的母排它控制對象EXOB-2作為子排它控制對象來結(jié)合,構成新的結(jié)合排它組EG-C。
關于排它組的結(jié)合的必要性、以及把哪個作為母排它控制對象、和把哪個作為子排它控制對象,是在處理事件的規(guī)定對象中預先規(guī)定的。
被結(jié)合了的子排它控制對象成為與該母排它控制對象的下屬的服務對象同樣的對象。在圖8的例子中,在結(jié)合排它組EG-C的母排它控制對象EXOB-1內(nèi)的對象列表LIS中,與服務對象SEOB-a、SEOB-b一同,還列出了子排它控制對象EXOB-2的識別信息。
被結(jié)合成組的排它組中的事件執(zhí)行方式,與1個排它組的事件執(zhí)行方式大致相同,被結(jié)合的排它組內(nèi)的事件執(zhí)行控制是按照從母排它控制對象到子排它控制對象的順序進行分配。
在圖8中,在排它組EG-C中的事件控制是從母排它控制對象EXOB-1分給子排它控制對象EXOB-2。因此,對子排它控制對象EXOB-2的下屬的服務對象SEOB-c、SEOB-d的事件執(zhí)行順序是,作為由排它控制對象EXOB-1分配的排它控制對象EXOB-2中的事件執(zhí)行,進行對所屬對象SEOB-c、SEOB-d的事件控制。因此,被結(jié)合的排它組EG-C內(nèi)的事件執(zhí)行順序也得以保持。
圖10是表示進行了組結(jié)合的排它組中的事件執(zhí)行控制的流程圖,對于與上述的圖4中的相同或?qū)奶幚聿捎孟嗤姆栠M行表示。
在圖10中,排它控制對象(母排它控制對象)在不存在非優(yōu)先事件EVN的情況下(步驟104中的否定結(jié)果)、和非優(yōu)先事件EVN的處理結(jié)束而控制返回到本排它控制對象的情況下,判斷是否結(jié)合了子排它控制對象(步驟110)。在結(jié)合了子排它控制對象的情況下,把執(zhí)行權交給下屬的子排它控制對象(步驟111)。此時,下屬的子排它控制對象進行與圖10所示的相同的事件執(zhí)行控制。母排它控制對象在不存在子排它控制對象的情況下(步驟110中的否定結(jié)果)、和子排它控制對象的處理結(jié)束而控制返回到本排它控制對象的情況下,釋放執(zhí)行權(步驟107)。換言之,把執(zhí)行權交給其它前后文(例如其它的排它組)。
下面,對排它組EG的分離進行說明。圖11是表示結(jié)合排它組的分離的概念圖。
排它組的分離是從被結(jié)合成1個的排它組內(nèi),把與子排它控制對象相關的排它組從與母排它控制對象相關的組中分離出來,成為由子排它控制對象自己分配執(zhí)行的與母排它控制對象相當?shù)倪M行事件控制的狀態(tài)。雖然母排它控制對象與當初相比,控制目標減少了,但繼續(xù)進行實效性的控制。例如在從加入者A、B、C的3方通話狀態(tài)向一個加入者掛機、留下與已掛機的加入者的切斷處理那樣的狀態(tài)變化時,需要進行排它組的分離。
排它組的分離的必要性、和在何處分離,是在處理事件的規(guī)定對象中被預先規(guī)定的。
圖11是把進行了排它組結(jié)合的排它組EG-D在排它控制對象EXOB-1與排它控制對象EXOB-2之間進行分離的例子。如果在排它控制對象EXOB-1與排它控制對象EXOB-2之間進行分離,則排它控制對象EXOB-1形成排它組EG-E,排它控制對象EXOB-2與下屬的排它控制對象EXOB-3、4一同形成排它組EG-F。
分離的排它組EG-E的排它控制對象EXOB-1繼續(xù)作為母排它控制對象執(zhí)行組內(nèi)的事件控制,排它組EG-F的排它控制對象EXOB-2成為母排它控制對象,執(zhí)行組內(nèi)的事件控制。
例如,從分離前的結(jié)合排它組EG-D的母排它控制對象EXOB-1內(nèi)的對象列表LIS中,除去子排它控制對象EXOB-2的識別信息,由此進行排它組EG-E的分離。
(A-7)排它組內(nèi)的服務對象的移動下面,對結(jié)合排它組內(nèi)的服務對象的移動進行說明。圖12是結(jié)合排它組內(nèi)的對象移動的概念圖。
圖12表示附屬于母排它控制對象EXOB-1的服務對象SEOB-b成為附屬于子排它控制對象EXOB-2的服務對象的例子。例如,在持機待機服務中,在切換了待機中的加入者的情況下,并行地執(zhí)行從母到子的移動、和從子到母的移動。
關于結(jié)合排它組內(nèi)的服務對象的移動的必要性、和移動哪個,在處理事件的規(guī)定的對象中被預先規(guī)定。
附屬于母排它控制對象EXOB-1的對象SEOB-b可以向同一排它組EG-A內(nèi)的子排它控制對象EXOB-2的部分排它組移動。在對象SEOB-b移動時,在對象SEOB-b的非優(yōu)先事件EVN已被排列的情況下,與該事件一同移動,附屬于子排它控制對象EXOB-2,事件執(zhí)行順序為最后。另外,也適當?shù)貓?zhí)行留在母排它控制對象EXOB-1中的其它服務對象的非優(yōu)先事件的鏈接的重新建立。
在圖12所示的移動中,從母排它控制對象EXOB-1內(nèi)的對象列表LIS中,除去服務對象SEOB-b,在子排它控制對象EXOB-2的對象列表LIS中追加服務對象SEOB-b。
另外,在圖12中,雖然示出了服務對象從母排它控制對象向子排它控制對象的移動,但也有服務對象從子排它控制對象向母排它控制對象移動的情況。
(A-8)實施方式的效果根據(jù)上述的實施方式,可達到以下的效果。
(A-8-1)根據(jù)上述的實施方式,由于被請求的事件在排它組內(nèi)被分成優(yōu)先事件和非優(yōu)先事件進行管理,從而可嚴格地保持事件的順序性。
另外,即使被收納在同一排它控制對象中的服務對象的數(shù)量隨服務的階段、狀態(tài)而發(fā)生變化,但是,由于針對各個服務對象的每一個,設定了隊列長度,整個隊列長度動態(tài)性地變化,所以不需要預先確定隊列排列,從而可節(jié)約存儲器資源,并且也可應對集中發(fā)生的事件。
并且,由于排它控制對象不知道隊列長度,而是在各個服務對象側(cè)了解該隊列長度,所以可應對多種多樣的服務。
而且,由于在存儲器方面,也是在不同的對象中配置優(yōu)先事件、非優(yōu)先事件(的隊列),形成疏結(jié)合,所以,即使利用其它的前后文分別實施隊列操作,也不會發(fā)生前后文競爭,從而可實現(xiàn)高速的隊列排列操作。
另外,在服務過渡期或?qū)嵤┻^程中,也能夠容易地應對變更構成服務的對象那樣的實時服務。
另外,根據(jù)上述的實施方式,由于實現(xiàn)了根據(jù)對象指向而生成的能夠在各個對象之間進行事件通信的對象假定網(wǎng)絡,同時,在用戶處理部中不需要單獨考慮事件的排它和順序,所以,可構成一貫的對象模型,保證穩(wěn)定的性能品質(zhì)。
(A-8-2)根據(jù)上述的實施方式,由于在服務對象從排它組脫離時,該對象內(nèi)配置有隊列排列,所以只進行該對象內(nèi)的隊列排列的隊列操作,即可完成必要的動作。
由此,為了從隊列排列中找出對應的事件隊列,不需要對整個排它組的隊列排列進行線性檢索,即可立即實施對應的事件隊列操作,從而可實施高速的隊列排列操作。
在排它組的結(jié)合中,通過把排它組(子排它組)作為1個服務對象,能夠在母排它控制對象的控制下進行優(yōu)先事件、非優(yōu)先事件的順序控制。
(A-8-3)根據(jù)上述實施方式,通過進行排它組的結(jié)合、分離,例如即使是伴隨有多個輸入輸出的服務,也能夠?qū)斎胼敵龅呐潘刂七M行一元化管理,從而能夠應對復雜的服務。
(A-8-4)根據(jù)上述實施方式,例如在具有多個輸入輸出的服務中,能夠把1個輸入輸出向其它的服務轉(zhuǎn)移。
(B)其它實施方式本發(fā)明的多任務處理裝置和方法,可適用于上述實施方式所說明的那樣的、對象為單個或形成了組、通過向?qū)ο筮M行事件的輸入輸出來實現(xiàn)服務的系統(tǒng)。
例如,也可以應用在媒體網(wǎng)關控制器(MGC)等電話交換裝置中,另外也可以應用在例如Web應用服務器等中。
權利要求
1.一種多任務系統(tǒng)的排它控制方法,單CPU根據(jù)在存儲器中展開的服務提供程序,對集中發(fā)生的事件一邊進行排它控制一邊執(zhí)行,其特征在于,規(guī)定具有排它控制對象的排它組,該排它控制對象使向同一被提供者提供服務所需的1個或多個服務對象附屬于它,而且收納了上述服務對象;根據(jù)執(zhí)行的緊急性,將各個事件分成優(yōu)先進行處理的優(yōu)先事件、和其它的非優(yōu)先事件;各上述服務對象分別具有收納與本對象相關的非優(yōu)先事件的非優(yōu)先事件隊列;對排列在各上述服務對象的非優(yōu)先事件隊列中的、該排它組內(nèi)的全部非優(yōu)先事件建立鏈接;上述排它控制對象具有收納優(yōu)先事件的優(yōu)先事件隊列;上述排它控制對象在該排它組獲得了執(zhí)行權時,優(yōu)先于排列在建立了鏈接的各上述服務對象的非優(yōu)先事件隊列中的非優(yōu)先事件,執(zhí)行控制排列在優(yōu)先事件隊列中的優(yōu)先事件。
2.根據(jù)權利要求1所述的多任務系統(tǒng)的排它控制方法,其特征在于,根據(jù)服務提供的形態(tài)、階段,在排它組內(nèi)追加服務對象,或者使規(guī)定的服務對象從排它組內(nèi)脫離,在脫離時,重新建立非優(yōu)先事件的鏈接。
3.根據(jù)權利要求1或2所述的多任務系統(tǒng)的排它控制方法,其特征在于,根據(jù)服務提供的形態(tài)、階段,將多個排它組結(jié)合起來,使得各上述排它組的上述排它控制對象成為母子關系,并且各上述排它控制對象維持上述服務對象的收納狀態(tài)。
4.根據(jù)權利要求3所述的多任務系統(tǒng)的排它控制方法,其特征在于,母上述排它控制對象,把子上述排它控制對象作為與自己收納的服務對象同等的排它控制對象。
5.根據(jù)權利要求3或4所述的多任務系統(tǒng)的排它控制方法,其特征在于,根據(jù)服務提供的形態(tài)、階段,通過割斷2個上述排它控制對象之間的母子關系,使結(jié)合多個上述排它組而形成的排它組分離。
6.根據(jù)權利要求3或4所述的多任務系統(tǒng)的排它控制方法,其特征在于,根據(jù)服務提供的形態(tài)、階段,在結(jié)合多個上述排它組而形成的排它組內(nèi),變更規(guī)定的上述服務對象的收納地的上述排它控制對象。
全文摘要
本發(fā)明提供一種多任務系統(tǒng)的排它控制方法,該方法在向同一個用戶提供云集發(fā)生多種用于建立服務的事件的服務時,可適當?shù)剡M行事件的排它控制。本發(fā)明規(guī)定了具有在服務提供中所需的1個或多個服務對象、和收納了服務對象的排它控制對象的排它組。把各個事件分成優(yōu)先事件和非優(yōu)先事件。各個服務對象分別具有收納與本對象相關的非優(yōu)先事件的隊列。對排列在多個隊列中的排它組內(nèi)的全部非優(yōu)先事件建立鏈接。排它控制對象具有收納優(yōu)先事件的隊列。排它控制對象優(yōu)先于建立了鏈接的非優(yōu)先事件,執(zhí)行控制被排列的優(yōu)先事件。
文檔編號H04M7/00GK101030150SQ200610168089
公開日2007年9月5日 申請日期2006年12月18日 優(yōu)先權日2006年3月3日
發(fā)明者小池友岳, 太田峰博 申請人:沖電氣工業(yè)株式會社