版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章程控交换机的软件4.1概述程控交换机是一个由计算机控制的实时交换系统,当然是由硬件和软件两大部分组成。对制造商而言,系统成本是一个不容忽视的问题。
随着微电子技术的发展,硬件成本在不断地下降,而软件系统的情况恰恰相反。这是因为,交换机的全部智能性任务都要由软件来完成,交换机的功能越来越强,软件也就越来越复杂和庞大。程控交换机的容量可达十万门以上(可容纳几个端局),软件总量可达几十万条至几百万条,软件开发的工作量可达到几百人年。可以说,程控交换机的成本、质量,在很大程度上取决于软件系统。一、程控交换机软件的基本特点1、实时性强程控交换机软件的这个特点与其它的控制系统的特点类似,但也有它自己的特色。软件要及时收集外部电路发生的各种事件,并对这些事件及时分析处理,并在规定的时间内做出响应,否则,就会导致丢失信息而使呼叫失败。根据实时性要求不同,软件可分为不同的等级。(1)故障级这是最高优先级的程序,系统一旦发现故障,应立即中断正在执行的程序,及时转入故障处理程序。(2)时钟级这是正常运行的情况下,实时性要求最为严格的程序。例如,接收用户的拨号脉冲或DTMF,扫描周期要十分严格,不允许有延时。(3)基本级这一级程序对实时性要求不十分严格。例如摘(挂)机处理程序,时钟级程序检测到用户摘(挂)机后,并不马上处理,而是写入任务队列,由基本及程序查找队列进行处理,处理可以晚几个至几十个毫秒,并不会影响通信质量。再如管理程序的的机命令,可以延时更长。2、并发性和多道程序运行(1)并发性有2个内容
①同一过程并发:用户呼叫过程是随机的,可能同时有多个用户发出呼叫请求,或有多个用户要求释放呼叫;②不同过程并发:在同一时刻,可能有些用户发出呼叫请求,而另一些用户要求释放呼叫。软件应能同时处理这些问题。
(2)多道程序运行正是由于呼叫的并发性,系统要同时运行多道程序,这同时也是实时性要求的结果。这是因为,交换机建立呼叫的过程中,包含许多基本的动作,一个处理动作结束后,呼叫就进入一个相对稳定的状态,而脱离这个状态进入另一个稳定状态需要外部事件的触发。
例如,用户待机时,这是一个稳定的空闲状态,如果要改变这个状态,就需要一个外部事件,如摘机,摘机这个事件得到处理后,呼叫又进入等待收号这一稳定状态,再等待外部事件的输入。处理机的速度很快,处理机处理完摘机这个事件后,就不能一直等待用户拨号,否则,其它用户的呼叫请求就得不到处理。这就要求处理机能够“同时”运行多道程序。这涉及到进程调度,后面会具体讲到。3、可靠性要求高对于通信设备,要求具有极高的可靠性,既使在硬件和软件系统本身发生故障的情况下,系统仍能保证可靠运行,并能在系统不停止运行的前提下,完成硬件和软件故障的恢复。可靠性典型的指标是:99.98%的正确呼叫处理;40年内系统中断运行时间不超过2小时。当发生一个硬件和软件故障时,系统必须采取措施使呼叫能够进行下去。程控交换机对故障的处理所依据的原则与其它用于控制和科学计算的计算机有些不一样。
可见,计算机运算错误和系统停机在不同的系统中,导致的结果是不同的。为提高系统的可靠性采取的措施:(1)对关键设备冗余配置。如处理机、数字交换网等。(2)及时发现错误。如果是硬件故障,迅速确定故障位置及性质,隔离故障部件,启动备用部件。硬件故障一般是物理损坏,软件则不同,如果在软件开发过程中,如果能确保其正确性,那么无论过多长时间,软件本身是不会发生故障的。但现在的软件开发技术无法保证这一点。
也就是说,系统在运行中,总有你无法预知的状态的组合,这样,软件是不会做出正确处理的。为了保证可靠性,通常在软件中增加监督程序段,进行软、硬件资源的定期审核。4、广泛的适应性每个交换局对交换机的功能、容量、编码方案的要求各不相同,当然不能为每一个交换局专门编制软件,这就要求软件要有广泛的适应性。通常的做法是:采用参数化技术,使描述功能逻辑的程序部分与给予处理参量的数据部分分离。这就是数据驱动程序,后面会详细介绍。5、可维护性要求高软件具有相当大的维护量。这是由于:第一,原来设计的软件需不断完善;第二,而不断引进新技术对原有软件加以改进;第三,业务的发展对软件也会提出新的要求。二、数据驱动程序的特点用结构
程控交换机的软件可维护性要高,也就是说追加新的功能模块或改变其运行条件时,要修改软件,但要求是对软件的总体结构的影响要小,为达到此目的,采用数据驱动程序(与之对应的,是动作驱动程序)。所谓数据驱动程序,就是根据一些参数查表来决定要启动的程序。这种程序结构的优点是:在规范发生变化的时候,程序结构不变,只需修改表中的数据就可以适应规范的变化。条件(A、B)初始规范变化后规范00R1R201R1R110R2R111R3R3AR2B1R31R100ABR2BR1R3001110
我们可以看出,规范发生了变化,程序结构也发生了变化。
如果采用数据驱动程序情况如何呢?首先要制做一系列的表格,然后用参数去检索这些表格,确认要执行的程序。一个表格由2行、2列构成。两行表示一个参数可能取0、1这两值。数据项程序或下一级表格地址程序或下一级表格地址标志0/10/1第一列为标志项,其值为0,表示其后的数据项的内容为要执行的程序的入口地址;其值为1,表示其后的数据项的内容为下一级表格的初始地址。
现在,我们用这种方法描述一下初始规范的执行过程。A值010R11B值01B值01第二级为两张表格0R20R3读A值,查第一张表标志?根据地址查第二张表,用B值检索查程序指针执行相应程序01
同样,我们也可以用这种方法描述变化后的规范的执行情况。读A值,查第一张表标志?根据地址查第二张表,用B值检索查程序指针执行相应程序01A值0111B值01B值01第二级也为两张表格,数据发生了变化0R10R300R2R1
我们可以看出,采用数据驱动程序时,既使规范发生了变化,程序结构也未发生变化。数据驱动程序需不断地查表,会消耗大量机时,但随着处理机速度的不断加快,机时已不是主要问题。数据驱动程序是极易管理的,因而在程控交换机软件设计中得到广泛应用。三、有限状态机和有限消息机的概念(略)四、三种类型的程序设计语言(略)4.2运行软件的一般结构一、运行软件和基本结构应用软件系统呼叫处理程序管理程序维护程序操作系统处理机系统和其它硬件系统数据库管理系统数据二、局数据和用户数据
交换机的各项业务是依靠程序来完成的,而这些功能的描述、引入、删除、应用范围和环境等控制功能,是由数据来描述的。
程序和数据是分离的。程序依据数据的设定来影响各类事件,完成交换机的各项任务。我们实验课程就是完成各种数据的设定。数据又可分为局数据和用户数据。1、局数据
局数据是用来描述交换机的配置及运行环境的,有以下主要内容。(1)配置数据描述交换机的硬件、软件的配置情况。
①硬件配置数据:说明交换机中各种硬件单板的配置数量、安装位置、相互连接关系等。
②说明交换机软件表格的数量、起始地址等内容。配置数据一般只在系统容量变化时才修改。
(2)号码翻译规则如呼叫源数据、前缀分析表、地址翻译表。(3)路由中继数据局向:如果某交换局与本局之间有直达电路群,则该局称为本局的一个局向。本局C局D局A局B局
用于规定一个交换机设置的局向数、对应每个局向的路由数、每个路由包含的中继群数,中继群采用的信令方式。(4)No.7信令数据描述No.7的MTP、TUP、SCCP、ISUP等数据。(5)计费数据用来确定有关的计费方式,如不同局向不同费率、不同时段不同费率等。(6)新业务提供情况能提供的新业务种类、每种业务能提供的最大服务的用户数。2、用户数据
用来说明用户的情况,每个用户都有自己特有的用户数据。主要包括以下内容。(1)用户电话号码、用户设备码(2)用户线类别:普通用户线,公共电话用户线,小交用户线(3)用户服务等级:呼出控制,本地网、国内、国际长途有权(4)用户对新业务的使用权以及用户已经登记的新业务
(5)用户计费数据对于大型程控交换机,局数据和用户数据存储在数据库中,由数据库管理系统统一管理。呼叫处理程序在呼叫处理过程中要通过数据库对有关局数据和用户数据进行查询,根据查询结果进行相应处理。呼叫处理程序只能对数据进行查询,而不能修改。维护管理人员通过人机命令对数据进行修改。4.3操作系统
程控交换机的运行软件由操作系统、数据库管理系统和应用程序组成。操作系统是硬件与应用程序的接口。一个通用的操作系统的目的是向应用程序屏蔽硬件的差异性,并支持多任务。程控交换机是一个实时处理系统,它的操作系统除具有通用的操作系统的功能之外,还必须具有实时性;另外,程控交换机在硬件上属嵌入式系统,因此,它的操作系统是一个实时的、嵌入式的、多任务操作系统。WindowsUnixuC-LinuxDSP/BIOSRTX51
各种交换机使用的操作系统也是不一样的,一般来说,有3个来源:(1)对开放源码的操作系统(如Linux)加以剪裁(如不需图形介面)、修改(如I/O设备的实时性)。(2)购买专用的操作系统(如WinCE,VxWorks)。(3)制造商独立开发的操作系统。一、OS的层次结构
整个OS由核心层和外围模块组成。1、核心层的功能
(1)中断处理当中断产生时,首先由内核的中断总控程序处理,分析中断的类型和性质,然后交由外层模块去处理。
(2)任务调度(进程调度)主要是为就绪进程分配处理机。分配时要有一些策略。
(3)原语管理(系统调用管理)当核心层以外的程序需要得到核心层的支持时,不能直接调用核心层程序,只能通过系统调用获得。这一功能是对所有系统调用进行管理。核心层属性:
.核心是由中断驱动的;
.核心的执行是连续的—在核心执行期间,不允许被打断;
.核心程序可以使用特权指令。绝大多数处理机都有专门的寄存器标识处理机状态(核心态、用户态),如状态修改、开关中断等,只能在核心态下使用。2、外围模块
有了核心层之后,可以说有了一个完整的操作系统了,但它的功能还很弱,因此,用外围模块来增强操作系统的功能。不将这些模块编入内核,目的是保证内核的简捷、高效。
如Windows的TCP/IP协议,就是OS的外围模块。加载了网卡的驱动程序后,驱动程序就变成了内核的一部分(直接控制硬件),TCP/IP要想实现IP数据包的发送的接收,必须通过系统调用来使用网卡的驱动程序。当应用程序需使用TCP/IP时,应使用TCP/IP提供的系统调用。如果没有TCP/IP,在应用程序中编制,通过系统调用使用网卡驱动程序。
在程控交换机中,也有很多这样的外围模块。如交换机与BAM的通信,核心层负责对串口的驱动,外围模块负责协议管理。二、操作系统接口
操作系统要提供2个接口,一个是应用程序接口,也就是原语调用;一个是和硬件的接口,由于操作系统是由中断驱动的,也称中断接口。1、原语调用(系统调用)
当应用程序需要操作系统提供服务时,通过系统调用通过系统调用进入操作系统,服务完成后,返回应用程序。系统调用有以下几种类别。(1)用于管理进程的原语,如创建进程、终止进程。(2)用于支持进程间通信的原语,如发送消息、消息等待。(3)用于支持时限服务的原语,如绝对定时请求、相对定时请求、撤消定时请求。
(4)用于存储器管理的原语,如分配数据块、分配栈区。2、中断接口
在程控交换机中,通常有以下几类中断:(1)时钟中断时钟中断是最重要的一种中断,它为操作系统提供时间基准。没有时钟中断就没有操作系统。软件系统中绝对时间和相对时间的获得,都来源于对时钟中断的计数。每当时钟中断产生时,操作系统中的任务调度程序,按照一定的优先权,调度各就绪进程。
(2)故障中断
①硬件故障中断为了保证交换机的可靠运行,在交换机中要增加一些监视电路,用来监视关键性硬件设备的工作情况,一旦这些设备发生故障,监视设备就会发出中断请求,要求处理机立即处理,如电源监视。可以看出,故障级程序是在操作系统内部。
②运行异常中断设置一个定时器,系统正常运行时,软件会周期性地复位该定时器,而不会超时。如果系统程序走飞或陷入一个死循环,而不能按时复位这个定时器,定时器就会溢出,产生异常中断(结果使处理机复位)。这就是我们常说的看门狗定时器。③程序性中断程序执行过程中,处理机无法识别从内存中读出的指令代码,或运算出现除数为0的情况,产生中断。
(3)I/O中断用于外部存储设备与内存之间的DMA传输。三、程序的级别及调度方法
这里所说的级别是按其实时性来划分的。故障级(中断级)在操作系统内部。时钟级基本级(进程级)四、时钟级程序的调度
所谓时钟级程序,是指必须周期性执行的程序。这些程序有不同的执行周期。一般说来,时钟级程序是不需操作系统调度的,这是因为:用户扫描、双音多频扫描、中继扫描等实时性极强的程序是由各功能单板上的处理机来完成的,并不需主MPU进行直接管理。主MPU需管理的是这些功能单板上报的事件。下面我们以HJD-256交换机为例来说明时钟级程序的调度。上述几种扫描过程均由一台处理机来完成。时间计数器(初值为0)拨号脉冲扫描8msDTMF扫描16ms线路信令扫描24ms位间隔识别96ms用户线扫描96ms中继器扫描96ms计数器复位96ms定时器每8ms产生一次中断,计数器加1。1111111屏蔽表123456789101112时间表时间表,12行,7列。表中各项值为1比特,其值为0或1。程序转移表程序转移表,7行,与时间表每列对应;表项为该程序的入口地址(给出了该程序的执行周期)。时间计数器(初值为0)拨号脉冲扫描8msDTMF扫描16ms线路信令扫描24ms位间隔识别96ms用户线扫描96ms中继器扫描96ms计数器复位96ms1111111屏蔽表123456789101112时间表程序转移表当8ms中断到来时,时间计数器值加1,假设结果为1,将时间表第1行的值取出,各列值与屏蔽表各列值相与,然后进行寻1操作,如果某列为1,则执行与该列对应的程序转移表中的程序,直至将所有列为1的程序执行完。当下一个8ms中断到来时,进行同样的操作。周而复始。0101010时间计数器(初值为0)拨号脉冲扫描8msDTMF扫描16ms线路信令扫描24ms位间隔识别96ms用户线扫描96ms中继器扫描96ms计数器复位96ms1111111屏蔽表123456789101112时间表程序转移表111111111111101010101010100100100100100000000000100000000000100000000000000000000001实际应用中,要考虑负载的均衡性时间表为12行,主要是因为12可以被2、3、4、6、12多个数整除,这样,可以调度多种不同周期的程序。屏蔽表各列值可根据本阶段该程序是否应该执行设置为1或0五、基本级程序的调度
基本级程序的功能是对外部发生的事件进行处理。基本级程序在运行时构成进程,由操作系统调度执行。1、进程的概念
交换机软件的特点是程序并发执行。所谓并发执行,可以认为系统中的多道程序都已开始执行,但都未结束,而是交替地在处理机上执行。呼叫处理程序P用户甲摘机P处理这个事件,检查用户甲的用户数据,分配一个收号器,同时给出拨号音,P进入等待收号状态。处理机空闲。用户乙摘机P处于处理这个事件状态。处理机从空闲开始工作。如何用呼叫处理程序P来描述2个用户的呼叫状态和处理机的占用情况呢?
为此,我们把P与服务对象联系起来,P为甲服务就构成进程P甲,为乙服务就构成起程P乙,这两个起程共享呼叫处理程序P。它们“同时”执行并且按照自己的速度执行。可以说,P甲在等待收号,P乙正在从空闲状态开始执行。
进程是由数据和有关的程序序列组成的,是程序在某个数据集合上的一次运行活动。2、可再入程序
可再入程序是指能被多个程序同时调用的程序,这种程序特点是:它是纯代码的,它在执行中本身并不改变,也就是说它不存在自己的工作数据区,调用它的程序应提供工作数据区。因此,可再入程序可以被多个程序调用,参数传递主要依靠指针。呼叫处理程序就是可再入程序。3、进程的性质
(1)进程包含了数据和运行其上的程序。(2)同一程序运行于不同的数据集合上时,就构成了不同的进程。在程控交换机中,数据集合包括:用户数据、状态数据、触发数据、工作区。一般将描述进程功能的程序称为功能描述;将进程运行的数据集合称为功能环境。(3)若干个进程是可以交往的,即进程之间可以通信。4、进程的状态及其转换
(1)状态
①等待状态:等待某个事件发生。(系统不会为处于等待状态的进程分配处理机)
②就绪状态:等待系统分配处理机运行。
③运行状态:占用处理机运行。
每个进程只能处于上述3种状态之一。(2)状态转换运行状态就绪状态等待状态一个处于运行状态的进程,执行了一定的操作后,而下一步的处理要等待某个外部事件发生,通过系统调用(Wait),变成等待状态,并将等待原因通知OS。运行状态等待事件发生一个处于等待状态的进程,正在等待的事件已发生,OS就将置成就绪状态。事件已发生等待状态就绪状态一个处于就绪状态的进程,OS分配处理机后,就开始运行。选中(2)状态转换运行状态就绪状态等待状态一个处于运行状态的进程,还没有执行完规定的操作,OS又将处理机分配给另外一个进程,该进程就从运行状态转换为就绪状态,等待再次分配处理机运行完。等待事件发生事件已发生选中运行状态落选5、进程控制块
为了能够区别各个不同的进程、记录进程的执行情况以及让出处理机后进程新处的状态,OS为每个进程都设置一个进程控制块(PCB),主要包含以下信息。(1)标识信息:用于标识一个进程。如进程名,进程号码及与进程对应的程序名。(2)说明信息:用于说明进程情况。如说明进程状态、等待原因、进程程序存放位置、进程数据存放位置等信息。
(3)现场信息:用于保留进程在运行时存放在处理机中的内容。如通用寄存器、控制寄存器、程序状态字等内容。(4)资源信息:用于说明有关进程所占用的存储器、外设资源的记录、连接信息等。
PCB是OS对进程进行调度和管理的依据。有了PCB,就可以物理地表征一个进程。数据集合D程序PPCBPCB由OS统一管理,应用程序本身无法访问PCB
PCB可以动态地描述进程的执行情况。另外,程序是一个客观存在,而进程是有生命期的。从创建到消亡。可以这样理解进程从创建到消亡的过程。主叫进程
a、对主叫而言,摘机这个事件发生,OS就为它创建一个进程,其初始状态为就绪态,等待分配处理机处理这个事件。
一个新创建的进程,不是通过等待状态,等待事件发生而进入就绪状态的。因为此前根本就不存在这个进程,也就无所谓进程状态。主叫进程
b、对被叫而言,OS一旦发现主叫进程发出的呼叫消息,就为被叫创建一个进程,其初始状态为就绪态,等待分配处理机处理这个事件。
此后,整个呼叫过程依赖于这两个进程之间的通信。被叫进程
c、操作系统一旦发现一个进程发出的话终挂机的消息,处理完后,就用撤消原语撤消息这一进程。另一进程的撤消同理。
d、以上我们讨论的是用户呼叫进程的创建和撤消,对中继呼叫进程、维护管理进程的创建和撤消也是类似的。6、进程通信
一次成功的呼叫接续需多个进程配合完成,因此,进程之间必须进行通信。一个进程可以向另一个进程发送消息,也可以向另一个进程请求一个消息。如果一个进程在某一时刻的执行依赖于另一个进程发来的消息,那么进程之间的通信机制决定着进程的状态迁移。如一个用户拨完号码,就必须等待被叫进程发来的用户忙闲消息,才能执行下去。
在程控交换机中,进程之间的通信广泛采用的方法是消息缓冲通信。其基本思想是:由OS统一管理一组消息缓冲块,每个缓冲块可以存放一个消息,包含消息头和消息体。当一个进程要向其它进程发送消息时,先通过消息请求原语得到一个空闲的缓冲块,写入消息,然后通过消息发送原语发送此消息,由OS在适当的时候交给接收进程。当一个进程需要得到一个消息才能继续运行时,使用消息等待原语使进程进入等待状态。6、进程调度
OS负责对进程的管理。进程调度就是从就绪队列中挑选一个进程到处理机上执行。挑选的过程就是算法运算过程。(1)先来先服务方法其基本原则是按照就绪队列中进程的先后顺序,选择进程占用处理机。也就是说,就绪队列是一个先入先出队列。对于小型交换机,这种方法比较合适。
(2)时间片轮转法这种方法也服从于先来先服务的原则,但对每个进程都规定一个时间片。当一个进程时间片用完,未执行完毕的进程也要让出处理机给下一个进程去执行。而自己保护好现场后进入就绪队列,等待分配时间片。(3)分级调度将就绪进程分为多个优先级,送入不同的优先级队列,OS调度时,从优先级高的队列中选取进程,高优先级队列空时,才从低优先级队列中选取。在各队列中选取进程方法也可不同。目前最常用的方法是优先级与先来先服务相结合的方法。六、定时管理
在呼叫处理和维护管理中,会出现定时要求(绝对定时和相对定时)。当应用进程有定时要求时,通过系统调用向OS提出请求,OS会为其分配一个时限控制块,存入应用进程提出的时限值、进程标志等相关参数,然后将控制块加入定时队列。当定时时间到,OS会通知应用进程,并撤消这个时限控制块。1、时限控制块(TCB)
书上给出了S1240的TCB格式,但各种交换机软件中TCB大同小异,有以下几个主要字段。正向链接反向链接TCB标识进程标志号时限值消息缓冲区标识用户参数分别指向前、后TCB的首指针。每个TCB都有一个特定的标识码,做为在链表中查找该TCB的标识;这个标识码还存放在提出时限请求的进程所指定的单元,进程也可找到相应的TCB。使用该TCB的起程标志号。1、时限控制块(TCB)
书上给出了S1240的TCB格式,但各种交换机软件中TCB大同小异,有以下几个主要字段。正向链接反向链接TCB标识进程标志号时限值消息缓冲区标识用户参数如是绝对定时,则指定时、分;如果是相对定时,则给出以一定时间为单位的计数值,通常为100ms。当定时时间到,需向进程发送消息,就需使用消息缓冲区,使用哪个消息缓冲区,由该参数标识。使用该TCB的用户的一些参数。2、时限服务处理
(1)绝对定时时限处理应用进程将绝对时间做为参数,完成系统调用,OS会分配一段存储空间,形成TCB;为它指定一个标识号,写入相应字段;并且将应用进程的标识号也写入相应字段;写入定时值;将TCB按时间顺序插入时限队列;系统调用有一个返回值,返回的是TCB块的首指针,应用进程将其保存在指定的存储单元。将TCB按时间顺序插入时限队列的方法。HEAD07:0011:2022:1018:30OS记住将要插入队列的TCB的定时时间,OS是知道HEAD的地址的,根据HEAD正向或反向链接……18:30HEAD07:0011:2022:1018:30
绝对时限处理程序由OS负责调度,每分钟执行一次。主要工作就是检查第一个TCB中的时限值,将该值与当前时钟进行比较,若大于当前时钟值,说明时限未到,由于链表是按时间排序的,第一个TCB时限未到,后面的肯定也未到;若当前时钟值与TCB中的值相等,说明定时时间到,OS将根据TCB中的进程标识号,向进程发送消息,同时将TCB从链表中删除。另外,由于下一个或下几个TCB时限值可能与第一个TCB时限值相同,处理完第一个后,还要对后面的TCB做检查、处理,直到一个未到时的TCB为止。
(2)相对定时时限处理相对定时时限的请求方法与绝对定时时限类似,只不过链表中的定时值与绝对定时的不同。时限值是100ms的倍数。
HEAD4106第一个TCB定时为400ms第二个TCB定时多长时间呢???
(2)相对定时时限处理相对定时时限的请求方法与绝对定时时限类似,只不过链表中的定时值与绝对定时的不同。时限值是100ms的倍数。
HEAD4106哈哈…我知道了,第二个TCB应该定时400ms+1000ms=1400ms!!
现在,我们需定时1600ms,如何将TCB插入链表呢?HEAD410616
①从头开始搜索,将各TCB中的值累加,并与要插入的TCB的时限值比较。
②当累加值大于要插入TCB的时限值时,将该TCB插入搜索到的最后一个TCB的前面。
现在,我们需定时1600ms,如何将TCB插入链表呢?HEAD410616
③将插入的TCB的时限值设置为当前时限值减去前面所有时限值的累加和。
④还要调整后面一个TCB的时限值。HEAD410616OS记住将要插入队列的TCB的定时时间,OS是知道HEAD的地址的,根据HEAD正向或反向链接……1624HEAD410616
相对时限处理程序由OS负责调度,每100ms执行一次。主要工作就是检查第一个TCB中的时限值,将该值减1,如结果不为0,说明时限未到,由于链表是按时间排序的,第一个TCB时限未到,后面的肯定也未到;若结果为0,说明定时时间到,OS将根据TCB中的进程标识号,向进程发送消息,同时将TCB从链表中删除。另外,由于下一个或下几个TCB时限值可能与第一个TCB时限值相同,处理完第一个后,还要对后面的TCB做检查、处理,直到一个未到时的TCB为止。4.4呼叫处理程序一、呼叫处理程序的基本原理
呼叫处理程序负责呼叫的建立、监督、撤消及呼叫处理中的一些其它处理。呼叫处理程序在整个交换机的运行软件中所占比例并不大,但它运行十分频繁,占用处理机的时间最多。1、呼叫处理程序要解决的问题(1)多个呼叫请求同时要求处理机进行处理,而处理机在同一时刻只能处理一个呼叫,要求呼叫处理程序必须具有并发性。(2)要处理的各种事件都互不影响地加以处理,并且有些处理还必须在规定的时间内完成,要求呼叫处理程序具有实时性。2、呼叫处理程序使用的方法(1)并发性使用的方法交换机的基本工作过程是以状态和状态间迁移为基础的。最基本的状态可以分为用户空闲、等待拨号、收号、振铃、通话这几个状态,通话结束后又回到用户空闲状态。用户从一种状态到另一种状态的变化是靠某种外部事件触发的。在程控交换机中,一次完整的接续是由众多状态迁移构成的。处理机对某个接续的服务仅集中在对状态迁移过程中的作业执行,每个作业之间都被等待一个新的事件所需的时间分隔开,每当呼叫处理在等待一个新的事件时,相应的处理停顿下来,处理机就可以为其它接续服务。这样,从宏观上来看,处理机在同时为众多呼叫服务,实现了并发性的处理。(2)实时性使用的方法实时性表现为两个方面:一是硬件状态的检测,这是要求严格实时的,由时钟级程序实现。另一个是状态迁移后对用户的提示,如用户摘机后应能尽快听到拨号音,用户拨完号后应能尽快听到回铃音等,这些处理是由基本级程序完成,因此,在进程调度中使用优先级的方法实现。二、呼叫处理程序的基本组成及层次结构呼叫控制信令控制设备控制话路设备第3层第2层第1层硬件第一个层次是设备控制程序,也称硬件接口程序,是硬件设备与信令程序和呼叫控制程序之间的接口。定期收集电路的状态信息,并以事件的形式报告给信令处理程序;接收呼叫控制和信令控制程序的命令,驱动硬件电路动作。二、呼叫处理程序的基本组成及层次结构呼叫控制信令控制设备控制话路设备第3层第2层第1层硬件第二个层次是信令控制程序,它的主要功能是将外部电路的状态译成相应的电话信令,报告给呼叫控制程序;根据呼叫控制程序发来的命令控制信令的传送。二、呼叫处理程序的基本组成及层次结构呼叫控制信令控制设备控制话路设备第3层第2层第1层硬件第三个层次是呼叫控制程序和呼叫服务程序。呼叫控制程序的主要功能是对呼叫的当前状态和接收到的事件进行分析,调用相应的处理程序运行,对接收到的事件进行处理,协调各模块的工作,控制呼叫的进展;呼叫服务程序的主要功能是根据呼叫控制程序的要求检索数据库,为呼叫接续提供相关数据。呼叫控制模块用户线路信令处理中继线路信令处理MFC发送模块MFC接收模块电话资源管理计费处理呼叫服务模块用户摘挂机扫描拨号数字接收线路信令扫描MFC信令发送MFC信令扫描进程级时钟级呼叫处理程序的基本结构三、呼叫处理用到的数据
呼叫处理中要用到大量的数据,这些数据可分为暂时性数据和半固定数据。1、暂时性数据又称动态数据,这些数据是在呼叫处理中产生的,它们描述了呼叫的进展情况、相应设备的状态及各设备之间的链接关系,随着呼叫的进展,这些数据被呼叫处理程序不断地修改。(1)呼叫控制块呼叫控制块详细记录了一个呼叫的详细信息,如呼叫的状态、主叫和被叫用户信息、占用的各种公用设备及相应的连接关系、呼叫的开始时间、应答时间、计费存储器指针等。呼叫控制块对应每一个呼叫,在每一个呼叫建立时都要申请一个呼叫控制块,在呼叫释放时归还。呼叫控制块由呼叫控制程序管理。(2)设备表每个设备(如用户电路、中继电路等)都有相应的表格,用来记录该设备的状态、逻辑号和设备号、占用该设备的呼叫控制块号码等。(3)资源状态表在程控交换机中,有很多电话资源,如收号器、发号器和交换网络等,分别有相应的表格记录各资源的当前状态。2、半固定数据主要包括用户数据和局数据。呼叫处理程序对用户数据和局数据只能查询,不能修改,维护管理人员可通过人机命令对用户数据和局数据进行修改,因此称半固定数据。四、时钟级扫描程序1、用户摘、挂机扫描程序负责检测用户线状态的变化,用户摘机时,环路闭合,用户挂机时,环路断开。实质上是检测用户线环路的状态,扫描周期为96ms。设0表示用户线环路断开,1表示用户线环路闭合,那么我们说,如果检测到1,就可以上报用户摘机事件,如果检测到0,就上报用户挂机事件。可以吗?用一个存储单元SCN表示本次扫描结果,用另一个存储单元LL表示上次扫描结果,LL初值为0。每个用户占1位。0000000001010101LLSCN当扫描周期到来时,读取线路状态送SCN当扫描结果处理完后,将SCN的值送给LL,在下一个扫描周期将此值做为上次扫描值。01010101LL0000000000000000LLSCN当扫描周期到来时,读取线路状态送SCN进行LL∧SCN运算,结果为:00000000运算结果为0,说明所有环路状态未有变化,将SCN值送LL,本次扫描处理结束。0000000000000010LLSCN当扫描周期再到来时,读取线路状态送SCN进行LL∧SCN运算,结果为:00000010运算结果不为0,说明某一或某几个环路状态有变化,进行寻1操作,上报这一个或几个用户摘机事件,将SCN值送LL,本次扫描处理结束。实际上,在进行LL∧SCN运算并处理后,还要进行LL∧SCN运算并处理,目的是检测用户是否挂机。当LL∧SCN运算结果为0时,说明无用户挂机,否则说明有用户挂机,进行寻1操作后,将这些用户的挂机事件上报。拨号脉冲扫描与摘挂机扫描类似,也是判断用户线环路状态,不过,由于还要判断脉冲速率,以区别于摘挂机动作,要由8ms程序和96ms程序协同工作才能识别出脉冲个数。2、DTMF扫描程序D3D2D1D0SPD3-D0保持高阻状态当无DTMF信号输入时SP保持低电平ENMPU使EN端为低电平,封锁输出锁存器MT8870输出锁存器2、DTMF扫描程序D3D2D1D0SPD3-D0在EN跳变为高电平时,输出DTMF的二进制编码,供MPU读取当有DTMF信号输入时在接收到有效的DTMF信号后,SP跳变为高电平,并在DTMF信号维持期间,一直保持高电平输出锁存器MT8870EN在SP跳变为高电平时,DTMF的二进制编码进入输出锁存器,该值在下一个DTMF到来之前一直保持。MPU此时可将EN置为高电平,开放输出锁存器。2、DTMF扫描程序D3D2D1D0SP在这种情况下,D3-D0在EN维持高电平时,还一直保持着DTMF信号的二进制编码当DTMF信号消失时SP跳变为低电平EN输出锁存器MT88702、DTMF扫描程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论