基于VRTX操作系统实现V5接口协议
定时器管理进程完成以下一些基本功能:
(1)管理10ms、100ms和1s三种定时器链表。
(2)当10ms定时间隔到,应遍历10ms定时器链表,完成对链表中各定时器的计数处理。若有定时器溢出,则向相应的进程发送溢出消息,并从定时器链表中释放该定时器。同样,当100ms或1s的定时间隔到时,也应对100ms或1s定时器链表作相同处理。
(3)处理从其他进程接收到的消息。当收到从其他进程发送的申请定时器的消息时,应在相应分辨率的定时器链表中插入所申请的定时器;在接收到从其他进程来的释放定时器的消息后,应寻找到该定时器,并将其释放。
5.编写可重入函数
V5接口中有大量的函数需要编写。和传统的编程环境不同,本系统中,V5接口软件运行在多任务环境上,函数的可重入性(reentrancy)显得很重要。javascript:window.open(this.src);" style="cursor:pointer;"/>
所谓可重入函数是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会出错。在编写函数时应尽量只使用局部变量,对于要使用的全局变量需要加以保护(如采用关中断、信号量等措施),这样构成的函数一定是可重入的;而编译器是否具有可重入的库,与它所服务的操作系统有关,如DOS下的Borland C和Microsoft C/C++等就没有可重入函数库,这是因为DOS是一个单用户、单任务的操作系统。
为了确保每一个调用函数的任务控制自己私有变量,在一个可重入的C函数中,将这样的变量申明为局部变量,C编译器将这样的变量存放在调用栈上或寄存器里。在VRTX操作系统下编写可重入的函数,须要遵循以下原则:
(1)将所有局部变量申明为auto或寄存器(register)类型;
(2)尽量不要使用static或extern变量,不可避免使用全局变量时,需加以保护;
(3)用VRTX库函数sc_gblock分配大的数据结构。
三、V5接口发展的趋势
从长远看,为了克服现有一系列SNI(业务节点接口)功能的限制,须要开发附加的SNI,特别是模块型和B-ISDN接入型SNI。目前,以ATM为基础的VB5接口的标准化工作正在进行。VB5参考点可分为VB5.1和VB5.2两种形式。
ITU-T已经通过了关于VB5参考点的建议,规定了VB5既支持AN与SN的直接连接,又支持 两者的远程连接;既支持基于ATM的B-ISDN接入,又支持各种非ATM的接入。此外,VB5还应支持接入各种SN的接入功能,并能同时连接到多个不同的SN。有关VB5的技术框架还有待进一步研究和开发。