全球FlexSim系统仿真中文论坛

搜索
查看: 6182|回复: 14
打印 上一主题 下一主题

怎样设置处理器的故障率

[复制链接]
跳转到指定楼层
1#
13164121547 发表于 2019-1-7 15:02:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近因论文需要建模,需要使处理器在处理每一个实体时,都有一定的概率发生故障,故障发生后有一段故障恢复时间,待故障恢复时间结束后,处理器正常处理实体,请问这个应该怎么实现呢,想了个把星期都没有好办法,望大神告知。
2#
慧娴亚伦 发表于 2019-1-7 16:42:57 | 只看该作者
如果是一定概率的话,我建议关键点事消息,有一定概率停止实体(故障),然后发送消息,指定时间来恢复实体。  A* p5 p& q: v% _& x6 m
相关命令有:: b1 P3 F$ }) G3 `, z: U: L
senddelaymessage()、stopobject()、resumeobject()
3#
 楼主| 13164121547 发表于 2019-1-7 21:08:01 | 只看该作者
慧娴亚伦 发表于 2019-1-7 16:42
; _7 k3 s; E5 _1 G* K( x+ Y( `如果是一定概率的话,我建议关键点事消息,有一定概率停止实体(故障),然后发送消息,指定时间来恢复实体 ...
3 n- {+ n9 l- d7 J' \% _* o) [3 {
请问怎么设置固定概率的发送消息呢
4#
慧娴亚伦 发表于 2019-1-8 08:10:18 | 只看该作者
13164121547 发表于 2019-1-7 21:08; v1 f- ]: C* U5 h6 i
请问怎么设置固定概率的发送消息呢

  A+ p% H, j6 c! S- l: }单靠设置可能不行,需要代码,先在一定范围内随机一个值,然后判断这个值是否落在停机概率范围内。大概是这样:: Y% V. D; @- S5 L. B
  1. double stops = uniform(0,100);//随机一个值
    6 P' |6 l4 n8 Y; k
  2. if(stops <= 30)//假设停机概率是30%& @" i8 v8 R8 D1 t; [8 O
  3. {3 G9 @1 s0 C! [# O- y' a8 X
  4.     stopobject();
    - k. q+ D* }, w- j
  5.     senddelaymessage();
    - j; {) X! w2 F& W9 @8 J' K- s0 D! t
  6. }
复制代码
5#
 楼主| 13164121547 发表于 2019-1-11 21:01:08 | 只看该作者
慧娴亚伦 发表于 2019-1-8 08:10! [  n$ n! X( a4 c
单靠设置可能不行,需要代码,先在一定范围内随机一个值,然后判断这个值是否落在停机概率范围内。大概是 ...

# H3 v* l9 K5 o/ O- r7 ^进入触发代码:0 z' Y3 l) K2 m
double stop1 = uniform(0,100);0 B/ n3 q- o: f/ n" R" i
if(stop1 < 30){
+ o2 l& g* k% ~8 z& d" [        stopobject(current,1);# I, w3 r2 k1 i4 e$ x
        senddelayedmessage(current,3,current,2);
9 J8 G, t, o4 c, d7 l}
, U' X# J9 {% O$ N: W7 i& Ldouble stop2 = uniform(0,100);7 D. P# N' Z. d# R( X( l7 ]# w
if(stop2 <40){4 @' \9 w1 n( f$ e
        stopobject(current,2);
( z: _7 u, r3 o( |; E  b* g6 @# q        senddelayedmessage(current,4,current,3);
: N( f- P. c$ K. Q1 H7 \" d}
  i+ p0 B) X: l' x$ v0 r+ H1 y& @% U4 v+ U( Z0 x+ T$ y& r- P

( x" J' o3 V# @( Q9 T& A消息触发代码:
, y* ]& p+ A3 i) ^* _int value2 = msgparam(1);
" z, ?3 R) N% q9 d  Y3 V# o; Pswitch(value2){
* R# C& G; G1 S0 e- p* b        case 3 :
( d8 O/ ~/ e- @+ Y4 F6 J        resumeobject(current);8 W5 r# q# f' S! r, o, x
        break;) S) B" F! `# h* c
} // ******* PickOption End ******* //
5 Q* G/ l1 ^& t1 T+ Z
6 `( A2 n8 o& W' O1 aint value3 = msgparam(1);" [9 A! m' C) Q7 L: W8 @3 \
switch(value3){
% P8 V: T5 }9 v/ q+ k+ M0 X, P' |        case 2 :
$ z+ u( Z& {" L        resumeobject(current);2 W; y) M( H( k1 c% Q
        break;
7 R" j+ l+ q& T7 J. g}0 \* F2 ?# o( v- P  Y

! I  Z7 m: `, U: ^; {- f}
: r& u& P3 H4 x* R/ Z$ p& u
% D1 C' n- G. O- K: f. e& e你好,我是这么写的,可是最后运行的时候数据都是错的,请问是哪里出了问题呢
6#
SunshineFu 发表于 2019-1-12 08:58:47 | 只看该作者
13164121547 发表于 2019-1-11 21:01
; b1 v/ B% Q! e+ k' X进入触发代码:6 T) w5 [5 J" T  o# s- V
double stop1 = uniform(0,100);& x0 Y! z$ x/ O8 }* g
if(stop1 < 30){
6 Z7 F( \3 U3 o1 Z. V
不清楚具体情况,可以上传模型吗?
7#
 楼主| 13164121547 发表于 2019-1-12 10:39:04 | 只看该作者
SunshineFu 发表于 2019-1-12 08:58
* s; A. I6 C8 `6 v% l不清楚具体情况,可以上传模型吗?

- @8 |) e! K  f+ b" C/ ^你好,已上传
7 [8 p) S" G3 ~* u

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
8#
SunshineFu 发表于 2019-1-12 14:16:15 | 只看该作者
本帖最后由 SunshineFu 于 2019-1-12 14:20 编辑
( O6 L% ^8 N, L7 d: N7 a- b  ^: O
13164121547 发表于 2019-1-12 10:39
1 n' u( _+ W+ H- a4 p$ m& ~你好,已上传

* ^) I) O& s- A8 k我按照你在1层的留言修改了这个模型,延长故障恢复时间和在两个处理器间添加一个暂存区是为了便于观察故障产生的现象,故障恢复时间你可以在处理器的进入触发内修改回来。/ n+ k6 \* J' r

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
9#
 楼主| 13164121547 发表于 2019-1-12 14:50:26 | 只看该作者
SunshineFu 发表于 2019-1-12 14:16
6 A# ~) q& ~, _3 p/ E7 l# h" Y我按照你在1层的留言修改了这个模型,延长故障恢复时间和在两个处理器间添加一个暂存区是为了便于观察故 ...
1 y/ l% U* z  Q9 R9 c; e
请问如果我想让1个处理器出现2种故障该怎么弄呢
10#
SunshineFu 发表于 2019-1-12 15:01:30 | 只看该作者
13164121547 发表于 2019-1-12 14:50; x1 n* V* _# `% d
请问如果我想让1个处理器出现2种故障该怎么弄呢
: G3 B* K0 W1 f$ f- S/ _
哪两种故障?两个处理器都会出现两种故障码?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2024-4-25 20:37 , Processed in 0.075286 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表