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

任务描述:

一、 标题

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

二、 题目

在无线通信系统中,无论是运营商或者设备商对系统的可靠性、可用性都极其关注。请设计一套考虑负荷分担的可靠性仿真系统。如图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)用户文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值