欢迎来到天天文库
浏览记录
ID:859938
大小:4.21 MB
页数:28页
时间:2017-09-21
《现代交换技术实验报告(全)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基础实验一时间表调度实验1.实验内容 链接:实验目的 链接:实验原理及设计 链接:实验主要数据结构 链接:实验效果检验一.实验目的: 驱动交换网络实验用来考查学生对时间表调度原理的掌握情况。二.实验原理及设计: 在程控数字交换的体系结构中,周期级程序(例如摘挂机检测程序、脉冲识别程序、位间隔识别程序)是由时间表调度实现的。所谓时间表调度,是指每经过交换系统的最短有效时间(这通常是指各周期性程序周期的最大公约数),都会检查调度表的调度要求,如果某个程序在这时需要执行,则调度程序开始执行它。 在我们设计的时间表调度实验中,这个调度表的调度是静态的。所谓静态,是指我们的调度表是在系统
2、初始化的时候就建立起来的,在系统运行的情况下不再改动。实验要求的就是这个调度表的初始化。这个调度表如下:时间(10ms) 任务 0:摘挂机检测任务1:脉冲检测任务2:位间隔检测任务 0 0/1 0/1 0/1 1 0/1 0/1 0/1 ..... .... ..... 18
3、 0/1 0/1 0/1 19 0/1 0/1 0/1 我们这个交换系统提供了三个周期性调度程度(摘挂机检测程序、脉冲识别程序和位间隔识别程序),它们的调用周期分别为200ms、10ms和100ms,所以我们系统的最小调度时间为10ms。如图所示,每隔10ms,我们就会检查这个表的一行,如果该行上某一列为1,我们就执列所对应的任务,如果为0,就什么都不做。每当执行到这个表的最后一行,调度任务会返回第一行循环执行。而你所要做的就是按照你的理解来填写这个调度表。三.实验主要数据结构: 函数功能:完成调度表的初始化;
4、 函数原型:initSchTable(intScheduleTable[SchTabLen][SchTabWdh]); 其中SchTalLen和SchTabWdh为在bconstant.h中的宏定义: #defineSchTabLen20 //代表这个调度表为20行(相邻行之间的时间间隔为10ms); #defineSchTabWdh3 //代表三个周期性调度任务——0:摘挂机检测任务;1:脉冲检测任务;2:位间隔检测任务; 四.实验效果检验: 当调度表初始化正确时,能够进行正常的通话;如果初始化不正确,可能会造成周期性程序的不正常调用,例如位间隔调度的延迟会造成
5、识别位间隔的延误甚至丢失。 注:由于为循环程序,所以调度表的初始化方案不唯一。2.源代码#include"bconstant.h"extern"C"_declspec(dllexport)voidinitSchTable(intScheduleTable[SchTabLen][SchTabWdh]){inti;for(i=0;i<=19;i++){ScheduleTable[i][0]=0;}ScheduleTable[0][0]=1;for(i=0;i<=19;i++){ScheduleTable[i][1]=1;}for(i=0;i<=19;i++){ScheduleTable
6、[i][2]=0;}ScheduleTable[0][2]=1;ScheduleTable[10][2]=1;return;}基础实验二 摘挂机检测实验 1.实验内容 链接:实验目的 链接:实验原理及设计 链接:实验主要数据结构 链接:实验主体流程图 一.实验目的 摘挂机检测实验用来考查学生对摘挂机检测原理的掌握情况。 二.实验原理及设计 设用户在挂机状态时扫描输出为“0”,用户在摘机状态时扫描输出为“1”,摘挂机扫描程序的执行周期为200ms,那么摘机识别,就是在200ms的周期性扫描中找到从“0”到“1”的变化点,挂机识别就是在200ms的周期性扫描中找到从
7、“1”到“0”的变化点,该原理的示意图如下所示: 在我们的实验中,我们把前200ms的线路状态保存以备这次可以读取,同时读出这次的线路状态,把前200ms的线路状态取反与这次的线路状态相与,如果为1,就说明检测到摘机消息了。同理,我们把这次的线路状态取反再与前200ms的线路状态相与,如果为1就说明检测到挂机消息了,然后把摘挂机信号作为事件放入摘挂机队列中。 三.实验主要数据结构 函数功能为:检测到摘、挂机事件,并把该事件放入到摘挂机事件队列中。
此文档下载收益归作者所有