多任务系统的排它控制方法

文档序号:7974916阅读:295来源:国知局
专利名称:多任务系统的排它控制方法
技术领域
本发明涉及多任务系统的排它控制方法,该方法可适用于例如IP电话服务那样的在1个服务提供服务器(交换服务器)中所容纳的用户非常多、用于对1个用户建立服务的事件多样且集中发生的加入者服务的服务提供服务器(交换服务器)。
背景技术
在一般的非同步通信系统的服务器(例如,提供IP电话服务的交换服务器)中,对输入的事件分配前后文,利用多线程(在本说明书把线程和进程一同称为线程)的构造,实现了多样且集中的事件的处理(例如,来自多个加入者的呼出和呼入以及其它的处理)。在对实现了加入者服务的服务对象等的上位资源进行访问时,通过再次加入前后文,实施使用了mutex等锁定基元的排它控制处理,而不破坏数据(例如参照,专利文献1~专利文献3、非专利文献1、非专利文献2)。
例如,即使是对加入者A的呼出,对于在加入者A与加入者B处于通话状态时发生的呼出(事件X)和对未处于通话状态的加入者A的呼出(事件Y)而言,处理和优先度也是不同的,而且,根据加入者A是否签定了持机等待服务的契约,呼出时(事件X-1、X-2)的处理和优先度也不同,因而需要排它控制处理。
虽然事件的顺序性可根据前后文的优先度来实现,但由于依赖于系统,所以,在应用上通过构筑队列排列来进行排序。通常,队列长度的设定,要考虑事件集中,需要预先留出余量。
日本特开平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那样的排它控制中,只是避免了保持了事件的前后文的相互之间的冲突,而保持有排它的其它事件的前后文在当前正在进行处理的前后文的处理结束之前进行待机,直到向服务对象进行事件传达为止,耗费时间。因此,不能适用于要求服务的持续性和质量的系统(例如IP电话系统)的服务器等中。
用于保证顺序性的队列是一次排列,而且其队列长度有限。因此,例如在多个服务对象被一齐生成,并发生了事件的情况下,将发生队列溢出,事件丢失。
另一方面,虽然可考虑动态地生成/确保队列排列的模式,但是在系统存储器受限制的系统中,必须实施队列大小的管理,存储器管理部需要考虑服务对象的生成条件,不适合面向对象开发下的模式。如上所述,以与所提供的服务的特性和动作条件相适合的形式,预先决定队列的构造配置是非常困难的。
另外,对于实施向队列的事件输入和从队列的事件输出的前后文而言,为了确保顺序性,必须对1个队列逐一地配置与该前后文相关的输入事件和输出事件。这在对集中发生的事件进行处理时,成为性能上的瓶颈。
并且,在从已经排成队列的事件队列中删除/变更给某个特定的对象的事件的情况下,在通常的队列排列中,如果不从先头实施线性检索,则不能执行。在事件集中发生的情况下,队列长度也增大,不能保证实施线性检索的处理时间。
因此,希望有一种多任务系统的排它控制方法,其适用于容纳的用户多、对同一用户提供用于建立服务的事件多样且集中发生的服务的服务器等。

发明内容
本发明提供一种多任务系统的排它控制方法,单CPU根据在存储器中展开的服务提供程序,对集中发生的事件一边进行排它控制一边执行,其特征在于,(A)规定具有排它控制对象的排它组,该排它控制对象使向同一被提供者提供服务所需的1个或多个服务对象附属于它,而且收纳了上述服务对象,(B)根据执行的紧急性,将各个事件分成优先进行处理的优先事件、和其它的非优先事件,(C)上述各个服务对象分别具有收纳与本对象相关的非优先事件的非优先事件队列,(D)对排列在各上述服务对象的非优先事件队列中的、该排它组内的全部非优先事件建立链接,(E)上述排它控制对象具有收纳优先事件的优先事件队列,(F)上述排它控制对象在该排它组获得了执行权时,优先于排列在建立了链接的各上述服务对象的非优先事件队列中的非优先事件,执行控制排列在优先事件队列中的优先事件。
根据本发明,在对同一用户(同一被提供者)提供用于建立服务的事件多样且集中发生的服务时,能适当地进行事件的排它控制。


图1是本发明实施方式的每个排它组的事件的顺序性的说明图。
图2是表示本发明实施方式的多任务处理装置的功能性构造的说明图。
图3是表示本发明实施方式的非优先事件之间的链接状态例的说明图。
图4是本发明实施方式的优先于非优先事件来执行优先事件时的处理流程图。
图5是表示本发明实施方式的脱离时的处理的概念说明图。
图6是表示本发明实施方式的脱离时的处理的流程图。
图7是本发明实施方式的把给脱离对象的非优先事件从队列排列中删除时的具体方法的说明图。
图8是表示本发明实施方式的排它组结合的概念说明图(1)。
图9是表示本发明实施方式的排它组结合的概念说明图(2)。
图10是表示本发明实施方式的结合排它组中的事件执行控制的流程图。
图11是表示本发明实施方式的排它组分离的概念说明图。
图12是表示本发明实施方式的结合排它组内的对象移动的概念说明图。
图中1-多呼叫处理线程处理装置;10-硬件;20-通用多任务OS;21-核;22-TSS调度程序;30-呼叫处理事件引擎;31-呼叫处理事件调度程序;32-分组排它控制处理部;40-VoIP应用程序。
具体实施例方式
(A)实施方式以下,参照附图,对本发明的多任务系统的排它控制方法的一个实施方式进行详细说明。另外,在以下的说明中,作为具体的补充例,以设在IP电话系统中的呼叫代理(交换服务器)中的多呼叫处理任务系统为例。
(A-1)实施方式的技术思想的特征本实施方式的特征在于根据输入到服务对象的事件的形态,提供用于使队列和前后文的配置最优化的排它控制对象EXOB、和各个服务对象的基本类,由此实现对象的编组、在该组内服务对象增加时的队列长度的自然扩展、以及不需要锁定处理的前后文的分配。
另外,本实施方式的特征还在于通过使事件队列的排列与服务对象相结合,可立即发现给该对象的事件队列。
(A-2)多任务处理装置下面,以多呼叫处理任务处理装置为例,对安装了多任务系统的多任务处理装置的结构进行说明。
多呼叫处理任务处理装置,是应用于例如对来自IP电话机等的大量VoIP信号(例如,80万路)进行处理的呼叫代理的装置,其硬件与一般的呼叫代理相同。即,具有CPU、存储器、内置HDD等大容量存储装置、键盘、鼠标、显示器、通信接口部等,CPU通过系统总线与存储器连接,另外,通过系统总线和输入输出器件,与大容量存储装置、键盘、鼠标、显示器、通信接口部等连接。
该多呼叫处理任务处理装置应用了例如Linux、Windows(注册商标)等通用多任务OS。通用多任务OS在核内具有TSS调度程序。
如图2所示,多呼叫处理任务处理装置1除了具有通用多任务OS20中的核21内的TSS调度程序22之外,还具有呼叫处理事件引擎30,该呼叫处理事件引擎30具有位于用户层的调度程序功能(呼叫处理事件调度程序31)和排它控制功能(分组排它控制处理部32)。TSS调度程序22从调度程序功能面,通过事件引擎30,能够将与VoIP应用程序40相关的线程作为处理对象。换言之,事件调度程序31是在核21的TSS调度程序22上动作的前后文。
在本实施方式的情况下,如后述的那样,存在多个成为排它控制的单位的排它组,在核21的TSS调度程序22上动作的事件调度程序31用于决定将CPU的执行权付与哪个排它组。另外,该决定由于不是本实施方式的特征,所以省略对它的说明(例如,可以应用日本特愿2004-379909号说明书以及附图中记载的方法)。
分组排它控制处理部32针对各个排它组的每一个,管理事件的顺序性,对于被付与了CPU的执行权的排它组,对多个事件一边进行排它控制,一边执行。
(A-3)每个排它组的事件的顺序性下面,参照图1,说明每个排它组的事件的顺序性。这里,图1是表示排它组中的对象与事件队列的关系的说明图。
排它组是成为排它控制的单位的对象的集合体。在是上述呼叫代理的情况下,各个排它组大体上与各个“呼叫”相对应。
如图1所示,排它组EG由用于控制排它组EG内的事件执行的排它控制对象EXOB、和一个以上(图1中表示了为4个的例子)的服务对象SEOB-1~SEOB-4构成。
图1所示的排它组EG的例子是,4个服务对象SEOB-1~SEOB-4同属于1个排它组EG,由排它控制对象EXOB进行事件执行控制的例子。
图1表示了呼叫代理中的排它组的例子,服务对象SEOB-1~SEOB-4分别是负责进行与呼出侧的IP电话机的信号收发的“(呼出侧)资源对象”、负责呼叫处理序列的“呼叫控制对象EXOB”、负责进行3方通话服务和对转送服务等的转移处理等的“脚本对象(scenario object)”、和负责进行与呼入侧的IP电话机的信号收发的“(呼入侧)资源对象”。例如,如果在未输入呼入侧电话号码的状态下,则不形成“(呼入侧)资源对象”,在输入了呼入侧电话号码时,通过执行与其对应的线程,而形成“(呼入侧)资源对象。在通话状态下,如果呼出侧或呼入侧的IP电话机被挂机,则通过执行与其对应的线程,把与被挂机的IP电话机有关的“资源对象”删除,使之脱离。如上述那样,也可增减一个排它组EG内的服务对象SEOB。
排它控制对象EXOB对当前存在的服务对象SEOB-1~SEOB-4的列表信息LIS进行管理。
排它组EG具有由2种优先度构成的事件队列。即,具有“非优先”事件队列Q1(Q1-1~Q1-4)、和“优先”事件队列Q2。
“非优先”事件队列Q1是如来自外部的输入输出那样的数量多、且被非优先处理的事件(非优先事件)EVN的队列排列,该队列Q1被配置在服务对象SEOB-1~SEOB-4中。非优先事件EVN被排列在事件执行对象的服务对象SEOB-1~SE0B-4的非优先事件队列Q1中。这里,把非优先事件队列Q1的队列长度选定为,被认为在生成各个服务对象SEOB-1~SEOB-4的期间同时进行接收的非优先事件EVN的最大数。因此,虽然各个服务对象SEOB-1~SEOB-4的特性不同,各个服务对象SEOB-1~SEOB-4中的必要的队列长度不同,但都确保了各自所需的队列长度。另外,当服务对象SEOB被重新生成,并被结合到组EG内时,整个排它组EG的队列长度伸长。
所发生的非优先事件EVN,如上述那样,被排列到执行目标服务对象SEOB-1~SEOB-4的非优先事件队列Q1中,并且,链接到在排它组EG内目前为止被排列在最后的非优先事件EVN。
图3是表示在排它组EG的非优先事件队列Q1之间的非优先事件EVN的链接状态的一例的说明图。
首先,说明未发生非优先事件EVN-5,只存在4个非优先事件EVN-1~EVN-4的状态。与服务对象SEOB-A有关的非优先事件EVN-1和EVN-3,被排列在服务对象SEOB-A内的非优先事件队列Q1-A中,与服务对象SEOB-B有关的非优先事件EVN-2,被排列在服务对象SEOB-B内的非优先事件队列Q1-B中,与服务对象SEOB-C有关的非优先事件EVN-4,被排列在服务对象SEOB-C内的非优先事件队列Q1-C中。这4个非优先事件EVN-1~EVN-4按照其生成顺序,建立链接。即,从非优先事件EVN-1向非优先事件EVN-2建立链接,从非优先事件EVN-2向非优先事件EVN-3建立链接,从非优先事件EVN-3向非优先事件EVN-4建立链接,由此,规定了非优先事件的处理顺序。
处理顺序为先头(第1)的非优先事件EVN-1的位置信息STA、和处理顺序为最后的非优先事件EVN-4的位置信息END,如图1所示,由排它控制对象EXOB管理。链接的先头位置信息STA在把非优先事件EVN从该对象中解列出来并执行时使用。图3表示以下情况作为先头位置信息STA,存储与先头的非优先事件EVN-1有关的服务对象SEOB-A的ID,作为最后位置信息END,存储与最后的非优先事件EVN-4有关的服务对象SEOB-C的ID。由于在规定了服务对象SEOB后,先头或最后的非优先事件EVN由其内部的非优先事件队列Q1唯一地决定,所以可应用图3那样的存储方法。
假设在排它组EG中,在存在4个非优先事件EVN-1~EVN-4的状态下,发生了新的非优先事件EVN-5。该非优先事件EVN-5被排列在与该非优先事件EVN-5相关的服务对象SEOB-C内的非优先事件队列Q1-C中,并且链接至到目前为止最后的非优先事件EVN-4。另外,最后位置信息END被更新到新的非优先事件EVN-5的位置。
也可以考虑不是在每个服务对象SEOB中设置非优先事件队列Q1(图1中的Q1-1~Q1-4、在图3中的Q1-A~Q1-B),而在整个排它组EG中设置1个非优先事件队列。但是,在每个服务对象SEOB中设置非优先事件队列Q1的本实施方式的方法,能够根据对象的生成/脱离,动态地切换非优先事件的顺序性,并且能够根据需要动态地切换整个排它组EG的队列长度。
“优先”事件队列Q2,是在排它组EG内的对象之间的通信中所发生的、事件数量少且优先处理的事件(优先事件)EVP的队列排列,其在排它组EG内配置1个,并且配置在排它控制对象EXOB中。由于优先事件队列Q2被立即执行,所以除了从1个事件发生多个优先事件EVP的情况之外,只有1个优先事件EVP发生,因此,通过对每个排它组EG设定队列长度,可将存储器资源抑制到最低限度。
(A-4)优先事件和非优先事件的执行下面,对如上述那样排列的优先事件和非优先事件的执行进行说明。
优先事件EVP的执行,优先于排它组EG内的各个服务对象SEOB所具有的非优先事件EVN的执行。例如,在从排它组EG内的服务对象SEOB-A向服务对象SEOB-B发送了事件的情况下,该事件作为优先事件EVP被排列在排它控制对象EXOB内的优先事件队列Q2中。在实施了在服务对象EXOB-A中进行的处理后,前后文返回到排它控制对象EXOB,接着,排它控制对象EXOB从优先事件队列Q2中抽出服务对象SEOB-B的事件,把事件传递给服务对象SEOB-B,实施处理。此时,在发生了服务对象SEOB-A的优先事件EVP的处理中,被输入到服务对象SEOB-B的来自外部的非优先事件EVN,虽然被立即排列在服务对象SEOB-B内的非优先事件队列Q1-B中,但与排它控制对象EXOB内的优先事件队列Q2为疏结合,在优先事件的处理结束后执行。
图4是在优先于非优先事件EVN来执行优先事件EVP时的处理流程图。另外,由排它控制对象EXOB控制优先事件EVP和非优先事件EVN的执行。
排它控制对象EXOB首先在排它控制对象EXOB所保有的优先事件队列Q2中确认在该排它组EG内是否存在优先事件EVP(步骤100)。如果在优先事件队列Q2中排列有优先事件EVP,则把先头的队列事件解列(步骤101),把优先事件EVP交给进行事件执行的服务对象,执行事件处理(步骤102)。
在结束了这样的事件处理,并且返回到排它控制对象EXOB的控制后,排它控制对象EXOB再次查看本对象所保有的优先事件队列Q2,确认优先事件EVP的有无(步骤103)。如果有优先事件EVP,则排它控制对象EXOB反复执行与上述同样的处理(步骤101、102)。
在优先事件队列Q2中从当初就不存在优先事件EVP的情况下(步骤100中的否定结果)、或已执行了全部与优先事件队列Q2中存在的优先事件EVP相关的处理,在优先事件队列Q2中已没有优先事件EVP的情况下(步骤103中的否定结果),排它控制对象EXOB进行非优先事件EVN的处理。
在非优先事件EVN的处理中,首先排它控制对象EXOB确认非优先事件EVN的存在(步骤104)。如果非优先事件EVN是按照执行顺序链接的,并且在排它控制对象EXOB所保持的非优先事件链接的先头信息STA中记述有有效的信息,则排它控制对象EXOB判断为存在非优先事件EVN。
排它控制对象EXOB根据非优先事件链接的先头信息STA,从排列有先头非优先事件的服务对象SEOB的非优先事件队列Q1中解列出非优先事件EVN(步骤105),使该服务对象SEOB执行该非优先事件EVN的处理(步骤106)。另外,在解列时,还执行非优先事件链接的先头信息STA的改写等。
在不存在非优先事件EVN的情况下(步骤104中的否定结果)、和非优先事件EVN的处理结束而控制返回到排它控制对象EXOB的情况下,排它控制对象EXOB释放执行权(步骤107)。换言之,把执行权交给其它的前后文(例如其它的排它组)。
在执行权被返还给该排它组时,排它控制对象EXOB转到上述的步骤102,确认在优先事件队列Q2中是否存在事件EVP。
如上所述,通过1次的执行权的付与,如果存在优先事件EVP,则进行所存在的全部的优先事件EVP的处理,在不存在优先事件EVP的情况下和已执行完的情况下,进行一个非优先事件EVN的处理。即,总是先执行优先事件EVP的处理,在不存在优先事件EVP时和已执行完时,执行非优先事件EVN的处理。
(A-5)从排它组的服务对象的脱离是服务对象SEOB根据服务上的条件从排它组EG的结构中脱离的情况。
每当基于服务形态的对象群完成了一个服务后,就需要根据在服务的实施过程中所产生的新的请求,变更其形态,有时某个服务对象会脱离。例如,在与加入者A和加入者B的通话相关的排它组EG中,在加入者A在通话中的状态下挂机那样的情况下,负责进行与加入者A的信号收发的资源对象SEOB-1(参照图1)会从排它组中脱离。
图5是表示脱离时的处理的概念说明图,图6是表示脱离时的处理的流程图。这里,是在排它控制对象EXOB中的脱离时使用的线程的控制下,执行脱离时的处理。
在脱离时,脱离的对象SEOB-1把输入到自身的非优先事件EVN从非优先事件队列Q1的排列中删除(步骤200)。然后,从排它控制对象EXOB内的优先事件队列Q2的排列中,删除与脱离的对象SEOB-1相关的优先事件EVP(步骤201)。在如上述那样从队列Q1、Q2的排列中删除了针对脱离的对象SEOB-1的所有的事件EVN、EVP后,从排它控制对象EXOB内的对象列表LIS中删除该服务对象SEOB-1(步骤202),由此,实现了服务对象SEOB-1从排它组EG的脱离。
另外,服务对象SEOB的追加处理,只是向排它控制对象EXOB内的对象列表LIS的写入,在追加后,立即根据需要,把事件EVN、EVP写入队列Q1、Q2的排列中。
这里,在从非优先事件队列Q1的排列中进行删除的处理中,执行剩余的非优先事件EVN的链接的重新建立、和先头位置信息STA和最终位置信息END的更新等。
图7是在把给脱离的对象的非优先事件从队列排列中删除时的具体方法的说明图。
图7表示了对象SEOB-A从存在2个对象SEOB-A和SEOB-B的状态脱离的情况。各个对象的非优先事件队列Q1-A、Q1-B的非优先事件QA-1~QA-3、QB-1~QB-3,为了管理顺序性而被进行链管理,其中保持有前后的非优先事件的位置信息。对象非优先事件的删除通过置换其前后的非优先事件的信息来实现。
首先,关注脱离对象SEOB-A的先头的非优先事件QA-1,通过将写入有该先头非优先事件QA-1和之前的非优先事件的非优先事件QB-1、与写入有该先头非优先事件QA-1和之后的非优先事件的非优先事件QA-2直接连结,使先头非优先事件QA-1脱离。
然后,关注脱离SEOB-A的成为新的先头非优先事件的非优先事件QA-2,通过使写入有该非优先事件QA-2和之前的非优先事件的非优先事件QB-1、与写入有该非优先事件QA-2和之后的非优先事件的非优先事件QB-2直接连结,使先头非优先事件QA-2脱离。
以下,反复执行同样的不可分割的处理,直到脱离对象SEOB-A的非优先事件EVN全部消失为止。
(A-6)排它组的结合和分离下面,对排它组EG的结合和分离进行说明。首先,对排它组EG的结合进行说明。图8和图9是表示排它组结合的概念图。
排它组的结合是指,实现各自不同的服务的多个排它组,为了实现新的服务而作为1个排它组进行事件控制。例如,有与加入者A和加入者B的通话服务相关的第1排它组,还有加入者C刚刚开始了呼出处理之后的第2排它组,然后,在加入者C输入的呼出目标的电话号码是加入者A的电话号码、且加入者A签定了持机等待服务的情况下,第1和第2排它组被结合。
如图8所示,排它组EG的结合使得1个排它组EG-A的排它控制对象EXOB-1成为母排它控制对象,使另一个排它组EG-B的排它控制对象EXOB-2作为子排它控制对象,附属于母排它组EG-A(=EG-C)。
还能够使已经结合的排它组与已经结合的排它组结合、以及使已经结合的排它组与其它的排它组结合。例如,如果是已经结合的排它组与已经结合的排它组的结合,则如图9所示,把一个已经结合的排它组EG-A的最下位层面的子排它控制对象EXOB-1作为母排它控制对象,把一个已经结合的排它组EG-B的母排它控制对象EXOB-2作为子排它控制对象来结合,构成新的结合排它组EG-C。
关于排它组的结合的必要性、以及把哪个作为母排它控制对象、和把哪个作为子排它控制对象,是在处理事件的规定对象中预先规定的。
被结合了的子排它控制对象成为与该母排它控制对象的下属的服务对象同样的对象。在图8的例子中,在结合排它组EG-C的母排它控制对象EXOB-1内的对象列表LIS中,与服务对象SEOB-a、SEOB-b一同,还列出了子排它控制对象EXOB-2的识别信息。
被结合成组的排它组中的事件执行方式,与1个排它组的事件执行方式大致相同,被结合的排它组内的事件执行控制是按照从母排它控制对象到子排它控制对象的顺序进行分配。
在图8中,在排它组EG-C中的事件控制是从母排它控制对象EXOB-1分给子排它控制对象EXOB-2。因此,对子排它控制对象EXOB-2的下属的服务对象SEOB-c、SEOB-d的事件执行顺序是,作为由排它控制对象EXOB-1分配的排它控制对象EXOB-2中的事件执行,进行对所属对象SEOB-c、SEOB-d的事件控制。因此,被结合的排它组EG-C内的事件执行顺序也得以保持。
图10是表示进行了组结合的排它组中的事件执行控制的流程图,对于与上述的图4中的相同或对应的处理采用相同的符号进行表示。
在图10中,排它控制对象(母排它控制对象)在不存在非优先事件EVN的情况下(步骤104中的否定结果)、和非优先事件EVN的处理结束而控制返回到本排它控制对象的情况下,判断是否结合了子排它控制对象(步骤110)。在结合了子排它控制对象的情况下,把执行权交给下属的子排它控制对象(步骤111)。此时,下属的子排它控制对象进行与图10所示的相同的事件执行控制。母排它控制对象在不存在子排它控制对象的情况下(步骤110中的否定结果)、和子排它控制对象的处理结束而控制返回到本排它控制对象的情况下,释放执行权(步骤107)。换言之,把执行权交给其它前后文(例如其它的排它组)。
下面,对排它组EG的分离进行说明。图11是表示结合排它组的分离的概念图。
排它组的分离是从被结合成1个的排它组内,把与子排它控制对象相关的排它组从与母排它控制对象相关的组中分离出来,成为由子排它控制对象自己分配执行的与母排它控制对象相当的进行事件控制的状态。虽然母排它控制对象与当初相比,控制目标减少了,但继续进行实效性的控制。例如在从加入者A、B、C的3方通话状态向一个加入者挂机、留下与已挂机的加入者的切断处理那样的状态变化时,需要进行排它组的分离。
排它组的分离的必要性、和在何处分离,是在处理事件的规定对象中被预先规定的。
图11是把进行了排它组结合的排它组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继续作为母排它控制对象执行组内的事件控制,排它组EG-F的排它控制对象EXOB-2成为母排它控制对象,执行组内的事件控制。
例如,从分离前的结合排它组EG-D的母排它控制对象EXOB-1内的对象列表LIS中,除去子排它控制对象EXOB-2的识别信息,由此进行排它组EG-E的分离。
(A-7)排它组内的服务对象的移动下面,对结合排它组内的服务对象的移动进行说明。图12是结合排它组内的对象移动的概念图。
图12表示附属于母排它控制对象EXOB-1的服务对象SEOB-b成为附属于子排它控制对象EXOB-2的服务对象的例子。例如,在持机待机服务中,在切换了待机中的加入者的情况下,并行地执行从母到子的移动、和从子到母的移动。
关于结合排它组内的服务对象的移动的必要性、和移动哪个,在处理事件的规定的对象中被预先规定。
附属于母排它控制对象EXOB-1的对象SEOB-b可以向同一排它组EG-A内的子排它控制对象EXOB-2的部分排它组移动。在对象SEOB-b移动时,在对象SEOB-b的非优先事件EVN已被排列的情况下,与该事件一同移动,附属于子排它控制对象EXOB-2,事件执行顺序为最后。另外,也适当地执行留在母排它控制对象EXOB-1中的其它服务对象的非优先事件的链接的重新建立。
在图12所示的移动中,从母排它控制对象EXOB-1内的对象列表LIS中,除去服务对象SEOB-b,在子排它控制对象EXOB-2的对象列表LIS中追加服务对象SEOB-b。
另外,在图12中,虽然示出了服务对象从母排它控制对象向子排它控制对象的移动,但也有服务对象从子排它控制对象向母排它控制对象移动的情况。
(A-8)实施方式的效果根据上述的实施方式,可达到以下的效果。
(A-8-1)根据上述的实施方式,由于被请求的事件在排它组内被分成优先事件和非优先事件进行管理,从而可严格地保持事件的顺序性。
另外,即使被收纳在同一排它控制对象中的服务对象的数量随服务的阶段、状态而发生变化,但是,由于针对各个服务对象的每一个,设定了队列长度,整个队列长度动态性地变化,所以不需要预先确定队列排列,从而可节约存储器资源,并且也可应对集中发生的事件。
并且,由于排它控制对象不知道队列长度,而是在各个服务对象侧了解该队列长度,所以可应对多种多样的服务。
而且,由于在存储器方面,也是在不同的对象中配置优先事件、非优先事件(的队列),形成疏结合,所以,即使利用其它的前后文分别实施队列操作,也不会发生前后文竞争,从而可实现高速的队列排列操作。
另外,在服务过渡期或实施过程中,也能够容易地应对变更构成服务的对象那样的实时服务。
另外,根据上述的实施方式,由于实现了根据对象指向而生成的能够在各个对象之间进行事件通信的对象假定网络,同时,在用户处理部中不需要单独考虑事件的排它和顺序,所以,可构成一贯的对象模型,保证稳定的性能品质。
(A-8-2)根据上述的实施方式,由于在服务对象从排它组脱离时,该对象内配置有队列排列,所以只进行该对象内的队列排列的队列操作,即可完成必要的动作。
由此,为了从队列排列中找出对应的事件队列,不需要对整个排它组的队列排列进行线性检索,即可立即实施对应的事件队列操作,从而可实施高速的队列排列操作。
在排它组的结合中,通过把排它组(子排它组)作为1个服务对象,能够在母排它控制对象的控制下进行优先事件、非优先事件的顺序控制。
(A-8-3)根据上述实施方式,通过进行排它组的结合、分离,例如即使是伴随有多个输入输出的服务,也能够对输入输出的排它控制进行一元化管理,从而能够应对复杂的服务。
(A-8-4)根据上述实施方式,例如在具有多个输入输出的服务中,能够把1个输入输出向其它的服务转移。
(B)其它实施方式本发明的多任务处理装置和方法,可适用于上述实施方式所说明的那样的、对象为单个或形成了组、通过向对象进行事件的输入输出来实现服务的系统。
例如,也可以应用在媒体网关控制器(MGC)等电话交换装置中,另外也可以应用在例如Web应用服务器等中。
权利要求
1.一种多任务系统的排它控制方法,单CPU根据在存储器中展开的服务提供程序,对集中发生的事件一边进行排它控制一边执行,其特征在于,规定具有排它控制对象的排它组,该排它控制对象使向同一被提供者提供服务所需的1个或多个服务对象附属于它,而且收纳了上述服务对象;根据执行的紧急性,将各个事件分成优先进行处理的优先事件、和其它的非优先事件;各上述服务对象分别具有收纳与本对象相关的非优先事件的非优先事件队列;对排列在各上述服务对象的非优先事件队列中的、该排它组内的全部非优先事件建立链接;上述排它控制对象具有收纳优先事件的优先事件队列;上述排它控制对象在该排它组获得了执行权时,优先于排列在建立了链接的各上述服务对象的非优先事件队列中的非优先事件,执行控制排列在优先事件队列中的优先事件。
2.根据权利要求1所述的多任务系统的排它控制方法,其特征在于,根据服务提供的形态、阶段,在排它组内追加服务对象,或者使规定的服务对象从排它组内脱离,在脱离时,重新建立非优先事件的链接。
3.根据权利要求1或2所述的多任务系统的排它控制方法,其特征在于,根据服务提供的形态、阶段,将多个排它组结合起来,使得各上述排它组的上述排它控制对象成为母子关系,并且各上述排它控制对象维持上述服务对象的收纳状态。
4.根据权利要求3所述的多任务系统的排它控制方法,其特征在于,母上述排它控制对象,把子上述排它控制对象作为与自己收纳的服务对象同等的排它控制对象。
5.根据权利要求3或4所述的多任务系统的排它控制方法,其特征在于,根据服务提供的形态、阶段,通过割断2个上述排它控制对象之间的母子关系,使结合多个上述排它组而形成的排它组分离。
6.根据权利要求3或4所述的多任务系统的排它控制方法,其特征在于,根据服务提供的形态、阶段,在结合多个上述排它组而形成的排它组内,变更规定的上述服务对象的收纳地的上述排它控制对象。
全文摘要
本发明提供一种多任务系统的排它控制方法,该方法在向同一个用户提供云集发生多种用于建立服务的事件的服务时,可适当地进行事件的排它控制。本发明规定了具有在服务提供中所需的1个或多个服务对象、和收纳了服务对象的排它控制对象的排它组。把各个事件分成优先事件和非优先事件。各个服务对象分别具有收纳与本对象相关的非优先事件的队列。对排列在多个队列中的排它组内的全部非优先事件建立链接。排它控制对象具有收纳优先事件的队列。排它控制对象优先于建立了链接的非优先事件,执行控制被排列的优先事件。
文档编号H04M7/00GK101030150SQ200610168089
公开日2007年9月5日 申请日期2006年12月18日 优先权日2006年3月3日
发明者小池友岳, 太田峰博 申请人:冲电气工业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1