文档详情

北邮大三交换原理实验一时间表调度.doc

发布:2017-03-22约1.84千字共4页下载文档
文本预览下载声明
《现代交换原理》实验报告 实验名称 时间表的调度实验 班 级 学 号 姓 名 实验1 时间表的调度实验 一、实验目的 驱动交换网络实验用来考查学生对时间表调度原理的掌握情况。 在我们设计的时间表调度实验中,这个调度表的调度是静态的。所谓静态,是指我们的调度表是在系统初始化的时候就建立起来的,在系统运行的情况下不再改动。 实验要求的就是这个调度表的初始化。这个调度表如下: 时间(10ms)? \任务 ?0:摘挂机检测任务 1:脉冲检测任务 2:位间隔检测任务 ?????? 0 ?????? 0/1 ?????? 0/1 ????? 0/1 ?????? 1 ?????? 0/1 ?????? 0/1 ????? 0/1 ?..... ????????????????????????????????????????? .... ????????????????????????????????????????????????????????????????????????? ..... ????? 18 ?????? 0/1 ?????? 0/1 ?????? 0/1 ????? 19 ?????? 0/1 ?????? 0/1 ?????? 0/1 我们这个交换系统提供了三个周期性调度程度(摘挂机检测程序、脉冲识别程序和位间隔识别程序),它们的调用周期分别为200ms、10ms和100ms,所以我们系统的最小调度时间为10ms。如图所示,每隔10ms,我们就会检查这个表的一行,如果该行上某一列为1,我们就执列所对应的任务,如果为0,就什么都不做。每当执行到这个表的最后一行,调度任务会返回第一行循环执行。而你所要做的就是按照你的理解来填写这个调度表。 实验步骤: 了解实验原理及其设计; 了解实验平台的使用及数据结构; 编写C程序实现时间调度表的初始化; 在实验平台上运行程序; 三、源代码 1、实验主要数据结构: 函数功能:完成调度表的初始化; 函数原型:initSchTable(int ScheduleTable[SchTabLen][SchTabWdh]); 其中SchTalLen和SchTabWdh为在bconstant.h中的宏定义: #define SchTabLen 20 //代表这个调度表为20行(相邻行之间的时间间隔为 10ms); #define SchTabWdh 3 //代表三个周期性调度任务 //0:摘挂机检测任务;1:脉冲检测任务; //2:位间隔检测任务; 实验代码 #include bconstant.h extern C _declspec(dllexport) void initSchTable(int ScheduleTable[SchTabLen][SchTabWdh]) { int i; for(i=0;iSchTabLen;i++){ if(i%20 == 0) ScheduleTable[i][0]=1; else ScheduleTable[i][0]=0; ScheduleTable[i][1]=1; if(i%10 == 0) ScheduleTable[i][2]=1; else ScheduleTable[i][2]=0; } return; } 四、实验结果 时间调度表初始化后能正确检测摘挂机动作并进行通话,通话结束后一方挂机未挂机一方送忙音。被叫正在通话时会正常给主叫送忙音。 五、实验小结 本次实验比较简单,需要认真阅读实验原理及设计,了解如何调度时间表,所做的编程就是对时间调度表进行初始化,在主要数据结构下编程也比较容易,实验过程没有出现什么问题,加深了对交换机时间表调度情况的理解。
显示全部
相似文档