本文是关于交换原理实验一——时间表调度实验报告记录。
一、实验目的
驱动交换网络实验用来考查学生对时间表调度原理的掌握情况。
二、实验内容和实验步骤
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,就什么都不做。每当执行到这个表的最后一行,调度任务会返回第一行循环执行。而你所要做的就是按照你的理解来填写这个调度表。
2、实验主要数据结构
函数功能:完成调度表的初始化;
函数原型:
1 | initSchTable(int ScheduleTable[SchTabLen][SchTabWdh]); |
其中 SchTalLen 和 SchTabWdh 为在 bconstant.h 中的宏定义:
1 |
3、实验效果检验
当调度表初始化正确时,能够进行正常的通话;如果初始化不正确,可能会造成周期性程序的不正常调用,例如位间隔调度的延迟会造成识别位间隔的延误甚至丢失。
4、实验步骤
- 熟悉实验平台和测试环境;
- 编写C程序实现所要求的功能;
- 运行测试程序;
- 完成实验报告。
三、源代码
点击查看代码
1 |
|
四、实验结果
运行程序后,调度表初始化正确,周期性程序正常调用,能够进行正常的通话。
五、实验心得
这是第一个交换原理的实验,是较为基础的实验,只是对数组的静态初始化,为以后的实验打下基础。我观察了模拟环境下的电路接通情形,让我对时间调度有了一个形象生动的认识,加深了这部分知识记忆和理解。