集群中的呼叫查找方法及系统的制作方法

文档序号:7955066阅读:198来源:国知局
专利名称:集群中的呼叫查找方法及系统的制作方法
技术领域
本发明涉及集群通信技术领域,尤其是涉及集群中的一种呼叫控制块的查找方法及系统。
背景技术
在集群通信系统中,由移动台(Mobile Station,简称MS)发起呼叫时,基站控制器(Base Station Controller,简称BSC)为每一个呼叫对应的呼叫信道分配一个呼叫控制块(Call Control Block,简称CCB)保存呼叫相关信息,包括呼叫参考等管理该呼叫信道的配置信息,因此,呼叫控制块是呼叫处理的核心数据结构部分。所有与呼叫相关的更新数据都需要写入该呼叫控制块中,所有与呼叫相关的数据也从该呼叫控制块中读取,也即该呼叫控制块中的信息随着呼叫状态的改变需要实时写入、更新、读取和删除等,因此实时快速的查找与每一个呼叫相对应的呼叫控制块以便对其数据进行操作就显得特别重要,是提高集群通信系统呼叫效率的关键。
如GT800的集群通信系统中,它不仅能基于GSM提供基本的集群业务,而且还能提供包括私密呼叫业务和组呼业务的特殊集群业务。以GT800系统提供私密呼叫业务为例,私密呼叫采用半双工方式通信,即私密呼叫双方按住即按即讲(Push To Talk,简称PPT)的一方进行通话,私密呼叫没有按住PPT的一方听话;私密呼叫双方的讲话方处于集群组呼发送模式,听话方处于集群组呼接收模式。当私密呼叫双方处于同一个小区时,私密呼叫双方共享话音业务信道(Tone Channel,简称TCH),通过PPT方式对TCH的上行信道进行抢占;当私密呼叫双方不在同一小区时,私密呼叫双方分别占用一个无线信道,私密呼叫双方仍然通过PPT方式对讲话权利进行抢占。由此可见,基于集群通信系统提供的私密呼叫业务和组呼业务的特殊性,就要求集群系统能快速呼叫接入,以满足专业用户的快速呼叫要求。
并且,由于在每一个呼叫的过程中经常需要获得与该呼叫相对应的呼叫控制块,且在一特定时间内会有相当数目的呼叫存在,因此,集群通信系统会给每一个呼叫分配一个呼叫参考,此呼叫参考能够唯一的标识一个呼叫并且不会发生重复。一般的呼叫软件都是通过呼叫参考来查找相应的呼叫控制块。
根据呼叫参考查找呼叫控制块的方法有很多种。最常见的是顺序查找法和哈希(HASH)查找法。其中,顺序查找法是按照呼叫参考对所有呼叫控制块顺序进行对比的遍历查找,直到找到对应的呼叫控制块为止,因而查找速度慢,且当呼叫数目巨大时会急剧降低整个通信系统的呼叫效率。
HASH查找法的查找流程如图1所示,包括步骤110开始;步骤120读取有关信息(比如,BSC收到MSC下发的信道指配请求消息,以根据该消息中携带的呼叫参考查找该呼叫信道对应的CCB,并将该消息对应的移动台用户指配到该呼叫信道上,其中,所述对应的CCB中保存的呼叫参考与所述消息中携带的呼叫参考相等),获得呼叫参考;步骤130对呼叫参考按哈希方法进行操作,生成一个H值(由于呼叫参考为一个较长字节的字符串,通过哈希方法操作对其进行压缩操作,并可通过设置哈希方法使呼叫参考转换为一个合理范围内的数值);步骤140取得与H值对应的链表(由于对呼叫参考进行了哈希方法操作,就可能有重复的H值产生,需要将相同H值对应的呼叫控制块进行链接,形成链表),在链表中通过比较呼叫参考进行顺序查找,寻找与查找的呼叫参考一致的链表结点;
步骤150判断当前所查找的呼叫参考与链表中结点对应的呼叫参考是否相等;步骤160判断相等时,表示找到了该呼叫对应的呼叫控制块(CCB),并可根据本次查找的目的作相关操作;步骤180判断不相等时,则作错误处理;步骤170结束本次查找。
哈希查找法的核心是将顺序法查找时的全部顺序转化为部分顺序,以此来提高查找速度,虽然有速度快的优点,但由于哈希操作上的固有问题,不能保证不同的呼叫参考在进行哈希操作后具有不同的H值,因此需要利用链表将哈希操作后具有相同H值的呼叫控制块链接起来,从而导致大量使用指针,且考虑链表的存储方式,因此查找过程中需要不断的动态分配内存,容易造成内存泄漏。
综上所述,由于呼叫参考为一个较长字节的字符串,若采用简单的顺序查找法进行查找,则效率低下,不利于提高通信系统的呼叫效率;若采用哈希查找法查找,但是由于大量使用链表指针,系统需要不断动态分配内存,因此不适合呼叫软件适用。

发明内容
本发明解决的技术问题是根据数组结构在内存中具有固定内存的特点,提出了一种利用数组的数据结构,结合哈希顺序查找法的集群中的呼叫查找方法,以达到快速查找到与呼叫对应的呼叫控制块的目的,本发明具有查找过程简单,系统稳定性好且可快速呼叫查找的优点。
为解决上述问题,本发明公开了一种集群中的呼叫查找方法,关键是,包括如下处理步骤
A.在基站控制器中创建一个呼叫控制块数组、一个呼叫控制结点数组、一个哈希队列数组以及一个空闲结点数组a1.基站控制器为每一个呼叫对应的呼叫信道分配一个呼叫控制块,该呼叫控制块对应所述呼叫控制块数组中一个数组元素,每一个数组元素的内容包含有与呼叫相关的所有信息;a2.建立所述呼叫控制块数组的数组元素与所述呼叫控制结点数组的数组元素之间的对应关系;a3.将所述呼叫控制块数组中未被呼叫对应占有的数组元素构成空闲结点链表,且将该空闲结点链表中第一个和最后一个数组元素的下标值分别赋值给所述空闲结点数组的头结点和尾结点;a4.将每一个呼叫包括的呼叫参考进行哈希操作生成一个H值,并将生成相同H值的呼叫参考所对应的所述呼叫控制结点数组的数组元素构成链表,且将链表中第一个和最后一个数组元素的下标值分别赋值给下标值为H的所述哈希队列数组中的数组元素的头结点和尾结点;B.获取相关消息中的呼叫参考,并对该呼叫参考进行哈希操作,生成一个H1值;C.根据下标值为H1的哈希队列数组中数组元素取得对应的链表,顺序查找,比较呼叫参考值,直到查找到该呼叫参考值对应的呼叫控制块。
所述步骤A中,所述呼叫控制块数组为容纳一时间范围内所有呼叫的呼叫控制块。
所述步骤A中,所述呼叫为一个主动发起的呼叫,所述步骤A还包括a5.为该新呼叫对应的呼叫信道分配一个呼叫控制块,并将该新呼叫相关的所有信息添加至该呼叫控制块对应所述呼叫控制块数组的一个数组元素中;a6.从空闲结点链表中取其中一个结点用于保存步骤a5中数组元素的下标值,并修改所述空闲结点数组相应的头结点或尾结点数值;a7.对该新呼叫的呼叫参考进行哈希操作,生成一个H值;a8.判断所述哈希队列数组中下标值为H的数组元素的头结点或尾结点是否为空,若是,则将所述步骤a6中所述呼叫控制结点数组的数组元素下标值同时赋值给该数组元素的头结点和尾结点,否则,将所述步骤a6中所述呼叫控制结点数组的数组元素添加至所述哈希队列数组的数组元素对应的链表中。
所述步骤A中,所述基站控制器于一个呼叫结束时释放该呼叫对应的呼叫控制块,所述步骤A还包括a9.从所述呼叫控制块数组对应的数组元素中删除该呼叫相关的所有信息;a10.将步骤a9中数组元素的下标值对应的所述呼叫控制结点数组中数组元素从所处链表中删除,并添加至所述空闲结点链表中。
所述步骤A和步骤B采用相同的哈希操作。
所述呼叫为集群中的私密呼叫,所述呼叫参考为私密参考。
所述呼叫为集群中的组呼,所述呼叫参考为组呼参考。
相应地,本发明还公开了一种集群中的呼叫查找系统,用于移动通信中在基站控制器中快速查找一个呼叫对应的呼叫控制块,关键是,包括呼叫控制块数组单元,用于创建一个呼叫控制块数组,每一个数组元素对应于一个基站控制器为每一个呼叫对应的呼叫信道分配的呼叫控制块,用于存储该呼叫相关的所有信息;哈希操作单元,用于获取对应的呼叫参考进行哈希操作,生成一个H值;呼叫控制结点数组单元,用于创建一个呼叫控制结点数组,每一个数组元素包括变量A和变量B,其中,变量A等于呼叫控制块数组中一个数组元素的下标值,变量B等于该数组元素所处链表中的下一个数组元素的下标值;
哈希队列数组单元,用于创建一个哈希队列数组,每一个数组元素包括头结点和尾结点,且分别等于该数组元素下标值H对应呼叫在呼叫控制结点数组中链表第一个和最后一个数组元素的下标值;空闲结点数组单元,用于创建一个包括一个具有头结点和尾结点的数组元素的空闲结点数组,其头结点和尾结点分别等于呼叫控制结点数组中未被对应呼叫占用的数组元素所形成空闲结点链表的第一个和最后一个数组元素的下标值;控制单元,用于根据呼叫对应的呼叫信道控制分配呼叫控制块,并控制对呼叫控制块数组、呼叫控制结点数组、哈希队列数组以及空闲结点数组根据实际呼叫需求进行添加、删除数组元素以及对链表中结点进行对应的添加和删除操作;且控制获取相关消息中的呼叫参考,并控制所述哈希操作单元对该呼叫参考进行哈希操作,从哈希操作生成值对应的链表中顺序查找该呼叫参考对应的呼叫控制块。
所述呼叫控制块数组为容纳一时间范围内所有呼叫的呼叫控制块。
所述控制单元包括信道分配控制子单元、空闲结点链表删除控制子单元、哈希操作控制子单元以及判断子单元;所述信道分配控制子单元用于为一个主动发起的新呼叫对应的呼叫信道分配一个呼叫控制块,并控制将该新呼叫相关的所有信息添加至该呼叫控制块对应所述呼叫控制块数组的一个数组元素中;所述空闲结点链表删除控制子单元用于从空闲结点链表中取其中一个结点以保存所述呼叫控制块对应数组元素的下标值,并控制修改所述空闲结点数组相应的头结点或尾结点数值;所述哈希操作控制子单元用于获取该新呼叫的呼叫参考并通过所述哈希操作单元进行哈希操作,生成一个H值;所述判断子单元用于判断所述哈希队列数组中下标值为H的数组元素的头结点或尾结点是否为空,若是,则所述链表操作控制子单元控制使该数组元素的头结点和尾结点均等于所述呼叫控制结点数组的数组元素下标值,否则,所述链表操作控制子单元控制将所述呼叫控制结点数组的数组元素添加至所述哈希队列数组的数组元素对应的链表中。
所述控制单元包括信道释放控制子单元以及空闲结点链表添加控制子单元;所述信道释放控制子单元用于控制于一个呼叫结束时控制释放该呼叫对应的呼叫控制块,并控制从所述呼叫控制块数组对应的数组元素中删除该呼叫相关的所有信息;空闲结点链表添加控制子单元用于将所述数组元素的下标值对应的所述呼叫控制结点数组中数组元素从所处链表中删除,并添加至所述空闲结点链表中,并控制修改所述空闲结点数组相应的头结点或尾结点数值。
所述呼叫为集群中的私密呼叫,所述呼叫参考为私密参考。
所述呼叫为集群中的组呼,所述呼叫参考为组呼参考。
与现有技术相比,本发明具有以下有益效果由于本发明摒弃了对指针的使用,采用在系统内存中具有固定内存的数组结构,利用哈希算法减少顺序查找次数,来实现快速呼叫查找的目的,因此,本发明避免了频繁的动态内存分配和因为大量指针的使用而产生的内存泄漏,具有过程简单,系统稳定性好且可快速呼叫查找的优点。


图1是现有哈希查找法的查找流程示意图。
图2是本发明的查找流程示意图。
图3是本发明所采用的数组间的数据结构示意图。
图4是本发明的系统示意图。
具体实施例方式
为解决现有技术的问题,本发明的目的是根据现有哈希(HASH)查找法中因大量使用指针而带来的缺陷,提出了一种利用数组的数据结构,并结合哈希查找法来达到快速查找移动通信中与呼叫对应的呼叫控制块的方法和系统。本发明摒弃了对指针的使用,而采用在系统内存中具有固定内存的数组结构,利用哈希算法减少顺序查找次数,来实现快速呼叫查找的目的,具有过程简单,系统稳定性好且可快速呼叫查找的优点。
请参见图2所示,为本发明揭示的一种集群中的呼叫查找方法的流程示意图。
本发明包括如下处理步骤步骤210在基站控制器中创建一个呼叫控制块数组、一个呼叫控制结点数组、一个哈希队列数组以及一个空闲结点数组,,包括如下a1.基站控制器为每一个呼叫对应的呼叫信道分配一个呼叫控制块,该呼叫控制块对应所述呼叫控制块数组中一个数组元素,每一个数组元素的内容包含有与呼叫相关的所有信息;a2.设置所述呼叫控制结点数组的每一个数组元素包括变量A和变量B,并将所述呼叫控制块数组中一个数组元素的下标值赋值给所述呼叫控制结点数组的一个数组元素的变量A,以建立所述呼叫控制块数组的数组元素与所述呼叫控制结点数组的数组元素之间的对应关系;a3.将所述呼叫控制块数组中未被呼叫对应占有的数组元素构成空闲结点链表,且将该空闲结点链表中第一个和最后一个数组元素的下标值分别赋值给所述空闲结点数组的头结点和尾结点;a4.将每一个呼叫包括的呼叫参考进行哈希操作生成一个H值,并将生成相同H值的呼叫参考所对应的所述呼叫控制结点数组的数组元素构成链表,且将链表中第一个和最后一个数组元素的下标值分别赋值给下标值为H的所述哈希队列数组中的数组元素的头结点和尾结点;其中,将链表中下一个数组元素的下标值赋值给该链表中上一个数组元素的变量B。
步骤220读取相关消息(比如,BSC收到MSC下发的信道指配请求消息,以根据该消息中携带的呼叫参考查找该呼叫信道对应的CCB,并将该消息对应的移动台用户指配到该呼叫信道上,其中,所述对应的CCB中保存的呼叫参考与所述消息中携带的呼叫参考相等),获取其中的呼叫参考;步骤230对该呼叫参考进行与步骤210相同的哈希操作,生成一个H1值;步骤240根据下标值为H1的哈希队列数组中数组元素取得对应的链表,顺序查找,比较呼叫参考值;步骤250判断当前所查找的呼叫参考与链表中结点对应的呼叫参考是否相等;步骤260判断相等时,表示找到了该呼叫对应的呼叫控制块(CCB),结束本次查找。然后可根据本次查找的目的作相关操作,;步骤270判断不相等时,则作错误处理;结束本次查找。
其中,考虑到基站控制器的最大容量,因此,所述呼叫控制块数组以及所述呼叫控制结点数组的数组大小必须与基站控制器的最大容量相匹配,即所述呼叫控制块数组以及所述呼叫控制结点数组应能容纳一时间范围内所有呼叫的呼叫控制块;比如,图3所示本发明的具体实施例中,所述基站控制器的最大容量能够同时容纳1280各呼叫,故所述呼叫控制块数组以及所述呼叫控制结点数组均包含1280个数组元素。
所述呼叫包括主动发起的呼叫和被动接收的呼叫。若所述呼叫为一个被动接收的呼叫,则根据图2所示流程进行呼叫查找;若所述呼叫为一个主动发起的呼叫,则所述步骤210还包括a5.为该新呼叫对应的呼叫信道分配一个呼叫控制块,并将该新呼叫相关的所有信息添加至该呼叫控制块对应所述呼叫控制块数组的一个数组元素中;a6.从空闲结点链表中取其中一个结点(所述呼叫控制结点数组的一个数组元素)用于保存步骤a5中数组元素的下标值,并修改所述空闲结点数组相应的头结点或尾结点数值;a7.对该新呼叫的呼叫参考进行哈希操作,生成一个H值;a8.判断所述哈希队列数组中下标值为H的数组元素的头结点或尾结点是否为空,若是,则将步骤a6中所述呼叫控制结点数组的数组元素下标值同时赋值给该数组元素的头结点和尾结点,否则,将步骤a6中所述呼叫控制结点数组的数组元素添加至所述哈希队列数组的数组元素对应的链表中。
另外,在所述步骤210中,所述基站控制器于一个呼叫结束时释放该呼叫对应的呼叫控制块,所述步骤210还包括a9.从所述呼叫控制块数组对应的数组元素中删除该呼叫相关的所有信息;a10.将步骤a9中数组元素的下标值对应的所述呼叫控制结点数组中数组元素从所处链表中删除,并添加至所述空闲结点链表中。
以下结合图3所示具体实施例(箭头方向仅代表数组之间的对应关系),对本发明做进一步详细说明。
创建数组大小均为1280的所述呼叫控制块数组以及所述呼叫控制结点数组、以及空闲结点数组和哈希队列数组,并初始化;此时,由于基站控制器没有容纳任何呼叫,故所述呼叫控制块数组的数组元素均为初始化的0值,所述呼叫控制块数组与所述呼叫控制结点数组的数组元素之间也因为没有呼叫而未建立对应关系,故所述呼叫控制结点数组中的1280个数组元素组成一个空闲结点链表,其中所有数组元素的变量A均等于0值,变量B等于该空闲结点链表中下一个数组元素的下标值,且所述空闲结点数组的头结点和尾结点分别指向该空闲结点链表的第一个和最后一个数组元素;而所述哈希队列数组中每一个数组元素的头结点和尾结点均指NULL(空)。
向所述基站控制器发起一个呼叫后,基站控制器为该呼叫对应的呼叫信道分配一个呼叫控制块,比如,该呼叫控制块对应所述呼叫控制块数组中一个数组元素,将该呼叫相关的所有信息保存至所述呼叫控制块数组中下标值为128的数组元素中;接着,从所述空闲结点链表中取出一个数组元素与下标值为128的所述呼叫控制块数组的数组元素建立对应关系,比如,从所述空闲结点链表中取出一个数组元素的下标值为10,则将128赋值给该数组元素的变量A;再次,将该呼叫包括的呼叫参考进行哈希希操作生成一个H值,将该呼叫对应于所述呼叫控制结点数组中数组元素的下标值(10)同时赋值给所述哈希队列数组中下标值为H的数组元素的头结点和尾结点。
一段时间后,所述基站控制器容纳有若干呼叫,此时,所述哈希队列数组中下标值为H的数组元素的头结点和尾结点分别指向所述呼叫控制结点数组下标值为0以及101的数组元素,而下标值为0以及101的数组元素为该下标值为H的所述哈希队列数组的数组元素对应的链表的第一个和最后一个数组元素,其中,该链表中的每一数组元素的第一位数据(变量A)分别与所述呼叫控制块数组中的数组元素下标值对应,而每二数组元素的第一位数据(变量B)则指向该链表中下一个数组元素的下标值,比如,下标值为0的数组元素的变量B等于10,即指向下标值为10的数组元素。
当需要快速查找一个呼叫对应的呼叫控制块时,对该呼叫对应的呼叫参考进行哈希操作得到一个H1值,然后,根据下标为H1值的所述哈希队列数组中数组元素(比如,即图3中绘示的所述哈希队列数组中的数组元素)所指向的链表中数组元素对应的呼叫控制块,依次查找下标值为0、10和101的所述呼叫控制结点数组中数组元素对应的呼叫控制块,并将该呼叫包括的呼叫参考分别与所述呼叫控制块对应的呼叫参考相比较,直到查找到该呼叫对应的呼叫控制块。
对应的,本发明揭示了一种集群中的呼叫查找系统,用于移动通信中在基站控制器中快速查找一个呼叫对应的呼叫控制块,其特征在于,包括呼叫控制块数组单元310,包括一个呼叫控制块数组,且每一个数组元素对应于一个基站控制器为每一个呼叫分配的呼叫控制块,用于存储该呼叫相关的所有信息;哈希操作单元320,用于获取对应的呼叫参考进行哈希操作,生成一个H值;呼叫控制结点数组单元330,包括一个呼叫控制结点数组,其中每一个数组元素包括变量A和变量B,其中,变量A等于呼叫控制块数组中一个数组元素的下标值,变量B等于该数组元素所处链表中的下一个数组元素的下标值;哈希队列数组单元340,包括一个哈希队列数组,其中每一个数组元素包括头结点和尾结点,且分别等于该数组元素下标值H对应呼叫在呼叫控制结点数组中链表第一个和最后一个数组元素的下标值;空闲结点数组单元350,包括一个空闲结点数组,包括一个具有头结点和尾结点的数组元素,其头结点和尾结点分别等于呼叫控制结点数组中未被对应呼叫占用的数组元素所形成空闲结点链表的第一个和最后一个数组元素的下标值;控制单元360,用于根据呼叫控制分配呼叫控制块,并控制对呼叫控制块数组、呼叫控制结点数组、哈希队列数组以及空闲结点数组根据实际呼叫需求进行添加、删除数组元素以及对链表中结点进行对应的添加和删除操作;且控制获取相关消息中的呼叫参考,并控制所述哈希操作单元对该呼叫参考进行哈希操作,从哈希操作生成值对应的链表中顺序查找该呼叫参考对应的呼叫控制块。
所述呼叫控制块数组应能容纳一时间范围内所有呼叫的呼叫控制块;所述呼叫控制块数组所包括元素的最大个数与所述呼叫控制结点数组所包括元素的最大个数相等。
所述呼叫包括主动发起的呼叫和被动接收的呼叫。若所述呼叫为一个被动接收的呼叫,则根据图2所示流程进行呼叫查找;若所述呼叫为一个主动发起的呼叫,则所述控制单元360包括信道分配控制子单元、空闲结点链表删除控制子单元、哈希操作控制子单元以及判断子单元(图中未绘示),其中所述信道分配控制子单元用于为一个主动发起的新呼叫对应的呼叫信道分配一个呼叫控制块,并控制将该新呼叫相关的所有信息添加至该呼叫控制块对应所述呼叫控制块数组的一个数组元素中;所述空闲结点链表删除控制子单元用于从空闲结点链表中取其中一个结点以保存所述呼叫控制块对应数组元素的下标值,并控制修改所述空闲结点数组相应的头结点或尾结点数值;所述哈希操作控制子单元用于获取该新呼叫的呼叫参考并通过所述哈希操作单元进行哈希操作,生成一个H值;所述判断子单元用于判断所述哈希队列数组中下标值为H的数组元素的头结点或尾结点是否为空,若是,则所述链表操作控制子单元控制使该数组元素的头结点和尾结点均等于所述呼叫控制结点数组的数组元素下标值,否则,所述链表操作控制子单元控制将所述呼叫控制结点数组的数组元素添加至所述哈希队列数组的数组元素对应的链表中。
另外,所述控制单元360还包括信道释放控制子单元以及空闲结点链表添加控制子单元(图中未绘示),其中所述信道释放控制子单元用于控制于一个呼叫结束时控制释放该呼叫对应的呼叫控制块,并控制从所述呼叫控制块数组对应的数组元素中删除该呼叫相关的所有信息;空闲结点链表添加控制子单元用于将所述数组元素的下标值对应的所述呼叫控制结点数组中数组元素从所处链表中删除,并添加至所述空闲结点链表中,并控制修改所述空闲结点数组相应的头结点或尾结点数值。
并且,本发明中,所述哈希队列数组所包含的数组元素的最大值越大,则对呼叫参考进行哈希操作后得到的H值相同的几率也越小,进行哈希顺序查找的次数也越小,也即能够越快速的进行呼叫查找;但是,所述哈希队列数组所包含的数组元素最大值越大,所述哈希队列数组在系统中所占用的内存也越大,因此需要根据实际的运用环境创建数组元素最大个数适中的所述哈希队列数组。
本发明所指的呼叫,包括私密呼叫和组呼,对应的,本发明所指的呼叫参考,包括私密参考和组呼参考。另外,本发明中,呼叫信道与呼叫控制块之间存在一一对应关系;当私密呼叫或组呼的一方发起呼叫时,集群系统通过本发明的查找方法快速查找到该呼叫对应的呼叫控制块,也即把该呼叫指配至该呼叫对应的私密呼叫信道或组呼信道上,以实现私密呼叫业务或组呼业务。
综上所述,本发明公开的集群中的呼叫查找方法及系统,与现有技术相比,具有如下有益效果由于本发明摒弃了对指针的使用,采用在系统内存中具有固定内存的数组结构,利用哈希算法减少顺序查找次数,来实现快速呼叫查找的目的,因此,本发明避免了频繁的动态内存分配和因为大量指针的使用而产生的内存泄漏,具有过程简单,系统稳定性好且可快速呼叫查找的优点。
以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个头施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种集群中的呼叫查找方法,其特征在于,包括如下处理步骤A.在基站控制器中创建一个呼叫控制块数组、一个呼叫控制结点数组、一个哈希队列数组以及一个空闲结点数组a1.基站控制器为每一个呼叫对应的呼叫信道分配一个呼叫控制块,该呼叫控制块对应所述呼叫控制块数组中一个数组元素,每一个数组元素的内容包含有与呼叫相关的所有信息;a2.建立所述呼叫控制块数组的数组元素与所述呼叫控制结点数组的数组元素之间的对应关系;a3.将所述呼叫控制块数组中未被呼叫对应占有的数组元素构成所述空闲结点数组对应的空闲结点链表;a4.将每一个呼叫包括的呼叫参考进行哈希操作生成一个H值,并将生成相同H值的呼叫参考所对应的所述呼叫控制结点数组的数组元素构成该下标值为H的所述哈希队列数组中数组元素对应的链表;B.获取相关消息中的呼叫参考,并对该呼叫参考进行哈希操作,生成一个H1值;C.根据下标值为H1的哈希队列数组中数组元素取得对应的链表,顺序查找,比较呼叫参考值,直到查找到该呼叫参考值对应的呼叫控制块。
2.根据权利要求1所述的集群中的呼叫查找方法,其特征在于,所述步骤A中,所述呼叫控制块数组为容纳一时间范围内所有呼叫的呼叫控制块。
3.根据权利要求1所述的集群中的呼叫查找方法,其特征在于,所述步骤A中,所述呼叫为一个主动发起的呼叫,所述步骤A还包括a5.为该新呼叫对应的呼叫信道分配一个呼叫控制块,并将该新呼叫相关的所有信息添加至该呼叫控制块对应所述呼叫控制块数组的一个数组元素中;a6.从空闲结点链表中取其中一个结点用于保存步骤a5中数组元素的下标值,并修改所述空闲结点数组相应的头结点或尾结点数值;a7.对该新呼叫的呼叫参考进行哈希操作,生成一个H值;a8.判断所述哈希队列数组中下标值为H的数组元素的头结点或尾结点是否为空,若是,则将所述步骤a6中所述呼叫控制结点数组的数组元素下标值同时赋值给该数组元素的头结点和尾结点,否则,将步骤a6中所述呼叫控制结点数组的数组元素添加至所述哈希队列数组的数组元素对应的链表中。
4.根据权利要求1所述的集群中的呼叫查找方法,其特征在于,所述步骤A中,所述基站控制器于一个呼叫结束时释放该呼叫对应的呼叫控制块,所述步骤A还包括a9.从所述呼叫控制块数组对应的数组元素中删除该呼叫相关的所有信息;a10.将步骤a9中数组元素的下标值对应的所述呼叫控制结点数组中数组元素从所处链表中删除,并添加至所述空闲结点链表中。
5.根据权利要求1所述的集群中的呼叫查找方法,其特征在于,所述步骤A和步骤B采用相同的哈希操作。
6.根据权利要求1-5任一项所述的集群中的呼叫查找方法,其特征在于,所述呼叫为集群中的私密呼叫,所述呼叫参考为私密参考。
7.根据权利要求1-5任一项所述的集群中的呼叫查找方法,其特征在于,所述呼叫为集群中的组呼,所述呼叫参考为组呼参考。
8.一种集群中的呼叫查找系统,用于移动通信中在基站控制器中快速查找一个呼叫对应的呼叫控制块,其特征在于,包括呼叫控制块数组单元,用于创建一个呼叫控制块数组,每一个数组元素对应于一个基站控制器为每一个呼叫对应的呼叫信道分配的呼叫控制块,用于存储该呼叫相关的所有信息;哈希操作单元,用于获取呼叫参考进行哈希操作,生成一个H值;呼叫控制结点数组单元,用于创建一个呼叫控制结点数组,每一个数组元素包括变量A和变量B,其中,变量A等于呼叫控制块数组中一个数组元素的下标值,变量B等于该数组元素所处链表中的下一个数组元素的下标值;哈希队列数组单元,用于创建一个哈希队列数组,每一个数组元素包括头结点和尾结点,且分别等于该数组元素下标值H对应呼叫在呼叫控制结点数组中链表第一个和最后一个数组元素的下标值;空闲结点数组单元,用于创建一个包括一个具有头结点和尾结点的数组元素的空闲结点数组,其头结点和尾结点分别等于呼叫控制结点数组中未被对应呼叫占用的数组元素所形成空闲结点链表的第一个和最后一个数组元素的下标值;控制单元,用于根据呼叫对应的呼叫信道控制分配呼叫控制块,并控制对呼叫控制块数组、呼叫控制结点数组、哈希队列数组以及空闲结点数组根据实际呼叫需求进行添加、删除数组元素以及对链表中结点进行对应的添加和删除操作;且控制获取相关消息中的呼叫参考,并控制所述哈希操作单元对该呼叫参考进行哈希操作,从哈希操作生成值对应的链表中顺序查找该呼叫参考对应的呼叫控制块。
9.根据权利要求8所述的集群中的呼叫查找系统,其特征在于,所述呼叫控制块数组为容纳一时间范围内所有呼叫的呼叫控制块。
10.根据权利要求8所述的集群中的呼叫查找系统,其特征在于,所述控制单元包括信道分配控制子单元、空闲结点链表删除控制子单元、哈希操作控制子单元以及判断子单元;所述信道分配控制子单元用于为一个主动发起的新呼叫对应的呼叫信道分配一个呼叫控制块,并控制将该新呼叫相关的所有信息添加至该呼叫控制块对应所述呼叫控制块数组的一个数组元素中;所述空闲结点链表删除控制子单元用于从空闲结点链表中取其中一个结点以保存所述呼叫控制块对应数组元素的下标值,并控制修改所述空闲结点数组相应的头结点或尾结点数值;所述哈希操作控制子单元用于获取该新呼叫的呼叫参考并通过所述哈希操作单元进行哈希操作,生成一个H值;所述判断子单元用于判断所述哈希队列数组中下标值为H的数组元素的头结点或尾结点是否为空,若是,则所述链表操作控制子单元控制使该数组元素的头结点和尾结点均等于所述呼叫控制结点数组的数组元素下标值,否则,所述链表操作控制子单元控制将所述呼叫控制结点数组的数组元素添加至所述哈希队列数组的数组元素对应的链表中。
11.根据权利要求8所述的集群中的呼叫查找系统,其特征在于,所述控制单元包括信道释放控制子单元以及空闲结点链表添加控制子单元;所述信道释放控制子单元用于控制于一个呼叫结束时控制释放该呼叫对应的呼叫控制块,并控制从所述呼叫控制块数组对应的数组元素中删除该呼叫相关的所有信息;空闲结点链表添加控制子单元用于将所述数组元素的下标值对应的所述呼叫控制结点数组中数组元素从所处链表中删除,并添加至所述空闲结点链表中,并控制修改所述空闲结点数组相应的头结点或尾结点数值。
12.根据权利要求8-11任一项所述的集群中的呼叫查找系统,其特征在于,所述呼叫为集群中的私密呼叫,所述呼叫参考为私密参考。
13.根据权利要求8-11任一项所述的集群中的呼叫查找系统,其特征在于,所述呼叫为集群中的组呼,所述呼叫参考为组呼参考。
全文摘要
本发明公开一种集群中的呼叫查找方法及系统,其中方法包括如下处理步骤在基站控制器中创建一个呼叫控制块数组、一个呼叫控制结点数组、一个哈希队列数组以及一个空闲结点数组;获取相关消息中的呼叫参考,并对该呼叫参考进行哈希操作,生成一个H
文档编号H04B7/26GK1984380SQ200610035450
公开日2007年6月20日 申请日期2006年5月15日 优先权日2006年5月15日
发明者鲁连奎, 侯智强, 戴明扬, 王斐, 胡小群, 高树亮 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1