《现代交换原理》实验报告
实验名称 时间表调度实验
班 级
学 号
姓 名
指导教师
实验1 时间表调度实验
一、实验目的
熟悉实验环境和基本操作,并驱动交换网络实验用来考查学生对时间表调度原理的掌握情况,尤其是拨号脉冲识别、按键号码识别和为间隔识别如何实现不同时间间隔的调用。
二、实验内容和实验步骤(简写)
在程控数字交换的体系结构中,周期级程序(例如摘挂机检测程序、脉冲识别程序、位间隔识别程序)是由时间表调度实现的。所谓时间表调度,是指每经过交换系统的最短有效时间(这通常是指各周期性程序周期的最大公约数),都会检查调度表的调度要求,如果某个程序在这时需要执行,则调度程序开始执行它。
在时间表调度实验中,这个调度表和书112页的类似,其中拨号脉冲识别程序是每10ms调度一次,按键号码识别程序是没100ms调度一次,位间隔识别程序是每200ms调度一次。并且这个调度表的调度是静态的。所谓静态,是指我们的调度表是在系统初始化的时候就建立起来的,在系统运行的情况下不再改动。 实验要求的就是这个调度表的初始化。所以,实验所仿真的交换系统提供了三个周期性调度程度(摘挂机检测程序、脉冲识别程序和位间隔识别程序),它们的调用周期分别为200ms、10ms和100ms。系统的最小调度时间为10ms。如图所示,每隔10ms,我们就会检查这个表的一行,如果该行上某一列为1,我们就执列所对应的任务,如果为0,就什么都不做。每当执行到这个表的最后一行,调度任务会返回第一行循环执行。
具体的实验步骤如下:
首先插好电子狗,然后打开软件,找到了这次实验,先运行demo,观察正确运行的程序的样子;
然后返回到要编写代码的页面,通过实验课之前学习的代码中的各个变量的接口和定义变量的值,并根据switch.chm中介绍编写好代码,将代码粘贴到这个页面,编译运行。
发现程序正确运行。
三、源代码
#include \
extern \ _declspec(dllexport) void initSchTable(int ScheduleTable[SchTabLen][SchTabWdh]) {
int time[SchTabWdh]={20,1,10}; for (int i=0;i for (int j=0;j ScheduleTable[i][j]=0; else ScheduleTable[i][j]=1; return; } 四、实验结果 程序可以正确运行,时间调度表初始化后能正确检测摘挂机动作并进行通话,通话结束后一方挂机未挂机一方送忙音,没有出现因为初始化错误而不能打电话的情况,也没有出现因为周期不正常而产生位间隔的延迟或消失。与使用demo演示的运行结果相同,实验成功。 五、实验小结 本次实验需要认真阅读实验原理及设计,了解如何调度时间表,理解时间表各个调度实现的原理,再根据switch.chm中对各个变量的解释,完成对时间调度表进行初始化的代码。实验进行比较顺利,进一步加深了对时间表调度的理解,也掌握了时间表调度的实现。
时间表调度实验
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)