TAM2改进模型(精选4篇)
TAM2改进模型 篇1
摘要:Sagas模型要求所有子事务都要有对应的补偿子事务, 任何子事务失败必须强制其它所有子事务失败, 不能很好支持多事务多实例的并发执行。这三个缺陷使得Sagas模型至今不能运用到商业工作流系统中。针对Sagas模型的缺陷, 提出一种改进的Sagas事务工作流模型, 对子事务属性进行了分类并通过构造子事务间的关联关系使得可补偿子事务失败时无需强制所有子事务失败;引入补偿服务完善了工作流模型的语义;给出了基于事务实例锁集和后继子事务类型集的多事务多实例并发运行算法。该模型解决了Sagas模型存在的问题。
关键词:工作流,Sagas事务模型,事务属性,可补偿事务,并发控制
0 引 言
事务工作流是由Georgia大学的Amit Sheth等人最先提出, 其思想就是利用数据库中事务的特性对工作流进行管理, 保证工作流执行的正确性与一致性。然而工作流中的事务与传统的事务有所不同, 首先, 工作流中的事务执行时间长并且有着复杂的控制逻辑, 我们称这类事务为长事务;其次, 工作流中的长事务如果完全套用传统事务的强ACID特性是不合理的, 这会严重影响其它高优先级的短事务的执行。正是由于这些不同点, 人们提出了一系列扩展事务模型[1]用于工作流管理系统中, 比较著名的有嵌套事务模型[2]、Sagas事务模型、多层事务模型、分支/汇合事务模型和柔性事务模型等。扩展事务模型通常把一系列的操作分组成为嵌套或层次化结构, 在Sagas中首次提出应用补偿机制来撤销已提交事务的影响, 并且放宽了传统模型中的ACID属性 。
1 模型定义
1.1 Sagas事务模型
Sagas[3]是由普林斯顿大学的H.Garcia-Molina 等人提出的一种模型, 用于解决长事务问题。Sagas事务模型将长事务分成一系列子事务集合T (T1, T2, …, Tn) 和一个相对应的补偿子事务集合CT (CT1, CT2, …, CTn) , 任意一个子事务都具有自己的ACID特性。当且仅当所有的子事务都进行了提交, 一个Saga事务 (在这里, 一个长时间的事务被称为一个“Saga”) 才提交;如果其中一部分子事务执行失败, 必须对已提交的子事务进行补偿。Sagas模型的子事务执行流程如图1所示。
Sagas模型至今没有应用到成熟的商用工作流系统中, 是因为其存在致命的缺陷: (1) Sagas模型强制要求每个子事务有对应的补偿事务, 而在复杂的工作流中, 不存在补偿事务的子事务十分普遍; (2) 当一个子事务失败时, 必须回滚之前的所有子事务, 这个要求对于工作流事务而言显然过于严格和低效; (3) 当复杂工作流中出现多个事务实例同时运行时, Sagas模型不仅不能很好地支持并发执行, 而且会产生由不可补偿事务引起的循环冲突问题, 使工作流死锁并且无法从死锁中恢复。
正是基于以上的三个缺陷, 本文提出了一种扩展Sagas模型 (Esagas) , 并采用预测后继事务类型的控制方法来实现事务执行的最大的并行化。
1.2 Esagas事务模型
1.2.1 子事务属性分类
Sagas模型缺陷的第一条就是Sagas模型强制要求每个子事务有对应的补偿事务, 而在现实中这是不可能的。所以要做的就是首先为子事务按照其属性进行分类, 前人已经有过这方面的研究, 如文献[4]将子事务按照属性分为可补偿事务、可重复事务和可替代事务, 而文献[5]则在该划分中增加了一类可忽略事务。他们都没有提到不可补偿的事务, 而不可补偿的事务是确实存在的。因此在本文中将子事务划分为如下五类: (1) 可忽略事务, 该事务失败无需进行任何操作; (2) 可重复事务, 该事务失败后可通过有限次重新执行使其成功; (3) 可替代事务, 该事务失败后可执行事先定义好的其它替代事务达到同样的效果; (4) 不可补偿事务, 该事务失败后整个工作流将失败, 并强制回滚整个工作流到初始状态; (5) 可补偿事务, 该事务失败后可通过执行补偿事务来消除影响。
在工作流实例开始执行之前, 各个子事务的属性就会按照现实的模型定义好。在流程的执行中, 当可忽略的事务失败时, 工作流管理引擎可直接跳过该事务继续进行;当可重复事务失败时, 工作流管理引擎会重复执行该事务直到该事务顺利完成;当可替代事务失败时, 工作流管理引擎会执行预先设定好的其它子事务来替代该子事务;当不可补偿事务失败时, 必须对所有正在执行的子事务强制执行撤销操作使整个事务流程恢复初始状态。这四种情况的处理方式显而易见, 本文着重阐述可补偿事务失败时的处理情况, 从而达到改进Sagas模型以使其能够很好地运用到实际应用中。
1.2.2 可补偿事务失败处理
1) 定义子事务的关联矩阵
这里仅考虑可补偿事务失败时的关联关系, 因为其余四种事务类型失败时上文已经给出了很显而易见的处理方法。此时, 可补偿事务失败时会有三种可能的关联关系, 定义如下:
定义1Ti为可补偿事务, 则aTi->aTj表示当子事务Ti失败时, Tj强制失败;aTi->sTj表示当子事务Ti失败时, Tj强制开始;aTi->pTj表示当子事务Ti失败时, Tj强制提交。
由定义1可以推出两个引理:
引理1 传递性 (aTi->aTj) ∧ (aTj->aTk) => aTi->aTk
(aTi->aTj) ∧ (aTj->sTk) => aTi->sTk
(aTi->aTj) ∧ (aTj->pTk) => aTi->pTk
引理2 互斥性 aTi->aTj=> (aTi!->sTj) ∧ (aTi !->pTj)
aTi->sTj=> (aTi!->aTj) ∧ (aTi !->pTj)
aTi->pTj=> (aTi!->aTj) ∧ (aTi !->sTj)
定义好可补偿事务失败时的三种可能的关联关系后, 于是可以定义一个子事务间的关联关系矩阵来记录他们之间的关联关系。假设该工作流过程由n个子事务构成, 矩阵的行和列分别对应这n个子事务, 不妨用列表示前导事务, 行表示受迫事务。矩阵内单元格[j, i]保存子事务Ti和Tj之间的关联关系。不妨用0代表Ti和Tj之间没有关联关系, 1代表aTi->aTj, 2代表aTi->sTj, 3代表aTi->pTj。这样矩阵中的每一列数据实际上代表该列所对应的前导子事务与整个工作流流程的其它子事务之间的关联关系, 每一行代表该行所对应的受迫子事务与整个工作流流程其它子事务的关联关系。
由于子事务的强制取消关联关系具有可传递性, 因此在初始化存储矩阵时我们需要对矩阵进行扫描, 以找出隐藏的关联关系, 同时还要检查子事务之间的直接关联关系与间接关联关系的一致性, 当关联关系存在冲突时必须对工作流关联关系进行重构。具体算法如下:
(1) 初始的MR (矩阵关系) ={直接依赖关系}, CS (存放待进一步扫描的列) ={};
(2) 对MR的每列数据执行以下操作;
(3) 对于第i列数据, 扫描列中每一行数据;
(4) 如果MR[i, j]==1, 执行步骤 (5) ;
(5) 对MR中第i列和第j列数据逐行比较, 如果MR[i, k]==0&&MR[j, k]!=0, 则MR[i, k]=MR[j, k], 如果MR[i, k]!=0 && MR[j, k]!=0 && MR[i, k]!=MR[j, k], 则退出程序, 并提示关联矩阵存在不一致性。如果MR[i, k]==0 && MR[j, k]==1 && k < i, 则CS=CS ∪ {k};
(6) 对于CS中每个元素j, 执行操作5, 并且CS = CS-{j}, 直到CS=∮;
(7) 继续扫描MR第i列数据, 直到该列结束。
当扫描完全结束时, 该关联矩阵就完成了, 该矩阵将在不可补偿事务发生失败时起到指导作用, 告诉工作流管理引擎该如何处理接下来的过程。
2) 可补偿事务失败处理过程
当工作流引擎发现工作流流程中某个子事务Ti执行失败并且查看到该子事务的属性为不可补偿事务时, 执行以下操作: (1) 首先执行Ti的补偿子事务CTi, 这一步和sagas模型的执行方式是一致的; (2) 对于关联关系存储矩阵MR第i列的每一行数据;假设第j (j!=i) 行数据为1, 则对任务Tj执行强制失败操作, 假设第j (j!=i) 行数据为2, 则对任务Tj执行强制开始操作, 假设第j (j!=i) 行数据为3, 则对任务Tj执行强制提交操作。由于在存储矩阵初始化的时候我们已经完成了子事务间隐藏依赖关系的挖掘与一致性的判断, 因此在可补偿事务失败时我们不需要再考虑子事务关联关系冲突的问题, 也不需要考虑子事务间隐藏的关联关系对事务补偿造成的影响, 大大简化了事务补偿流程。
1.2.3 补偿服务
至此, 整个Esagas模型的描述和处理过程都已经基本完备, 当该模型用于无多工作流实例并发运行的环境时已经能够很好地支持工作流顺利的执行。唯一不足的是当工作流执行过程中如果不可补偿事务失败, 将强制所有子事务失败并恢复到初始状态, 这在现实中是可能产生问题的。例如, 在涉及到客户服务的电子政务工作流管理系统中, 当客户需要办理某项事情 (如申请办理某城市户口, 该城市户口实行打分制) 时, 如果进行到后面发生分数达不到落户要求时, 整个工作流就会因为这个不可补偿事务而强制要求所有子事务失败并恢复到初始状态, 而这时客户并不知情。再例如, 在销售空调这个工作流中, 当安装空调子事务执行失败 (顾客有权在规定时间内要求退货) , 虽然拆走了空调, 墙上仍然留有钻好的孔, 这个影响也不是强制所有子事务失败能撤销的。这里就可以在工作流模型中引入一个补偿服务的概念, 即当不可补偿事务发生时通过执行补偿服务来进一步消除影响, 使工作流能够更好地执行。当落户这个工作流失败时, 可以让工作流管理引擎通过自动发送E-mail的方式来告知申请人落户失败, 当销售空调这个工作流失败时, 工作流管理引擎可以通知客服人员打一个抱歉电话来最大化地消除影响。创造性地引入补偿事务这一概念更加完善了Esagas模型, 在工作流实例严格串行化的执行过程中, 该模型已经能很好地运行。
2 并发加速控制的实现
2.1 Esagas模型并发执行
第1节已经对Esagas模型单实例执行有了十分详细的阐述, 并创造性地引入了补偿服务的概念来丰富该模型的语义。对1.1节中提到的Sagas模型的前两个缺陷给出了完善的解决方案。针对第一个缺陷, 提出了将子事务按属性进行分类, 并给出了具有特定属性的子事务失败时的处理方法;针对第二个缺陷, 提出了基于子事务之间关联关系的关联检测和失败处理方法, 当子事务执行失败时, 无需采取Sagas模型要求的强制回滚所有子事务的方式, 而是做到了有选择的回滚和处理, 大大提高了灵活度和执行效率。
但是在实际应用中, 工作流很少是单事务单实例严格串行化执行, 更多的是多个事务多个实例并发执行。所以接下来将详细阐述Esagas模型在多事务、多实例并发执行时的执行方法。
2.2 基于冲突预测的并发加速算法
2.2.1 子事务冲突定义
事务T (T1, T2, …, Tn) 由一系列子事务T1, T2, …, Tn通过复合结构复合而成, 这些子事务是构成事务的基本单元, 完全满足事务的ACID特性。事务工作流使用的控制结构包括五种:顺序, 并行, 条件, 优先和循环。本文中顺序用符号“->”表示, 并行用符号“||”表示, 条件用符号“cond? : ”表示, 优先用符号“》”表示, 循环用符号“cond[]”表示。如一个事务T (T1, T2, T3, T4, T5, T6, T7) 的执行流程如图2所示。
该流程可简单用一个表达式表示:
T= (Cond1?T1:T2) -> ( (T3||T4) 》T5) -> (Cond2 (T6->T7) ) 。
两个子事务冲突是指两个子事务是否对相同的数据项进行了操作, 如果对相同的数据项进行了操作称这两个子事务冲突, 否则这两个子事务不冲突, 这里要说明的是这两个子事务可以不属于同一个事务 (长事务) 。在Esagas模型中, 定义了一个conflict函数来验证两个子事务是否冲突, 该函数实现非常简单, 对于两个子事务Ti (a1, a2, …, ak) 、Tj (b1, b2, …, bk) , 其中a1, a2, …, ak, b1, b2, …, bk分别是Ti和Tj要访问的数据项, conflict (Ti, Tj) 判断a1, a2…ak与b1, b2, …, bk是否有重复, 若有, 则返回true, 表示子事务Ti与子事务Tj有冲突;若无, 返回false, 表示子事务Ti与子事务Tj无冲突。例如对银行帐户的存款事务deposit (account1, amount1) 和取款事务withdraw (account2, amount2) 而言, 它们的冲突函数conflict (account1, amount1, account2, amount2) 判断两者访问的帐户是否相同, 如果相同, 返回true否则返回false。
2.2.2 事务 (事务实例) 不冲突的条件
t是事务T的一个实例, 在t的执行过程中, 始终维护着两个集合:事务实例锁集LSt和后继事务类型集FSt。其中LSt用来记录目前t获取的所有子事务的实例锁, FSt表示t将要执行的事务类型集, 随着事务实例t的执行, LSt不断变大, 而FSt不断变小, 当t准备提交时, FSt=∮。根据事务实例锁集和后继事务类型集我们可以判断两个事务实例是否会在将来产生冲突。事务实例ti和tj将来不冲突的充分条件是:1) ti已执行的子事务类型与tj将要执行的子事务类型不冲突;2) tj已执行的子事务类型与ti将要执行的子事务类型不冲突;3) ti将要执行的子事务类型和tj将要执行的子事务类型不冲突。
2.2.3 后继子事务类型集的构造[6]
为了使Esagas模型支持最大程度的并发执行, 本文通过判断两个事务实例是否冲突并通过预测将来是否会冲突来使得能够并发执行的事务并发执行。要进行冲突预测, 首先要得到该事务在执行完一个特定子事务时后继还会执行哪些子事务。本文给出了后继子事务类型集的计算方法, 后继子事务类型集的计算通过对事务的执行流程进行分析得到。
事务工作流的执行流程可以用一个树来表示, 例如图2的流程图可以用图3来表示, 树的叶节点代表子事务, 其它节点代表各种控制结构。每个节点有两个属性:CS和FS。CS表示以该节点为根的子树中包含的所有子事务类型集, FS表示执行完该节点为根的子树后还要执行的子事务类型集。那么, 叶节点的FS就是我们关心的后继子事务类型集。
CS集合的构造通过后序遍历树即可获得:任何一个节点的CS是其子结点CS的并集;而叶节点的CS很显然是它本身。而FS通过先序遍历树获得。树根节点的FS为空集, 其它节点的FS通过表1中的计算规则得出 (其中parent表示父节点, left和right分别表示它的左子节点和右子节点。注意循环结构只有一个子节点) 。图3表示了每个节点的CS和FS集合。例如从图3可以看到, 当子事务T4执行完后, 它的后继子事务集合FS={T3, T6, T7}。
2.2.4 基于事务实例锁集和后继子事务类型集的并发执行
介绍完后继子事务类型集的构造方法后, 就可以给出Esagas模型的多事务多实例并发运行的流程。当某个长事务的一个事务实例开始运行时, 这个事务实例会建立起两个集合:事务实例锁集和后继子事务类型集。在该事务实例执行过程中, 每执行一个子事务, 就会获得该子事务对应的数据锁集, 并把这些锁加入到该事务实例的事务实例琐集中, 同时运用2.2.3节中阐述的后继子事务类型集的构造方法来更新后继子事务类型集。
假设工作流系统中已经有n个事务实例 (可以是不同事务的事务实例) 在运行, 记为t1, t2, t3, …, tn。当第k个事务实例tk的子事务tk3执行完并准备执行tk4时, 首先判断执行tk4要用到的数据锁 (即事务实例锁) 是否与子事务t1, t2, …, t (k-1) , t (k+1) , …, tn的事务实例锁集冲突, 若有冲突, 则暂缓执行, 若无冲突, 进一步判断tk4要用到的数据锁是否与子事务t1, t2, …, t (k-1) , t (k+1) , …, tn的后继子事务类型集中的子事务在数据锁上有冲突, 若有, 暂缓执行, 若无, 则tk4可执行。
这样, Esagas模型就对多事务多实例并发执行有了完备的支持。而且该执行流程还有效地避免了由不可补偿事务引起的循环冲突问题。
3 结束语
工作流管理系统是近年来在计算机应用领域发展最为迅速的几项新技术之一, 但是大多数的工作流产品对工作流事务管理都没有很好的解决方案, 事务问题成为工作流中急需解决的问题。本文基于高级事务模型Sagas模型提出了一种改进的模型Esagas模型, 该模型对子事务属性进行了分类并通过构造子事务间的关联关系使得可补偿子事务失败时无需强制所有子事务失败;引入补偿服务完善了工作流模型的语义;给出了基于事务实例锁集和后继子事务类型集的多事务多实例并发运行算法。Esagas模型已经能正确高效地满足实际应用中的工作流应用环境, 接下来要做的就是在一些细小的地方进行改进并实现基于Esagas模型的工作流管理引擎早日应用到实际环境中。
参考文献
[1]范玉顺.工作流管理技术及其应用[M].北京:清华大学出版社, 2001.
[2]Anne Doucet, Stephane Gancarski.Nested Transactions with IntegrityConstraints[C]//The 8th Int’l Workshop on Foundations of Modelsand Languages for Data and Objects, Transactions and Database Dy-namics Lecture Notes in Computer Science 1733.1999:130-149.
[3]刘传杰.基于Saga的高级事务模型在工作流系统中的应用研究[D].西安:西安电子科技大学, 2004.
[4]Indrakshi Ray, Tai Xin, Yajie Zhu.Ensuring Task Dependencies DuringWorkflowRecovery[C]//Proc of DEXA, LNCS3180.Berlin:Spring-er, 2004:24-33.
[5]崔永花, 谭庆平, 杨艳萍.工作流中的长事务模型[J].计算机工程与科学, 2006, 28 (4) .
[6]丁柯, 魏峻, 冯玉琳.基于混合粒度冲突检测的事务工作流调度算法[J].软件学报, 2003, 14 (3) .
[7]Garcia H Molina, Salem K.Sagas[C]//Proc of ACM SIGMOD Int'lConf on Management of Data.1987.
改进的曲率驱动降噪模型 篇2
图像与任何其他携带信息形式的数据一样, 在每张图片的信息可能受到噪声的影响。图像在获取、传输和存储的过程中都有可能混入噪声, 使图像模糊不清, 影响图像的分割、重建等后续处理。特别是在低照度环境下, 光波粒子较少, 不能在图像传感器的所有像素点产生有效的光电效应, 进而导致输出的图像与目标图像差别较大, 噪点较多, 这一点在移动通信设备上尤为明显。由于移动设备体积有限, 光圈进光量不足, 单像素传感器面积小, 导致移动设备对降噪算法依赖极大。
关于图像降噪的算法常见的有:中值滤波法, 均值滤波法, 双边滤波法, 最小均方差滤波等传统的滤波方法, 也有基于傅立叶变换的方法和小波变换方法。偏微分方程 (PDE) 自上个世纪80年代末开始被用于解决传统的计算机视觉问题, 近年来在图像去噪与修复等方向的应用中已经取得了不错的成果。
曲率驱动与边缘停止相结合的非线性扩散模型
偏微分方程是以运动的视角来处理图像问题, 起源于物理环境中热传导方程初始值问题:
其中表示拉普拉斯算子, 可以用高斯函数与初始图像的卷积来表示:
其中,
x和y方向上的等效宽度均为。
由于梯度算子有各向同性的特性, 而导致其在图像去噪过程中不能很好的保持边缘信息。为了解决由于该梯度算子各向同性所引起的问题, Perona和Malik提出了一种非线性的各向异性扩散的图像去噪模型P-M模型。P-M模型利用一个扩散系数函数替代高斯平滑滤波, 其模型为:
为了克服热方程各项同性模糊图像的问题, 以及达到对图像各区域内部平滑, 而边缘区域增强的各向异性扩散效果。P-M模型采用扩散系数函数用以判断算法在t时刻处理的图像区域为平坦区域还是边界区域。当处理区域为平坦区域时, 设定扩散系数为1, P-M模型退化为热方程, 模型进行平滑处理;当处理区域为边界区域时, 设定扩散系数为0。
随着对图像表征认识的深入, 人们逐渐认识到一阶微分量 (梯度) 并不是唯一的图像局部特征, 而二阶微分量中含有更丰富的局部信息, Alvarez, Lions和Morel提出了一种沿垂直于图像梯度方向的偏微分扩散方程, 模型为:
随后又有人对其作适当变换, 可以得到如下方向扩散模型:
其中表示曲率:
由于图像的任一水平集的曲率可以表达为 (1) 式, 方向扩散模型等价于对图像的所有水平集曲线C作曲率运动。这里的应使时值为0, 值较大时值为1, 即该方法平滑较大的等照度线, 保护较小的等照度线, 同时保护图像的边缘信息, 因此对梯度模值足够大的区域应该加以保护。
改进的曲率模型
弱光环境下采集到的图像有一个比较明显的特点是“暗斑”比较大, 这主要是由于光照不足, 从物体上返回的光波粒子不足以在感光器件上产生足够的电荷, 使得获取的图像与实际物体误差较大, 不能真实地反映现实世界, 故此有必要适当增强图像的强度弥补光粒子不足产生的偏差。
由上一节知, 曲率驱动与边缘停止相结合的非线性扩散模型对曲率较大的非边缘区域做平滑处理, 对区域边缘或曲率小的区域实施保护不做平滑处理, 但是该模型并没有对光照较弱的区域做强化处理, 于是加入强度补偿因子。
低照度环境的图像强度通常较低, 并且强度越低, 所需补偿越大;强度较大时不需要做补偿, 于是该因子需满足如下两个条件:
曲线如图1所示 (其中) , 由图可见该式满足上述条件。
加入强度补偿因子后得到如下模型:
图2为加入强度因子前后处理结果的直方图分析结果, 上图是引入强度因子前原模型处理后的分析结果, 下图为改进版模型分析结果, 上下两图对比可以看出加入强度因子后低强度像素明显减少。
由照度低引起的强度偏差得到了修正, 即与原图像的偏差被缩小, 因此用该方法降噪比原方法在信噪比的表现上也有一定程度提升。
实验结果
为了验证并比较本文提出的方法, 首先对图片进行了多种强度噪声的干扰。
由于处理的是弱光条件下的噪声, 这里添加的噪声均值和方差均较强, 混入不同强度噪声的噪效果如图3所示。
为了验证本文改进模型的效果, 采用多种降噪方法进行对比, 分别是中值滤波法, 双边滤波法, 和原曲率模型。
对加入µ=-10, σ=50噪声的图像进行降噪处理得到如图4所示结果。
从图4中可以看出本文方法在暗处对暗斑较少, 而亮处并无明显去斑处理, 符合预期。
为分析几种模型对图像强度分布的影响, 对以上结果进行直方图分析, 如图5所示。
由图5可见, 加入噪声后像素值较低的点大幅增多, 四种滤波方法均可不同程度的提升像素分布, 原模型由于曲率的作用, 对强度分布有较明显拉升, 低强度像素点大为较少, 改进的曲率模型在此基础上又有一定的提高。
下面采用PSNR峰值信噪比对模型降噪性能进行分析。
其中MSE为均方误差
表1是对不同强度噪声下四种处理方法的结果对比, 可以看出本文方法处理后PSNR较高。
结语
预取控制模型的改进 篇3
网络的快速发展,使用网络人数急剧增多,导致网络越来越拥挤,加上网络的原有的时延,使用户要为服务等待更久的时间,为了提高服务效率、减少网络堵塞率,预取技术应运而生,但是过量的预取又会造成页面的频繁替换,如果预取不加以控制,会给网络带来更大的负担,反而影响正常的用户服务,而和预取技术一样,为提高速率和合理利用网络资源的缓存技术是和预取技术有着密切关系的,而对于预取技术而言,预取控制技术尤为重要[1],但是现有的预取控制技术都没有很好的考虑缓存数量和缓存命中率,所以本文基于此,对预取控制模型进行了改进。
2预取控制模型的建立
本文引入代价函数来描述预取对系统性能的影响,只有当文件的访问概率大于门限值时才会被预取,从而使因为本文中会涉及很多的公式,会涉及很多的参数,为了方便理解,现将各参数详细说明如下:
b :网络带宽cs : 系统资源代价
t :请求时间ct :延迟代价
ρ :系统利用率np:用户请求时的预取数量
s :对象平均大小λ1 :正常请求速率
λ2 :预取请求速率h :缓存命中率
c1 :正常请求代价c2 :预取请求代价
系统资源消耗最小,预取代价包括系统资源代价和延迟代价,延迟代价ct 表示等待时间对于用户的重要程度,是指单位时间用户等待一个对象付出的代价,系统资源代价cs 包括数据传输和终端节点处理数据包的代价,指数据包处理的单位延迟代价。
为讨论方便起见,把通过代理访问的整个网络比拟为一个服务器,假设服务器能够提供共享服务,是一个M/G1轮询排队系统[2],则平均请求时间为:
设在没有预取时的缓存命中率为h' ,假设缓存的容量是不变的,预取所使用的容量是来自于缓存中从未被访问的文件的空间,访问概率很低的缓存文件将被剔除,所以这种剔除,理论上帮助预取增加了缓存的命中率,所以基于此缓存命中率可计算如下:
式中np代表的是预取文价的数量,设用户常规的请求的速率为λ1 ,为了系统的正常运行,服务器必须既为常规请求也为预取请求进行服务,而常规请求和预取请求到达的速率分别是:
所以对服务器请求的等效速率可以表示为:
系统利用率为:
则正常请求的代价为:
预取请求的平均代价为:
则平均代价函数为:
假定p、s、b和λ的值已知,为使系统的每次用户请求时的平均预取代价最小,要确定np的值,进而求c对np的导数得:
为了区分之前的np ,此处np用np′表示,当np>np′ ,代价函数随np的增大而减少,当np
访问概率大于上述值时,文件将被预取,系统的代价最小,访问概率小于p,文件若被预取,系统代价会因为预取增加,所以得出的门限函数为:
从上式可看出,若访问概率p高于门限H ,则np′<0,此时可预取的相应的EID—to—RLOC映射关系[3],使得代价函数最优,系统消耗最小的资源。
3预取控制模型的改进
事实上,预取和缓存是密切相关的,甚至很多人认为预取是缓存技术的一项补充,如果当前系统中的负载已经很大,但是继续预取,这会造成系统负担更重,所以在预取控制时应该考虑进当前CACHE中映射关系缓存的数量,所以本文在现有模型的基础上考虑进了缓存数量与缓存命中率的模型,推导出了新的代价函数和门限函数。
将上式代入代价函数得到新的代价函数为:
得到新的代价函数为:
该公式考虑进了缓存数量N ,是在加入了缓存数量和缓存命中率得到的新的代价函数,为求门限值, C对h求导:
在访问概率P分别为0.3 ,0.4, 0.5,0.6, S=1, λ =30,b=120, cs=1, ct =100时,得到了缓存数量N与代价函数C的关系,如图1。
从仿真图可看出,在访问概率小时,系统的代价值会因为缓存数量增大而增大,在访问概率大时,系统的代价值会因为缓存数量的增大而减小,在缓存数量一定的前提下,访问概率大时,系统会为预取付出较少的代价。而且从图中,也看得出,存在一个门限值,访问概率超过门限值的预取才会使系统代价优化。
为了更好的理解改进模型得出的门限值函数的准确性,门限值与系统资源利用率在不同比例值下的关系如图6:
综上所述,当系统利用率增加时,门限H也会相应增加,即较少的文件将被预取,当比例值较小时,这种变化不是单调的,其原因为,当系统负载很小时,预取并不能节省很多时间,当系统负载增加时,传输文件耗时增加而预取会节省更多的时间,即预取门限降低,当负载继续增加时,预取文件将会导致用户正常请求响应时间增加,此时门限应该升高。
4总结
事故因果连锁模型的改进 篇4
20世纪二、三十年代, 美国的H.W.Heinrich把当时美国工业安全实际经验进行总结、概括, 上升为理论, 提出了所谓的"工业安全公理", 出版了流传全世界的《工业事故预防》一书。Heinrich在这本书中阐述了工业事故发生的因果连锁论, 事故致因中人与物的问题, 事故发生频率与伤害严重度之间的关系, 不安全行为的产生原因, 安全管理工作与企业其它管理工作之间的关系, 进行安全工作的基本责任, 以及安全生产之间的关系等工业安全中最重要、最基本的问题。
事故因果连锁共包括事故的基本原因、事故的间接原因、事故的直接原因、事故以及事故后果五个互为因果的事件。常用多米诺骨牌来形象地描述这种事故因果连锁, 如图1所示。在多米诺骨牌系列中一颗骨牌被碰倒, 则将发生连锁反应, 其余的骨牌将相继被碰倒。如果移去其中的一颗骨牌, 则连锁被破坏, 事故过程将被中止。
Heinrich从作用与反作用的角度解释事故, 指出事故是一种失去控制的事件。他首先提出了人的不安全行为和物的不安全状态的概念, 提出了企业安全工作的中心是防止人的不安全行为, 消除机械或物质的不安全状态, 中断事故连锁而防止事故发生的著名论点。
Heinrich一方面强调了人的不安全行为在事故发生中的重要作用, 同时也指出了机械的或物质的不安全状态也是事故发生的直接原因。但是, 他把人的不安全行为和物的不安全状态的产生原因完全归因于人的缺点, 进而追究人的遗传因素和社会环境方面的问题, 这对于重于管理的现代企业来讲, 已经不太适合。这是Heinrich事故因果连锁理论的时代局限性。
2 改进的事故因果连锁模型
在现在的企业中, 管理的作用已经得到极大的加强, 可以说, 没有管理就没有效益。管理成为现代企业运作的核心。而管理对于安全来说, 其作用也是得到了显著的加强。系统中人、机、环的各个方面都受控制于管理。在改进的事故因果连锁模型中, 管理因素被加了进来, 且作为模型中一个非常重要的部分, 如图2所示。
在改进的事故因果连锁模型中, 整个模型依然是五级, 新模型的前三级都发生了变化。事故发生的直接原因依然是人的不安全行为和物的不安全状态。人的不安全行为或物的不安全状态作用于人或物 (设备、财物等) 就造成伤害或损失, 即发生事故。不过物的不安全状态的内容被扩充了。一个系统由人、机、环、管四部分组成, 在这里, 机器和环境同属于物的因素。它们可以直接导致伤害或损失发生, 例如环境中的有毒有害物质直接作用于人 (作用对象) 可能引起职业伤害等。总的来说, 就是把一个系统的四部分归为人、物、管三部分, 人和物的因素可以直接导致事故发生。
进一步, 导致人的不安全行为和物的不安全状态的原因是管理不善。系统中的管理是指组织机构、政策、计划、规章制度、安全文化, 人人交流、人物交流等管理因素。管理作用于系统中的各个部分, 由于管理不善如规章制度不完善、机器处置不当等使人产生不安全行为, 使物处于不安全状态。
导致管理不善则是社会文化、体制等方面更深层次的原因。如不合适的社会文化导向、过于复杂的政治体制等成为企业管理向前发展的制约因素。
3 事故原因分析
事故原因包括直接原因、间接原因和根本原因。根据上面改进的事故因果连锁模型, 整个事故原因体系如下表所示。
事故的直接原因也就是人的不安全行为和物的不安全状态, 他们直接作用于对象, 造成伤害或损失。间接原因都可归于管理不善, 这可能是管理模式不良或管理制度不良。选择了一个不适合于自身的管理模式将导致管理效率降低, 从而是管理不善, 导致人的不安全行为或物的不安全状态。同时, 不良的管理制度, 如管理制度不全、过于宽松或过于严格等也会导致管理不善。事故的根本原因则是社会和体制两方面因素, 社会因素包括文化和历史两方面, 由此形成的不利于安全生产的社会倾向影响到企业管理。政治体制复杂、经济体制不合理也影响到企业管理的有效性。
4 预防事故发生的措施
和H.W.Heirnrich事故因果连锁模型一样, 只要控制其中一个环节, 使其不发生, 事故就不会发生。鉴于管理在安全生产中的重要性, 因此预防事故发生的措施主要从以下两个方面来考虑:
4.1 完善管理, 尤其是安全管理
管理因素作用于系统中的各个部分, 它在现代企业安全生产中成为最重要的部分。管理因素直接决定系统中的其他因素。要完善管理, 首先企业要探索真正适合自身情况的管理模式。国际上已经有非常先进且应用非常广泛的管理模式, 如HSE, OSHMS等管理体系, 我国有一些企业照搬这些管理模式, 但效果并不好, 其原因就是国外的模式有许多不适合中国自身的情况。我们可以借鉴国际先进的管理模式, 并结合自身特点加以改造, 使其符合自身发展要求。
其次, 完善管理要有完善的管理制度。如果有了先进的管理模式, 而没有内容也是不行的。光有先进的模式, 这仅仅是一个空壳。要将其填满, 这就需要有完善的细化的制度。管理模式和管理制度两者相结合才能真正形成完善的管理, 才能在事故预防中起到真正的作用。
4.2 引导社会文化发展, 进行体制改革
进行事故原因分析, 其最根本的原因就是社会文化并不完全符合安全生产的要求, 或者说没有达到那个层次。在认识到安全生产的重要性和进行安全工作的必要性之后, 这就需要政府部门、社会舆论对社会文化的发展作出正确的引导, 从长远来看, 将取得巨大的效益。鉴于我国现阶段的社会经济现状, 正处于一个事故高发频发阶段。而人们对于安全的需求却随经济发展快速上涨。但由于整个社会普遍存在重利润, 轻安全环保;重眼前利益, 忽视长远利益的观念, 这导致安全生产工作没有跟上公众安全需求的增长。同时, 不合理的观念倾向使得企业管理人员对于管理制度考虑不周, 作业人员对相关制度的执行力不强。因此, 需要利用政府部门、社会舆论引导社会公众及企业人员的观念向正确的方向转变, 这也往往可以取得巨大的长期效益。
结论
由于Heirnrich事故因果连锁模型的局限性, 在其应用过程中出现应用瓶颈。事故因果连锁模型的改进模型在考虑现在安全生产的实际情况之后, 对原来模型进行了改进, 最重要的是认识到管理在安全生产及事故预防中的作用。改进模型的提出为事故因果连锁模型的应用提供了相应的理论依据
参考文献
[1]《安全管理》, 陈宝智、王金波, 天津大学出版社, 1999.9.
[2]《现代安全管理》, 罗云、程五一, 化学工业出版社, 2004.3.