现代交换原理-第一次实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四. 实验效果检验 当调度表初始化正确时,能够进行正常的通话;如果初始化不正确,可能会造成周期性 程序的不正常调用,例如位间隔调度的延迟会造成识别位间隔的延误甚至丢失。
五. 实验程序 #include "bconstant.h"
来自百度文库
现代交换原理
时间表调度实验
计算机学院 horizon
extern "C" _declspec(dllexport) void initSchTable(int ScheduleTable[SchTabLen][SchTabWdh]) { int i;
实验报告
学 院: 计算机学院
课程名称:现代交换原理与通信网技术
实验名称: 时间表调度试验
班 级:
2009211311
姓 名:
horizon
学 号:
指导老师:
丁玉荣
现代交换原理
时间表调度实验
计算机学院 horizon
一. 实验目的 驱动交换网络实验用来考查学生对时间表调度原理的掌握情况。
二. 实验原理及设计 在程控数字交换的体系结构中,周期级程序(例如摘挂机检测程序、脉冲识别程序、位 间隔识别程序)是由时间表调度实现的。所谓时间表调度,是指每经过交换系统的最短 有效时间(这通常是指各周期性程序周期的最大公约数),都会检查调度表的调度要求, 如果某个程序在这时需要执行,则调度程序开始执行它。 在我们设计的时间表调度实验中,这个调度表的调度是静态的。所谓静态,是指我们的 调度表是在系统初始化的时候就建立起来的,在系统运行的情况下不再改动。 实验要 求的就是这个调度表的初始化。这个调度表如下:
三. 实验主要数据结构 函数功能:完成调度表的初始化; 函数原型:initSchTable(int ScheduleTable[SchTabLen][SchTabWdh]); 其中 SchTalLen 和 SchTabWdh 为在 bconstant.h 中的宏定义: #define SchTabLen 20 //代表这个调度表为 20 行(相邻行之间的时间间隔为 10ms); #define SchTabWdh 3 //代表三个周期性调度任务——0:摘挂机检测任务;1:脉冲检测 任务;2:位间隔检测任务;
return; } 六. 实验心得
这是第一次做交换原理的实验,由于课前没有怎么好好预习,所以实验的时候有点手慌 脚乱。不过还好,第一次的实验比较简单,只是对数组的静态初始化。这个实验关键就 在于了解时间调度的工作原理。通过初始化,我们观察了模拟环境下的电路接通情形。 模拟情形让我们对时间调度有了一个形象生动的认识。让我们对这部分知识加深了记忆。
时间(10ms) \任务 0:摘挂机检测任务 1:脉冲检测任务 2:位间隔检测任务
0
0/1
0/1
0/1
1
0/1
0/1
0/1
.....
....
.....
18
0/1
19
0/1
0/1
0/1
0/1
0/1
我们这个交换系统提供了三个周期性调度程度(摘挂机检测程序、脉冲识别程序和位间 隔识别程序),它们的调用周期分别为 200ms、10ms 和 100ms,所以我们系统的最小调 度时间为 10ms。如图所示,每隔 10ms,我们就会检查这个表的一行,如果该行上某一列 为 1,我们就执列所对应的任务,如果为 0,就什么都不做。每当执行到这个表的最后 一行,调度任务会返回第一行循环执行。而你所要做的就是按照你的理解来填写这个调 度表。
for(i=0; i != SchTabLen; i++) {
//对摘挂机状态进行初始化,调度周期为 200ms, ScheduleTable[i][0] = 0; if(i%20 == 0) { ScheduleTable[i][0] = 1; } //对脉冲识别进行初始化,调度周期为 10ms ScheduleTable[i][1] = 1; //对为间隔识别进行初始化,调度周期为 100ms ScheduleTable[i][2] = 0; if(i%10 == 0) { ScheduleTable[i][2] = 1; } }
相关文档
最新文档