logo资料库

北邮大三下 现代交换原理实验一.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
实验报告 课程名称: 现代交换原理与通信网技术 实验名称: 时间表调度实验报告 班 级: 2010211306 学 号: 10211281 姓 名: 张力元 指导教师:
基础实验一 时间表调度实验 1. 实验目的 驱动交换网络实验用来考查学生对时间表调度原理的掌握情况。 2. 实验原理及设计 在程控数字交换的体系结构中,周期级程序(例如摘挂机检测程序、脉冲识 别程序、位间隔识别程序)是由时间表调度实现的。所谓时间表调度,是指每经 过交换系统的最短有效时间(这通常是指各周期性程序周期的最大公约数),都 会检查调度表的调度要求,如果某个程序在这时需要执行,则调度程序开始执行 它。 在我们设计的时间表调度实验中,这个调度表的调度是静态的。所谓静态, 是指我们的调度表是在系统初始化的时候就建立起来的,在系统运行的情况下不 再改动。 实验要求的就是这个调度表的初始化。这个调度表如下: 时间(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,就什 么都不做。每当执行到这个表的最后一行,调度任务会返回第一行循环执行。而 你所要做的就是按照你的理解来填写这个调度表。
3. 实验主要数据结构: 函数功能:完成调度表的初始化; 函数原型:initSchTable(int ScheduleTable[SchTabLen][SchTabWdh]); 其中 SchTalLen 和 SchTabWdh 为在 bconstant.h 中的宏定义: #define SchTabLen 20 //代表这个调度表为 20 行(相邻行之间的时间间隔为 10ms); #define SchTabWdh 3 //代表三个周期性调度任务 //0:摘挂机检测任务;1:脉冲检测任务; //2:位间隔检测任务; 4. 实验效果检验 当调度表初始化正确时,能够进行正常的通话;如果初始化不正确,可能 会造成周期性程序的不正常调用,例如位间隔调度的延迟会造成识别位间隔的延 误甚至丢失。 注:由于为循环程序,所以调度表的初始化方案不唯一。 5. 实验代码 #include "bconstant.h" extern "C" _declspec(dllexport) void initSchTable(int ScheduleTable[SchTabLen][SchTabWdh]) { int i; for(i=0;i
return; } 6. 实验结果 程序初始化后能正确检测摘挂机动作并进行通话,与预计结果相符,试验成 功。 7. 实验心得 本次实验比较简单,理解了时间表调度原理之后,对调度表初始化程序的编 程实现也非常容易,不到一分钟就编程完成并实验成功。 通过本次实验,我加深了对时间表调度原理的掌握,对其具体的实现也有了 初步的理解。
分享到:
收藏