微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 嵌入式网络智能控制系统的研究

嵌入式网络智能控制系统的研究

时间:12-22 来源:互联网 点击:
3.4调度服务器的调度算法

影响图1所示的嵌入式网络智能控制系统可靠性的关键因素是调度服务器的网络性能,合理进行参数计算和映射与负载定位是提升网络性能的关键。

3.4.1参数的计算和映射

CPU利用率能直接反映服务器的性能,以下给出linux操作系统中获取CPU利用率过程,linux操作系统中通过读取/proc/stat文件,该文件中记录有sys、user、nice和idle变量。计算CPU利用率时只要两次读取这些变量,然后利用公式:

Total_1=user_1+nice_1+sys_1+idel_1;

Total_2=user_2+nice_2+sys_1+idel_2;

IntCpuRate=(int)(((float)((user_2+sys_2+nice_2)-(user_1+sys_1+nice_1))/(float)(total_2-total_1))*100);

其中total_1为第一次读取的参数总和,total_2为第二次读取的参数总和。

对于其他的参数,例如缓冲区的大小,可以通过调用linux操作系统的系统函数ioct1()来获取。

获取对应的参数以后,再将对应的参数映射到负载定位算法中,在参数的转换过程中主要采用的算法是动态阀值算法。该算法的数学模型如下:


上式中B为系统接口缓冲区空间的容量,Qi(t)为第i个Web服务器的队列长度,Q(t)为当前系统总队列长度,T(t)为不再连接会话的阀值参数,α为调节因子。上述公式可知,动态阀值算法根据系统状态动态调整控制阀值,阀值的大小与当前系统中空闲的资源成正比,当某个Web服务器缓冲区空间超过阀值时,将阻塞该Web服务器,不再给该Web服务器分配负载。

3.4.2负载定位策略

根据前面得到参数,将这些参数传递到调度服务器。调度服务器通过使用加权轮转调度算法来选择合适的服务器,即将负载定位到具体Web服务器上。定位策略的算法描述如下:

假设有一组Web服务器表示为S = {S0, S1, …, Sn-1},W(Si)表示Web服务器 Si的权值,变量 i表示上一次选择的Web服务器,变量cw表示当前调度的权值,max(S)表示集合S中所有Web服务器的最大权值,gcd(S)表示集合S中所有Web服务器权值的最大公约数。变量 i 和cw最初都被初始化为零。算法描述如下:

while (true) {

if (i == 0) {

cw = cw - gcd(S);

if (cw <= 0) {

cw = max(S);

if (cw == 0)

return NULL;

}

} else i = (i + 1) mod n;

if (W(Si) >= cw)

return Si}

4 实验环境和结果

实验拓扑结构采用如图1所示的最简系统。嵌入式网络智能终端采用嵌入uClinux操作系统,并在uClinux操作系统添加相应的网络通信程序。调度服务器采用Linux9.0作为操作系统并实现3.3节的调度算法。Web服务器组、Internet主机为常见的形式。图5是利用Ethereal网络协议分析器获取的数据包的情况,该图表明本文设计的系统和采用的算法有效。


                                           图5 获取的数据包

5 结束语

实验表明本文提出的系统结构、负载计算法和调度算法实现了嵌入式网络智能控制终端的远程控制。通过采用加权轮转调度算法和动态阀值算法解决了系统负载调度问题,使得系统具有良好的网络性能和较高的实际应用价值。该系统的实现为进一步进行嵌入式网络远程控制系统服务的研究搭建了一个良好的网络平台。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top