MINI-MICRO SYSTEMS
1999年 第20卷 第1期 Vol.20 No.1
程控交换机软件的任务调度方法
戴祝英 王 刚
摘 要 程控交换机软件实际上是一个实时操作系统软件,其任务调度比较复杂.本文介绍了程控交换机软件的任务调度方法,并给出了部分程序框架.
关 键 词 程控交换机软件 任务调度 周期
分 类 号 TP31
ALGORITHM TO SCHEDULE TASKS FOR THE SOFTWARE uOF THE STORED PROGRAM
CONTROLLED SWITCHING
DAI Zhuying WANG Gang
( Geology University Of China Wuhan 430074) ( Wuhan Huda Computer Company Wuhan 430074)
Abstract The software of the stored program controlled switching is actually a real-time operating system. It's very complicate to schedule tasks for the software of the stored program controlled switching . This article describes the algorithm to schedule tasks for the software of the stored program controlled switching and its program frames.
Key words SPC Schedule tasks period
程控交换机软件的任务分为不同优先级,按优先级由低到高的顺序依次为:基本级、周期级和故障级等三级.基本级任务是无实时要求的任务,如用户摘/挂机处理、号码分析等;周期级任务是要求在规定的时间内完成的任务,如用户线摘/挂机监视、中继线线路信号和多频互控信号的输入/输出等;故障级任务负责故障识别和处理.下面举例说明上述三级任务的调度方法.1 前言
2 基本级任务的调度方法 基本级任务通常有两种调度方法:
方法a:以功能模块为调度对象.如将基本级任务分为以下几个功能模块:摘机处理模块、号码分析模块、挂机处理模块……摘机处理模块同时对所有刚刚摘机的用户都进行处理,如分配各种资源、送拨号音等;挂机处理模块则同时对所有刚刚挂机的用户都进行处理,如释放各种资源等.形式为:
功能模块1 (对所有刚刚摘机的用户都进行处理);
功能模块2 (对所有刚刚挂机的用户都进行处理);
功能模块3 (对所有刚刚拨完号的用户都进行号码处理);
……
任务m(对用户J进行挂机处理);
……
方法b:以任务为调度对象.如某个用户刚摘机,则产生一个对该用户进行摘机处理的任务,将此任务插入任务队列,按先进先出的顺序处理任务队列中的每个任务.调度形式为:
任务1(对用户I进行摘机处理);
任务2(对用户J进行摘机处理);
……
任务n(对用户I进行挂机处理);
……
3 周期级任务的调度方法 周期级任务必须在指定时间内完成.周期级任务的调度,是在时钟中断处理程序中进行的,按不同的时间周期调度不同的周期级任务.下面举例说明:
例1. 双音多频拨号扫描任务:要求在大约30ms(毫秒)内对所有正在进行双音多频拨号的用户线扫描一遍.
方法a.以30ms为周期调度双音多频拨号扫描任务.在30ms(毫秒)内对所有正在进行双音多频拨号的用户线扫描一遍.
这种方法编程简单,其C语言程序框架如下:
unsigned char max_port ; //最大用户数
unsigned char dial_number 〔max_port 〕 ; //存放所有用户拨号内容的数组
extern unsigned char dial_in (unsigned char port_no ) ; //读用户port_no的拨号内容
void scan_30ms ( void ) // 每30ms执行一次的拨号扫描函数,每次扫描所有用户
{
unsigned char port_no ;
for (port_no = 0 ; port_no
dial_number〔port_no〕 = dial_in (port_no );
}
但这种方法会出现负载不均的情况: 在某个周期内, 正在进行双音多频拨号的用户特别少双音多频拨号的用户特别多,此时该任务的执行时(甚至没有),此时该任务的执行时间特别短、负载特别
轻;而在另外某个周期,同时进行间特别长、负载特别重.如图1(a)所示.
图1
方法b、将所有用户线分为三组,以10ms为周期调度双音多频拨号扫描任务,每次只扫描一组用户线,30ms内扫描完全部用户.这样每个周期内负载相对比较均衡.如图1(b)所示.其它周期级任务都可采用此法调度以均衡负载.
这种方法的C语言程序框架如下:
unsigned char max_port ; //最大用户数
unsigned char dial_number 〔max_port 〕 ; //存放所有用户拨号内容的数组
extern unsigned char dial_in (unsigned char port_no ) ; //读用户port_no的拨号内容
unsigned char group_no; //用户组号,初值为0
void scan_10ms () //每10ms执行一次的拨号扫描函数,每次扫描一组用户
{
unsigned char port_no , ports = max_port/3 ;
for (port_no = group_no*ports; port_no
dial_number〔port_no〕 = dial_in (port_no );
if ( (++group_no)= = 3 ) group_no=0;
}
例2.各种信号音(回铃音、忙音等)的处理.一般情况下,硬件提供一个450HZ的连续信号音源.而不同信号音有不同的断续比,如回铃音为1秒续、4秒断,忙音为0.5秒续、0.5秒断,为了让不同用户听不同的信号音,有两种方法:
图2
方法a.由周期级任务对每个用户线和中继线进行控制,如图2(a)所示:用户i听回铃音,周期级任务控制开关K1续1秒、断4秒;中继 j听忙音,周期级任务控制开关K2续0.5秒、断0.5秒.
方法b.设定几个通路(时隙或链路)专门传递信号音,一个通路对应一种信号音,如图2(b)所示:周期级任务控制信号音源到回铃音通路的开关KA续1秒、断4秒 ,到忙音通路的开关KB续0.5秒、断0.5秒;而某用户或中继需听某信号音时,只要将它与对应的通路开关K合上、不听时断开即可,这可由基本级任务完成.这种方法的周期级任务C语言程序框架如下:
extern void KA_on(void) ; //控制开关KA合上的外部函数
extern void KA_off(void); //控制开关KA断开的外部函数
extern void KB_on(void) ; //控制开关KB合上的外部函数
extern void KB_off(void); //控制开关KB断开的外部函数
unsigned char count_100ms; //100ms计数器,初值为0
unsigned char count_1s; //1秒计数器,初值为0
void ring_tone(void) //回铃音通路开关控制函数,
{每1秒执行一次
switch(count_1s++)
{
case 0: KA_on(); break;
case 1: KA_off(); break;
case 2: break;
case 3: break;
case 4: count_1s = 0; break;
}
}
void busy_tone(void) //忙音通路开关控制函数,每100ms执行一次
{
count_100ms++;
if (count_100ms = = 5)
KB_on();
if (count_100ms = = 10)
{ KB_off(); count_100ms = 0 }
}
4 故障级任务的调度方法
一般故障处理由故障中断处理程序完成,其任务调度比较简单,不再赘述.
戴祝英,讲师,主要从事计算机应用系统的开发与教学工作.王刚,高级工程师,主要从事计算机控制与通信的开发与研究.
作者单位: 戴祝英 中国地质大学信息工程学院 武汉 430074
王 刚 武汉华达电子有限公司 武汉 430074
参考文献
〔1〕 最新C语言程序设计. 徐德民. 北京. 电子工业出版社
〔2〕 电信网的信号系统. 姚洁莹. 北京. 人民邮电出版社
1997-09-25收稿
程控交换机软件的任务调度方法
作者:
作者单位:
刊名:
英文刊名:
年,卷(期):
被引用次数:戴祝英, 王刚, DAI Zhuying, WANG Gang戴祝英,DAI Zhuying(中国地质大学信息工程学院,武汉,430074), 王刚,WANG Gang(武汉华达电子有限公司,武汉,430074)小型微型计算机系统MINI-MICRO SYSTEMS1999,20(1)2次
1.徐德民 最新C语言程序设计
2.姚洁莹 电信网的信号系统
1.期刊论文 伏浩 一种程控交换机软件任务调度方法 -科技资讯2009(13)
程控交换机软件实际上是一个实时操作系统软件,其任务调度比较复杂.本文主要探讨一种周期级任务调度方法,举例说明了其在程控变换机软件中的具体应用.
1.伏浩 一种程控交换机软件任务调度方法[期刊论文]-科技资讯 2009(13)
2.韩晓霞 电力通信用小型数字程控交换机的设计——整体设计及软件程序的实现[学位论文]硕士 2005
本文链接:http://d.g.wanfangdata.com.cn/Periodical_xxwxjsjxt199901015.aspx
授权使用:东南大学图书馆(wfdndx),授权号:e87e9b32-d2a6-4510-8bd8-9e8800983ca7
下载时间:2011年2月12日
MINI-MICRO SYSTEMS
1999年 第20卷 第1期 Vol.20 No.1
程控交换机软件的任务调度方法
戴祝英 王 刚
摘 要 程控交换机软件实际上是一个实时操作系统软件,其任务调度比较复杂.本文介绍了程控交换机软件的任务调度方法,并给出了部分程序框架.
关 键 词 程控交换机软件 任务调度 周期
分 类 号 TP31
ALGORITHM TO SCHEDULE TASKS FOR THE SOFTWARE uOF THE STORED PROGRAM
CONTROLLED SWITCHING
DAI Zhuying WANG Gang
( Geology University Of China Wuhan 430074) ( Wuhan Huda Computer Company Wuhan 430074)
Abstract The software of the stored program controlled switching is actually a real-time operating system. It's very complicate to schedule tasks for the software of the stored program controlled switching . This article describes the algorithm to schedule tasks for the software of the stored program controlled switching and its program frames.
Key words SPC Schedule tasks period
程控交换机软件的任务分为不同优先级,按优先级由低到高的顺序依次为:基本级、周期级和故障级等三级.基本级任务是无实时要求的任务,如用户摘/挂机处理、号码分析等;周期级任务是要求在规定的时间内完成的任务,如用户线摘/挂机监视、中继线线路信号和多频互控信号的输入/输出等;故障级任务负责故障识别和处理.下面举例说明上述三级任务的调度方法.1 前言
2 基本级任务的调度方法 基本级任务通常有两种调度方法:
方法a:以功能模块为调度对象.如将基本级任务分为以下几个功能模块:摘机处理模块、号码分析模块、挂机处理模块……摘机处理模块同时对所有刚刚摘机的用户都进行处理,如分配各种资源、送拨号音等;挂机处理模块则同时对所有刚刚挂机的用户都进行处理,如释放各种资源等.形式为:
功能模块1 (对所有刚刚摘机的用户都进行处理);
功能模块2 (对所有刚刚挂机的用户都进行处理);
功能模块3 (对所有刚刚拨完号的用户都进行号码处理);
……
任务m(对用户J进行挂机处理);
……
方法b:以任务为调度对象.如某个用户刚摘机,则产生一个对该用户进行摘机处理的任务,将此任务插入任务队列,按先进先出的顺序处理任务队列中的每个任务.调度形式为:
任务1(对用户I进行摘机处理);
任务2(对用户J进行摘机处理);
……
任务n(对用户I进行挂机处理);
……
3 周期级任务的调度方法 周期级任务必须在指定时间内完成.周期级任务的调度,是在时钟中断处理程序中进行的,按不同的时间周期调度不同的周期级任务.下面举例说明:
例1. 双音多频拨号扫描任务:要求在大约30ms(毫秒)内对所有正在进行双音多频拨号的用户线扫描一遍.
方法a.以30ms为周期调度双音多频拨号扫描任务.在30ms(毫秒)内对所有正在进行双音多频拨号的用户线扫描一遍.
这种方法编程简单,其C语言程序框架如下:
unsigned char max_port ; //最大用户数
unsigned char dial_number 〔max_port 〕 ; //存放所有用户拨号内容的数组
extern unsigned char dial_in (unsigned char port_no ) ; //读用户port_no的拨号内容
void scan_30ms ( void ) // 每30ms执行一次的拨号扫描函数,每次扫描所有用户
{
unsigned char port_no ;
for (port_no = 0 ; port_no
dial_number〔port_no〕 = dial_in (port_no );
}
但这种方法会出现负载不均的情况: 在某个周期内, 正在进行双音多频拨号的用户特别少双音多频拨号的用户特别多,此时该任务的执行时(甚至没有),此时该任务的执行时间特别短、负载特别
轻;而在另外某个周期,同时进行间特别长、负载特别重.如图1(a)所示.
图1
方法b、将所有用户线分为三组,以10ms为周期调度双音多频拨号扫描任务,每次只扫描一组用户线,30ms内扫描完全部用户.这样每个周期内负载相对比较均衡.如图1(b)所示.其它周期级任务都可采用此法调度以均衡负载.
这种方法的C语言程序框架如下:
unsigned char max_port ; //最大用户数
unsigned char dial_number 〔max_port 〕 ; //存放所有用户拨号内容的数组
extern unsigned char dial_in (unsigned char port_no ) ; //读用户port_no的拨号内容
unsigned char group_no; //用户组号,初值为0
void scan_10ms () //每10ms执行一次的拨号扫描函数,每次扫描一组用户
{
unsigned char port_no , ports = max_port/3 ;
for (port_no = group_no*ports; port_no
dial_number〔port_no〕 = dial_in (port_no );
if ( (++group_no)= = 3 ) group_no=0;
}
例2.各种信号音(回铃音、忙音等)的处理.一般情况下,硬件提供一个450HZ的连续信号音源.而不同信号音有不同的断续比,如回铃音为1秒续、4秒断,忙音为0.5秒续、0.5秒断,为了让不同用户听不同的信号音,有两种方法:
图2
方法a.由周期级任务对每个用户线和中继线进行控制,如图2(a)所示:用户i听回铃音,周期级任务控制开关K1续1秒、断4秒;中继 j听忙音,周期级任务控制开关K2续0.5秒、断0.5秒.
方法b.设定几个通路(时隙或链路)专门传递信号音,一个通路对应一种信号音,如图2(b)所示:周期级任务控制信号音源到回铃音通路的开关KA续1秒、断4秒 ,到忙音通路的开关KB续0.5秒、断0.5秒;而某用户或中继需听某信号音时,只要将它与对应的通路开关K合上、不听时断开即可,这可由基本级任务完成.这种方法的周期级任务C语言程序框架如下:
extern void KA_on(void) ; //控制开关KA合上的外部函数
extern void KA_off(void); //控制开关KA断开的外部函数
extern void KB_on(void) ; //控制开关KB合上的外部函数
extern void KB_off(void); //控制开关KB断开的外部函数
unsigned char count_100ms; //100ms计数器,初值为0
unsigned char count_1s; //1秒计数器,初值为0
void ring_tone(void) //回铃音通路开关控制函数,
{每1秒执行一次
switch(count_1s++)
{
case 0: KA_on(); break;
case 1: KA_off(); break;
case 2: break;
case 3: break;
case 4: count_1s = 0; break;
}
}
void busy_tone(void) //忙音通路开关控制函数,每100ms执行一次
{
count_100ms++;
if (count_100ms = = 5)
KB_on();
if (count_100ms = = 10)
{ KB_off(); count_100ms = 0 }
}
4 故障级任务的调度方法
一般故障处理由故障中断处理程序完成,其任务调度比较简单,不再赘述.
戴祝英,讲师,主要从事计算机应用系统的开发与教学工作.王刚,高级工程师,主要从事计算机控制与通信的开发与研究.
作者单位: 戴祝英 中国地质大学信息工程学院 武汉 430074
王 刚 武汉华达电子有限公司 武汉 430074
参考文献
〔1〕 最新C语言程序设计. 徐德民. 北京. 电子工业出版社
〔2〕 电信网的信号系统. 姚洁莹. 北京. 人民邮电出版社
1997-09-25收稿
程控交换机软件的任务调度方法
作者:
作者单位:
刊名:
英文刊名:
年,卷(期):
被引用次数:戴祝英, 王刚, DAI Zhuying, WANG Gang戴祝英,DAI Zhuying(中国地质大学信息工程学院,武汉,430074), 王刚,WANG Gang(武汉华达电子有限公司,武汉,430074)小型微型计算机系统MINI-MICRO SYSTEMS1999,20(1)2次
1.徐德民 最新C语言程序设计
2.姚洁莹 电信网的信号系统
1.期刊论文 伏浩 一种程控交换机软件任务调度方法 -科技资讯2009(13)
程控交换机软件实际上是一个实时操作系统软件,其任务调度比较复杂.本文主要探讨一种周期级任务调度方法,举例说明了其在程控变换机软件中的具体应用.
1.伏浩 一种程控交换机软件任务调度方法[期刊论文]-科技资讯 2009(13)
2.韩晓霞 电力通信用小型数字程控交换机的设计——整体设计及软件程序的实现[学位论文]硕士 2005
本文链接:http://d.g.wanfangdata.com.cn/Periodical_xxwxjsjxt199901015.aspx
授权使用:东南大学图书馆(wfdndx),授权号:e87e9b32-d2a6-4510-8bd8-9e8800983ca7
下载时间:2011年2月12日