武汉大学计算机学院研究生操作系统作业.docx

上传人:b****7 文档编号:9621431 上传时间:2023-02-05 格式:DOCX 页数:31 大小:165.74KB
下载 相关 举报
武汉大学计算机学院研究生操作系统作业.docx_第1页
第1页 / 共31页
武汉大学计算机学院研究生操作系统作业.docx_第2页
第2页 / 共31页
武汉大学计算机学院研究生操作系统作业.docx_第3页
第3页 / 共31页
武汉大学计算机学院研究生操作系统作业.docx_第4页
第4页 / 共31页
武汉大学计算机学院研究生操作系统作业.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

武汉大学计算机学院研究生操作系统作业.docx

《武汉大学计算机学院研究生操作系统作业.docx》由会员分享,可在线阅读,更多相关《武汉大学计算机学院研究生操作系统作业.docx(31页珍藏版)》请在冰豆网上搜索。

武汉大学计算机学院研究生操作系统作业.docx

武汉大学计算机学院研究生操作系统作业

高级操作系统

 

学院:

计算机学院

专业:

信息安全

任课老师:

xx

学号:

xx

姓名:

xx

完成日期:

2017年05月15日

思考题

记得更改,只选择其中的五道题目,一些内容可以删除的,搜集的资料很多,大家们可以自行选择。

(其中1、2、7答案基本固定)其它题目大家们选择的时候不要选重了。

否则就是相同的作业了,选的时候说下。

我选了6和8。

1.验证Lamport’sAlgorithm算法的正确性,即该算法是否能保证

(1)在任何时刻,最多只有一个进程位于临界段(安全性);

(2)若位于临界段的进程在有限时间内退出临界段,则其它请求进入临界段的进程总会进入(可用性)。

答:

第一个分布式互斥算法是由Lamport(1978)提出的,他利用了前述的时间定序方案去统一定序所有对临界段的请求,并按先来先服务的次序为请求的进程服务。

他的方案在每次进出临界段时候需要3*(n-1)条消息。

该算法的基本假定如下:

(1)进程Pi发送的请求消息形如Request(Ti,i),其中Ti=Ci,是进程Pi发送此消息时候对应逻辑时钟的值(时戳)。

(2)每个进程管理着一个请求队列,最初它为空,该队列包含用关系“=》”定序的请求消息。

该算法可描述为:

(1)当进程Pi请求进入临界段时候,它将Request(Ti,i)发送给系统中所有其它的进程,同时也将此消息置入它自己的请求队列中;

(2)当进程Pj受到这条Request(Ti,i)消息后,它便将此消息置入自己的请求队列中,并返回一个带有时戳的Reply消息;

(3)当下面两个条件都成立时候,Pi才允许进入临界段:

①Pi自己的Request(Ti,i)消息位于它自己请求队列的队首;

②Pi已收到来自其他每一进程发送过来的时戳迟于Ti的Reply消息。

(4)当退出临界段时候,进程Pi从自己的请求队列中去掉自己发出的Request(Ti,i)消息,并给其他每个进程发送一条带有时间戳的Release消息。

(5)当进程Pj接收到进程Pi的Release消息后,它也从自己的请求队列中去掉Pi发来的Request(Ti,i)消息。

不难证明该算法是正确的,因为

由(3)--②及消息是按其发送的次序接受的假定,就保证了进程Pi已经知道它先于它的当前请求的所有请求;(注:

此步骤保证了若位于临界段的进程在有限时间内退出临界段,则其它请求进入临界段的进程总会进入,即可用性)

由于用关系“=》”定序了所有的请求消息,因此在任何情况下,(3)--①允许一个且只有一个进程进入临界段。

(注:

此步骤保证了在任何时刻,最多只有一个进程位于临界段,即安全性)

2.请求驱动式令牌传递方法中,若pi发出request消息后久未获得Token,该怎么处理?

若引入时戳,该算法应做何修改?

答:

请求驱动式令牌传递方法中,若pi发出request消息后久未获得Token,则需要引入时间戳的概念,我们将在以下内容做具体介绍。

在令牌传递算法中,令牌是系统中唯一存在的一种特殊的消息类型。

假定系统由n个站点构成,每个站点上只运行一个进程,它们的编号是1~n。

系统中的所有进程可组成一个虚拟或逻辑环。

一般情况,令牌可在环中沿一个方向(单向环)或二个方向(双向环)流动。

仅拥有令牌的进程才有权进入临界段。

当进程退出临界段时,它就把令牌传递给它的邻居。

因为系统只有一个令牌,所以一次只有一个进程可以进入临界段。

请求驱动Token传递算法假定系统组成一个双向环,系统中的每个进程循环不止地执行下面的程序段:

(1)当进程Pi请求进入CS但未握有token时,向其右邻的进程Pj发出request消息。

(2)Pj收到其左邻进程发来的request,若下面的条件都不满足时,则将转交给其右邻的进程。

它握有token,但已不在CS中,又不希望进入CS中,则将token传给其左邻进程。

它在CS中,退出时,将token传给其左邻的进程。

若它自己已发出request,它将暂存其左邻进程Pi发来的request,一旦收到其右邻进程传来的Token就先进入CS,退出后再将Token传递给其左邻进程Pi。

如引入时间戳,可以在所有进程发出的request消息中包含时间戳。

为使该算法具有强健性应增加如下的步骤:

(1)当Pi的Request消息发出后久未获得令牌,则向其他进程发询问消息;若其他进程无反对消息到达,则它成为令牌持有者,否则继续等待。

(2)若接收到询问消息的进程是令牌的持有者,或已发出了一条Request消息,且自己的Request消息中的时间戳先于询问者进程的Request消息中的时间戳(相等时,就比较进程号),则立即发回一条反对消息。

(3)令牌握有者传递令牌时,若发现接受者故障,则重新选择接受者。

不难看出,在上述基于环结构系统的令牌传递算法中,若站点之一故障,则需重构逻辑环。

若令牌丢失则应有再生令牌的方法。

5.试设计层次式死锁检测方法的具体算法并进行算法分析。

第一种答案:

层次式死锁检测算法是一种分布式算法。

层次式死锁检测通常根据应用和数据的分布情况,将系统中的所有站点组织为一个层次式结构。

在该层次结构中,叶结点代表实际的物理站点;分支结点称为局部检测站点,由其下级的某个站点担任;根结点称为全局检测站点。

当系统怀疑发生死锁时,叶结点将自身WFG发送到其层次结构中的上级结点,由上级结点将其所有下级结点的等待图WFG(Wait-ForGraph)组合为局部WFG,并进行局部的死锁检测和解决,稍后,再将不包含局部死锁的局部WFG传递到上级结点,上级结点继续进行死锁检测,直到根结点得到全局WFG,并得出相应检测结果。

具体而言,每个结点管理自己的局部等待图,其中一部分结点被指定为控制者,这些控制者构成一个树型结构,树中每个非叶结点管理它的子树中的控制结点的局部等待图。

①设A、B、C都是控制者(非叶结点),C是A和B的前辈结点,如果p同时出现在A与B的局部等待图中,则从C到A和从C到B的路上的所有控制者结点的局部等待图中都含有p。

②如果p、q是C的局部等待图中的结点,且在C的某个后代结点的局部等待图中含有边(p,q),则C的局部等待图中亦含此边。

如果系统中某一个控制者的局部等待图中有环,则有死锁发生。

层次式死锁检测将死锁检测任务分布在多个站点执行,提高了系统效率,避免了系统出现通讯瓶颈问题。

但同时,层次式死锁检测也存在多个限制。

系统可靠性问题:

当全局死锁检测站点发生故障时,系统将无法继续正常工作;

算法灵活性问题:

系统的层次结构是相对固定的,如果系统进行了扩充或改动,那么原有的层次结构可能已经不适合了。

有效性问题:

同集中式检测算法一样,WFG的及时更新能力差,将降低算法检测结果的有效性。

第二种答案:

层次式死锁检测方法

主要思想:

每个站点管理各自的PWG,全局的PWG则分散由若干不同的管理者管理,他们组织成层次结构。

构造方法:

①先只有最低层的管理者,它们管理各自站点的PWG。

②若任一管理者管理的PWG中有公共节点出现,则在这样一些管理者之上构建一个新的管理者,并将这些公共站点作为该新管理者所管理的PWG的一部分;若结点Pi,Pj出现在其中,且其下属之一的PWG中存在从Pi到Pj的路径,则将Pi→Pj插入该新的PWG中

③重复②,直至构造不出新的层次为止。

结论:

任一层存在环路,表示系统存在死锁。

 

层次式死锁检测将死锁检测任务分布在多个站点执行,提高了系统效率,避免了系统出现通讯瓶颈问题。

但同时,层次式死锁检测也存在多个限制。

系统可靠性问题:

当全局死锁检测站点发生故障时,系统将无法继续正常工作;

算法灵活性问题:

系统的层次结构是相对固定的,如果系统进行了扩充或改动,那么原有的层次结构可能已经不适合了。

有效性问题:

同集中式检测算法一样,WFG的及时更新能力差,将降低算法检测结果的有效性。

6.分析现有的负载平衡策略或算法,指出它们的不足,并就其中之一给出你的改进方法。

第一种答案

答:

(1)现有的负载平衡算法及其分析比较

●负载平衡算法可分为动态算法和自适应算法二大类。

①动态算法

根据系统状态,对可以接受任务的节点进行分析,如果处理机不空闲,可以将任务迁移到空闲节点,甚至可以将正在进行的任务迁移到其他空闲节点。

但是,信息的收集、分析及作出决定要造成额外开销,不可小视。

②自适应算法

通过动态改变参数甚至策略来调整自身的行为,以适应正在改变的系统状态,在无法通过任务迁移提高系统性能的情况下,自适应算法是很好的选择。

目前在很多关于负载平衡的研究都是集中于静态情况下的研究,使用启发性的方法。

近年来基因算法作为一种具有鲁帮性和适应性等良好的研究技术被广泛的使用,本次研究的工作目标即是如何使用基因算法解决动态负载平衡的问题。

●现有负载平衡算法比较

①发送者启动算法

该算法由发送者来触发负载分配。

当一个节点机成为一个发送者时,它主动寻找接收者来接收自己的一部分负载。

显然,在系统轻载时,发送者能较容易地找到接收者,因而该算法比较稳定有效。

但在系统重载时,该算法会引起系统的不稳定,因为此时发送者不仅不容易找到接收者,而且查询的开销还会增加系统的负载。

②接收者启动算法

该算法由接收者触发负载的分配,当一个节点机变成一个接收者时,它便主动寻找发送者,以便从那里接收部分负载。

该算法在系统重载的情况下,因多数节点处于重载,所以不会引起系统的不稳定,它优于发送者启动算法。

但接收者找到发送者时,由于任务可能已经启动,因此,该算法需要对正在运行的进程进行迁移。

③对称启动算法

对称启动算法是前两种算法的结合,因此它具有这两种算法的优缺点。

这种算法要求发送者和接收者均参与负载分配的活动。

在系统轻载时,发送者启动算法有效,而系统重载时,使用接收者启动算法比较合适。

④梯度模型

梯度模型不是试图将新产生的任务转移到其它场点上去,而是把新产生的任务加入自己的任务队列,等待其它的场点来申请。

每个场点上都有一个负载平衡进程,这个进程周期性地更新各场点的状态信息和邻近度信息。

每个场点的状态信息由两个参数描述:

低水线和高水线。

当该场点的负载低于低水线时,状态信息为轻载,当高于高水线时,状态信息为超载,否则为负载;一个场点的邻近度信息反映着该场点到一个轻载场点最短距离的估计值,一个轻载场点的邻近度为0,其它场点的邻近度取一个场点到它所有的邻近场点中邻近度的最小值。

当一个场点的邻近度大于网络直径时,说明系统处于饱和状态,令其邻近度为网络的直径+1,以避免其邻近度无限增大。

当一个场点计算的邻近度的新值不同旧值时,它将向它所有的邻近场点广播。

当一个场点超载同时系统又不处于饱和状态时,该场点向具有最小邻近度的邻近场点转移一个认任务。

⑤接收者主动的渗透算法

接受者主动的渗透算法是通过相邻的重叠部分的场点扩散负载而达到负载平衡的一类方法,负载信息是通过相邻场点进行交换的。

这个算法中的参数需要调整到系统出现最优性能,但找到最佳参数是非常困难的。

⑥预约策略

预约策略的基本思想:

一个轻载场点按一定方式查询系统的状态,请求某个重载场点迁移到一个尚未开始运行的任务给自己。

若此时重载场点尚无这样的负载存在,则轻载场点同它进行一次“预约”,要求一旦有新创建的或到达的负载,就将它迁移给自己,因为迁移一个正在运行的负载是比较困难的。

⑦投标策略

投标策略的基本思想为:

重载场点向系统广播一个“请求迁移出负载”的请求消息,接收到这一请求消息的场点根据自己的状态决定是否参与投标:

若参与,则它向请求者发一标书(含可以接收的负载量);该重载场点对接收到的标书进行筛选,选出其中最少负载的场点并把其希望迁移的负载迁移给它。

⑧广播策略

广播策略的基本思想为:

每个场点都将自己当前的负载广播给系统中所有其他的场点,因此,重载场点可将一定量的负载直接迁移到负载最少的场点,或者轻载场点可直接从最高负载的场点请求接收一定量的负载给自己。

●评价和比较

上述算法的缺点在于,它们不能适应系统状态的变化,而自适应算法则是根据系统状态的变化,通过修改某些参数甚至策略来适应系统负载的变化。

因而,自适应算法更为有效,能适合各种情况下的负载分配。

●改进算法

1改进算法综述

改进算法主旨是尽量优化系统进行负载平衡时的性能。

为此每个节点机只记录相邻节点机的状态信息,每当节点机状况发生变化时发送消息给相邻节点机。

同时去掉了中立者表及中立者启动过程。

改进算法由发送者启动及接收者启动两部分组成。

当整个系统处于重载时,抑制发送者启动过程,启动接收者启动过程,当整个系统处于轻载或适载时,抑制接收者启动过程,启动发送者启动过程。

这时每个节点机只存放两张表,分别为发送者表和接收者表。

当节点机为重载且整个系统处于轻载或适载时,若接收表不空则在接收表中按照节点机之间的距离与任务通信量计算任务转移需要的代价,然后选择代价最小的作为接收者,并发送消息给接收者。

若此时的接收者仍为轻载,则返回消息,在任务未执行时进行迁移。

若接收者状况已经改变,则删除当前节点机中接收者表中的该节点机,选择通信量次之的进行上述过程。

当整个系统处于重载时,若某个节点机变成接收者,且发送者表不空,则选择最近提出任务转移请求的节点机并发送消息准备接受任务迁移。

若重载节点机的任务已启动,则不进行迁移,当前节点机改变其发送者表并选择下一个节点机进行查询。

选择最近提出任务转移请求的节点机原因是其任务已迁移的可能性最小,从而减小重复轮巡的开销。

若当前节点机为重载且接收表空,任务只能在本机运行。

当整个系统处于重载时,如果某个节点机变成接收者,且发送者表空,则节点机等待。

保证以上算法能够正常进行的条件是当某一节点机状态改变时必须及时更新相邻节点机的两张表,这样可以避免当整个系统节点机过多时,更新所有节点机的两张表所花费的资源,同样也能避免状态不同步更新,任务转移时原接收者已变为重载,需再一次任务迁移或重新选择接收者所需耗费的资源的情况。

为避免任务在节点机之间迁移多次加重系统负担,规定任务转移次数上限,并规定探询次数上限防止多次查找耗费系统资源。

2算法的主要数据结构和参数

本算法采用基于CPU队列长度的阈值转移策略,阈值T1、T2,T1

当节点机处于轻载时可接受任务迁移,处于重载或适载时不接受务迁移。

采用非抢先方式转移任务,即只转移新产生的任务,不转移已产生的任务。

当前节点机状态:

Status;

转移次数上限:

Toplimt;

转移次数:

Transnum;

当一个任务经过多次转移,转移次数已达到一个上限时,为避免发生“转移任务颠簸”的现象导致系统不稳定,调度策略决定该任务在此机器上执行。

探询次数限制:

Problimt;

探询次数:

Probnum;

分配任务时,探询接收节点次数到达上限,将停止探询。

相邻节点表在系统初始时由管理员设定,结构为链表形式,记录与每个节点机相邻的那些节点机。

每个节点通过一个由发送者表、接收者表组成的数据结构,记录相邻各节点机名称。

每个用双向链表来表示。

其中接收者表为rlist;发送者表为slist。

现行待分配任务与分配任务间的数据通信量[b1,b2,…,bt],已分配任务对应的机器[n1,n2,…,nt],机器间相对距离D及通信量信息存放在系统中。

3算法的控制策略

在算法运行过程中,当发送者启动时,若无接收者或探询次数未超过上限,则在本机执行任务;若转移次数超过上限,则任务在最后一次转移的节点机上运行。

在接收者启动时,若探询次数超过上限或无接收者,则终止该过程,等待其余节点机的负载变化再启动此算法。

同时还应注意在接收者启动过程中,若对应的发送者的任务已经启动,则不对该任务进行迁移,而应寻找下个发送者。

当某节点机因故障而被删除,或有新节点机加入时,要更新所有相关表中对应状态。

④改进后算法的特点

1)重载的节点机可以将新任务转移到轻载节点机上;

2)可以根据系统状态信息,有选择地探询节点,适应系统状态的变化;

3)考虑任务间通信关系;

4)探询次数和任务转移次数均有上限,以防止系统崩溃,个别节点机故障时不影响其他节点机的正常运行。

⑤主要功能模块进后的算法功能模块主要包括:

系统初始化、发送者启动、接收者启动、通信量的计算和对通信量从小到大排序。

限于篇幅,下面主要对前三个模块作一叙述。

A初始化过程

有节点上的状态值为receiver,发送者表为null,接收者表包含所有与它相邻的节点。

B送者初启过程

发送方:

1)当新任务产生,导致节点机i变成发送者;

2)发送方计算接收者rlist中的各节点j与待分配任务的代价数

其中,dkj表示节点nk和节点nj的距离,Bnk表示待分配任务和节点nk上已分配任务的通信量,它等于在节点nk上所有已分配任务和待分配任务的通信量bk之和,代价数表示出待分配任务分配到节点j时所需要的代价。

我们可以根据Cj的大小选择探询节点,找到负载较轻且引起系统开销小的节点作为接收者,以减少系统通信开销,加快执行速度。

3)取rlist各个节点中代价数Cj最小者节点作为探询节点,发送探询信息。

4)IFj为接收者

THEN{将新任务从节点i转移至j;算法stop;}

ElSE{从rlist表中移去j节点,重复3),4),选择另一节点作为探询节点,直至以下3条满足,算法stop,任务在本机运行。

Ⅰ接收者表rlist为空

Ⅱ达到探询次数

Ⅲ节点i不再是发送者}

接收方:

接收方接收到探询信息后,做以下动作。

1)探测节点i从任何一个队列中移到slist的首部;

2)已不是接收者,则向节点i发送有关它的状况信息;

3)如果接收者是接收状态,通知转移程序,新的任务将要迁移来,以决定自己的状态。

C接收方初启过程

当节点机i处于接收者状态时,启动执行该算法。

接收者方:

通知所有的相邻节点,节点i已变成接收者,

并置当前状态为″receiver″;

If发送者表不空then

发送消息给第一个可接受任务

else

等待;

被告知方[j]:

将节点i从任一队列中移到rlist的首位;

If任务开始执行then

发送消息通知接收方状态改变

else

任务迁移;

算法结束。

⑥性能分析

与其它算法相比,该算法能以较少的资源、较快的速度处理负载平衡问题。

原因在于:

该算法主要针对现有算法普遍存在的问题进行改进,具有较少的冗余信息,能根据任务之间的通信量与任务之间距离的关系合理迁移任务,同时有效地防止了任务转移时的抖动现象,并且能处理节点出现故障的情况。

由管理员确定节点机的相邻状态,既可防止大中型系统中轮巡所有节点加重系统负担,也可避免由于物理上相邻节点机过少造成“寻找”的成功率降低的问题。

在性能和效率上都具有较好的优越性。

第二种答案

Ⅰ、现有的负载平衡算法简介

1、Bryant和Finkel算法

Bryant和Finkel算法是动态物理分布算法,计算机间通过发送协商信息来协调做决策。

这种算法是次优的,使用启发式方法找到解决办法,这个分布式算法提高了局部性能。

这个策略按下列方式工作:

(1)计算机C1向他最邻近的计算机C2发出询问,形成临时计算机对,为作业迁移提供一个受控的和稳定的环境,询问有两个目的:

(a)通知计算机C2,C1希望形成一个计算机对。

(b)它包含C1上的进程列表和每个进程的执行时间,通过它们可以估算进程执行的剩余时间。

(2)C2收到询问后,C2执行三个选择中的一个:

(a)拒绝所有C1的询问,这就隐含C1必须向另一邻居发送询问。

(b)与C1形成计算机对,这就隐含C1和C2拒绝将来所有的将来询问,知道该对解体。

(c)当C2处于正迁移状态时,延迟对C1的应答,这就隐含C1必须等待直到C2拒绝或

接受它――C1不能访问其它任何计算机。

(3)建立计算机对后,具有较多负载的一方(例如C1)选择一个进程i(i=1,…,pa,pa是C1上的进程数),把它迁移到另一个计算机上。

这个操作在每个进程响应时间(Ki)期望改善的基础上完成,使用下列公式:

Ki=Tai/(Tbi+Tabi)

这里,Tai是进程i在源计算机C1上运行时间的期望值,Tbi是进程i在目标计算机C2行时间的期望值,Tabi是进程i从源计算机C1到计算机C2的传输时间。

(4)如果计算机C2上没有进程有更好的性能,即对所有的i(i=1,…,pa),Ki小于1,那么计算机C1通知C2解除该计算机对。

否则能够获得期望最佳改进性能的进程被选择并迁移,所有剩余进程重复该过程,直到没有进程能够在C2上得到期望更好的性能。

注意:

在计算机对中每个进程都能选择要迁移的进程并启动迁移算法。

2、Barak和Shiloh算法

Barak和Shiloh算法是全局动态负载平衡算法,而且从每个计算机使用相同策略的这个角度来说是分布式的。

这个算法没有使用对每个进程所要求资源进行估计的先验知识。

每个计算机维护有关其它计算机的少量(固定)负载信息,这个信息使用随机选择的路径频繁交换,因此,该算法属于协调算法类。

Barak和Shiloh算法是服务器主动算法。

该算法假定:

(1)统中计算机数,且N很大。

(2)节点间均有直接的通信连接。

负载均衡策略包括三个不同的部分:

处理机负载算法,信息交换算法和进程迁移算法。

这里我们只讨论面向策略的算法,即前两个算法。

每个计算机使用处理机负载算法不断地监测和估计它自己的本地负载,每隔原子单位时间q计算一次负载,在周期时间t内取平均值。

令L(0)是本地计算机负载的估计值,这个值被周期性修改。

它构成固定大小(假定长度为S)负载矢量L的第一个组成部分,其它部分由任意处理机集合的负载值构成。

信息交换算法负责计算机间负载信息的连续交换。

L(i)表示负载矢量的第i部分(i∈[0,S-1]),它是第i个计算机的负载估计值。

负载矢量L的某些部分采用随机选择的路径,使用类似蠕虫程序的方式频繁交换。

这为每个计算机提供足够的、最新的负载信息。

信息交换算法以下列方式工作,每隔单位时间,每个计算机:

(1)修改它自己的负载值。

(2)随机选择另一个计算机i(i∈[S,N])。

(3)向计算机i发送本地负载矢量的前半部分(用Lr表示)。

每个计算机在收到部分负载信息后:

(1)使用收到的矢量估计每个计算机的负载,接收者首先把收到的每个矢量与它本地的负载矢量合并,根据如下形成L:

L(2i):

=L(i)i∈[1,S/2-1]

且L(2i+1):

=Lr(i)i∈[0,S/2-1]

(2)通过找到每个时间片中请求服务进程的平均数估计计算机负载,这个结果用于估计那个处理机的响应时间。

(3)向估计响应时间最小的计算机迁移一个进程,在每个计算机上有一个特定进程周期考虑是否迁移其它进程。

性能改进依赖于S值,如果S值等于网络中节点数N,这个算法是全局最优。

当突然创建大量进程时,这个算法不能有效工作,因为算法限制了迁移进程数量(每个负载周期迁移一个进程)。

3、Stankovic和Sidhu算法

Stankovic和Sidhu算法也属于全局、动态、物理上分布的算法。

这个算法,使用招标法作为决策,所做决策是次优和启发式的。

它们是源主动算法。

这个算法使用McCulloch-Pitts估计过程(MPEP)。

它基于决策单元,将若干“抑制剂”和“兴奋剂”作为输入,只有一个输出值:

或者是“兴奋剂”之和;或者设置了某些“抑制剂”,则输出为0。

此算法按下列方式工作:

(1)使用Mpep周期估计给定主机的所

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1