负荷分担的可靠性系统仿真(中兴捧月任务四赛题)

本文介绍了一套考虑负荷分担的可靠性仿真系统设计,包括系统控制器节点和负载节点的功能分配,以及使用C语言在Windows操作系统下进行编程实现。详细描述了各进程的具体要求和测试用例,旨在提高无线通信系统的可靠性和可用性。

任务描述:

一、 标题

负荷分担的可靠性系统仿真

二、 题目

在无线通信系统中,无论是运营商或者设备商对系统的可靠性、可用性都极其关注。请设计一套考虑负荷分担的可靠性仿真系统。如图1所示,总控节点(System Controller Node)负责用户接入,通过一定的分配规则分配相应的负荷节点(Payload Node)为其服务,总控节点本身不涉及用户具体的服务。负荷节点(Payload Node)负责用户具体的服务,各个负荷节点完成功能一致。

三、初赛阶段要求

编程语言:C语言

开发及运行环境:Windows操作系统、VC6.0

本题用Windows可执行文件模拟进程,进程间采用Socket通信。各个进程的具体要求如下:

SysCtrlNode进程:

1.支持3个PlNode的接入

2.处理用户的接入。即分配并通知PlNode节点为用户服务,采用均衡分配

3.处理用户的释放。即通知所分配的PlNode释放用户

PlNode进程:

1.处理用户的接入。即记录用户信息,并自动显示新接入的用户标识和当前的用户数

2.处理用户的释放。即删除用户信息,并自动显示释放的用户标识和当前的用户数

测试进程:

1.提供以下几个API接口

a)VOID ConnectReq(A)

向SysCtrlNode进程发消息通知用户A建立

b) VOID ReleaseReq(A)

向SysCtrlNode进程发消息通知用户A释放

c) int GetPnodeByUser(A)

返回用户A的PlNode标识。无效值为-1

d) unsigned int GetUserNumByPnode(B)

返回PlNode B进程当前处理的用户数

2.需要提供典型的测试用例代码并测试通过,测试用例格式参考以下:

用例1

ConnectReq (A);

PnodeId = GetPnodeByUser(A);

assert(PnodeId != -1);

n = GetUserNumByPnode (PnodeId);

assert(n == 1);

ReleaseReq(A)

n = GetUserNumByPnode (PnodeId);

assert(n == 0);

均衡分配规则:各个PlNode当前处理的用户数尽量平均分布。下面以接入4个用户为例:

系统开始接入4个用户后(假定中间无用户释放),该4个用户在各个PlNode的分布场景,如表1所示,其所列出的场景1、2 、3满足要求,场景4、5则不满足要求。

表1无用户释放的情况

如果用户释放,各个PlNode的分布场景发生变化。在本例中,假定PlNode2上的一个用户释放,当前系统总用户数变成3,此时各个PlNode的用户分布情况如表2所示,场景1、2、3满足需求。


表2 有用户释放的分布情况

四、初赛阶段说明

在初赛阶段需要提交下列材料:

1.设计、测试说明文档

2.可编译执行的源代码(内含测试用例代码)

3.可执行程序

如有缺失将直接影响评分。

五、复赛阶段要求

在初赛已完成的系统上实现以下需求,构造测试用例并且能够测试通过

1.支持PlNode热插拔,最多支持5个

a)新插入PlNode能为新接入的用户服务,之前接入的用户维持现状

b)PlNode拔出,系统保证为之前接入的用户继续服务

2.SysCtrlNode在系统中扮演了重要的角色,如果它发生瘫痪(如重启)将导致系统不可用,请设计方法实现解决该问题。即,假使SysCtrlNode重启,对于已接入的用户服务没有影响,通过测试用例进程仍能正常释放已接入的用户,也能正常接入新用户

注意:复赛的测试用例需要构造PlNode为0~5的不同情况。

如:

PlNode为1时,

用例1

。。

用例2

。。

PlNode为N时,

用例1

。。。

用例2

。。。

六、复赛阶段说明

在复赛阶段需要提交下列材料:

1.设计、测试说明文档

2.可编译执行的源代码(内含测试用例代码)

3.可执行程序

如有缺失将直接影响评分

七、审核标准及评价细则

满分100分。不遵守题目要求的结果,将直接淘汰。

1.程序基本功能(60分)

a)满足功能

b)测试用例完备

2.代码质量(30分)

a)代码复杂度

b)代码可读性

c)代码注释

3.文档质量(10分)

a)设计文档

b)用户文档

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值