一种计算机多进程公平调度的方法技术

技术编号:11500335 阅读:105 留言:0更新日期:2015-05-22 20:43
本发明专利技术公开了一种计算机多进程公平调度的方法,包括以下步骤:步骤一:从进程集中取出进程组成调度集,将进程集中未被调度的进程组成后备调度队列;步骤二:判断进程调度请求是否结束,如未结束执行下一步骤,否则调度结束;步骤三:对调度集进行调度;步骤四:将调度集中调度后的进程转移到后备调度队列的队尾;步骤五:清空调度集;步骤六:从后备调度队列中选取进程组成调度集,并跳转至步骤二。本发明专利技术通过集合运算操作,构造进程的调度集和后备调度队列,实现计算机处理器对多进程的公平调度,避免了进程并发调度时的死锁发生,提高了计算机处理器对并发进程的调度能力。

【技术实现步骤摘要】
一种计算机多进程公平调度的方法
本专利技术涉及并行计算机体系结构中的多进程资源分配
,尤其涉及一种计算机多进程公平调度的方法。
技术介绍
操作系统中的多进程调度问题是计算机科学领域的一个重要的研究内容,进程调度算法的好坏直接影响到计算机资源的利用率和操作系统的运行速度。多进程调度算法解决的核心问题是进程同步(Synchronization)问题。该问题是指进程数目与可用资源数目不匹配,解决该问题需要考虑并发性、死锁和公平性三方面。目前针对该问题的解决方案主要集中在:1)避免进程并发调度时的进程死锁方法;2)进程死锁发生时的有效解决方法。具体的方法包括:服务生解法、资源分级解法、Chandy/Mistra解法以及Petri网模拟多进程调度的解法等。但这些方法很难保证计算机对多进程调度的公平性。服务生解法是指定计算机中的一个处理器监控进程的调度,其它处理器进行进程调度,所有进行调度都需要获得特定处理器的许可。通过这个指定的处理器进行调度,避免了进程调度时的死锁问题,但这种进程调度方法并未涉及公平性。资源分级解法是对资源分配一个偏序或者分级的关系,并约定所有资源都按照这种顺序获取,按相反顺序释放,而且保证不会有两个无关资源同时被同一项工作所需要。但当操作系统中进程数目增加时,预先定义的进程调度顺序不会改变,造成多个进程的长期等待,因此资源分级解法不适合计算机对多进程的动态调度。Chandy/Mistra解法允许进程竞争任何资源,适合于实际情况下计算机对进程的调度,但在一段时间内,存在某些进程被多次调度,而某些进程却很少被调度的情况,因此该方法不能保证进程调度的公平性。Petri网模拟多进程调度问题时,增加了两张许可卡,利用许可卡来保证未执行的进程拥有资源访问权限,避免了进程饿死状态的发生,在一定程度上也保证了进程调度的公平性。但这种方法会造成Petri网模型中状态的急剧增加,导致状态空间爆炸问题,不利于计算机处理器对多进程的实时调度。在操作系统中,并发进程数目是动态变化,而每个进程对资源的需求也是动态变化,现有技术中多进程调度算法在解决这类问题时很难保证进程调度的公平性,降低了操作系统对进程调度的管理能力。因此,设计一种公平的多进程调度方法已成为计算机科学领域中急需解决的问题。
技术实现思路
本专利技术的目的是决解现有技术中多进程调度算法的不公平性,提出了一种计算机多进程公平调度的方法。通过集合运算,构造进程的调度集和后备调度队列,实现了计算机处理器对多进程的公平性调度。该算法不但能有效的解决并发进程的调度问题和进程死锁问题,同时也实现了计算机处理器对多进程调度的公平性,提高了操作系统对并发进程调度的管理能力。本专利技术计算机多进程公平调度的方法,需要进行如下假设和定义:假定进程集A={a1,…,an},其中ai表示一个进程,资源集B={b1,…,bm},其中bi表示为计算机中的一个资源。定义1(影响因子):当某一进程a被调用后,会占用资源集B中的k个资源,进而影响进程集A中其它j个进程获取资源集B中的资源,则称这j个进程ai+l,…,ai+j为进程a在资源集B中的影响因子。定义2(影响因子函数):若进程ai+l,…,ai+j是进程a在资源集B中的影响因子,则函数f(a)={ai+l,…,ai+j}被称为进程a在资源集B中的影响因子函数。定义3(调度集):调度集D是进程集A的一个真子集,对于任意d1,d2∈D,都有,并且对于任意a∈A-D,总存在d∈D使得a∈f(d)。定义4(后备调度队列):后备调度队列中的进程为集合A-D中的进程。本专利技术提出了一种计算机多进程公平调度的方法,包括以下步骤:步骤一:从进程集中取出进程组成调度集,将进程集中未被调度的进程组成后备调度队列;步骤二:判断进程调度请求是否结束,如未结束执行下一步骤,否则调度结束;步骤三:对调度集进行调度;步骤四:将调度集中调度后的进程转移到后备调度队列的队尾;步骤五:清空调度集;步骤六:从后备调度队列中选取进程再次构造调度集,并跳转至步骤二。其中,步骤一中调度集由进程集中能同时获取资源的进程组成。其中,进一步地,步骤一中调度集的组成包括以下步骤:步骤A:将进程集中进程复制到临时进程集中,并初始化调度集为空集;步骤B:随机从临时进程集中任意取出一个进程;步骤C:将进程放入调度集中;步骤D:删除临时进程集中进程的影响因子;步骤E:临时进程集不为空集,则跳转到步骤B,或临时进程集为空集,则结束调度集的组成。其中,调度集中的进程从后备调度队列的队首选取。其中,进一步地,调度集的组成包括以下步骤:步骤F:从后备调度队列中选取进程放入到调度集中;步骤G:将后备调度队列中未被选取的进程按原顺序排列。其中,进一步地,步骤六中调度集的进程由后备调度队列的队首向队尾依次选取。其中,进一步地,步骤六中选取的进程不为调度集中任意进程的影响因子。其中,调度集和后备调度队列由集合运算操作产生。其中,调度集和后备调度队列能相互转换。本专利技术为实现计算机处理器对多进程调度的并发性、非死锁性和公平性,提出了一种计算机多进程公平调度的方法,采用集合运算操作获取进程的调度集和后备调度队列,再产生可调度的进程调度序列,实现计算机处理器对多进程并发操作的公平性调度。附图说明图1是本专利技术计算机多进程公平调度的方法进程调度过程的进程状态转换图。图2是本专利技术计算机多进程公平调度的方法中调度集D构造算法的流程图。图3是本专利技术计算机多进程公平调度的方法的流程图。图4是利用本专利技术计算机多进程公平调度的方法对5个进程和2个共享资源的5次并发调度的模拟图。图5是利用本专利技术计算机多进程公平调度的方法对6个进程和2个共享资源的7次并发调度的模拟图。具体实施方式结合以下具体实施例和附图,对本专利技术作进一步的详细说明。实施本专利技术的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本专利技术没有特别限制内容。图1为本专利技术中进程调度过程的进程状态转换图。在本专利技术计算机多进程公平调度的方法中,所有进程分为三种状态:1)初始时的进程集状态;2)进程的调度集状态;3)进程未被调度时的后备调度队列状态。依据本专利技术计算机多进程公平调度的方法,进程集状态转换为调度集状态和后备调度队列状态。调度集状态与后备调度队列状态之间相互转换,直到进程调度请求结束。图2为本专利技术计算机多进程公平调度的方法中调度集D构造算法的流程图。首先输入进程集A,再将进程集A中的所有进程复制到临时进程集C,初始化调度集D为空集。当临时进程集C不空时,重复执行如下操作:1)随机获取临时进程集C中的一个进程a;2)执行集合运算操作C=C-f(a)-{a};3)当临时进程集C为空集时,输出调度集D。由于是随机取临时进程集C中的进程a,因此最终组成的调度集D不唯一。图3为本专利技术计算机多进程公平调度的方法的流程图。计算机多进程公平调度方法的步骤如下:步骤一:由进程集A中选出可进行并发调度的进程,组成调度集D,将进程集A中剩余未被调度的进程按原次序排列组成后备调度队列L;步骤二:判断进程调度请求是否结束,如未结束则执行下一步骤,否则调度结束;步骤三:对调度集D中所有进程进行并发调度;步骤四:将已被调度的进程插入到后备调度队列L的队尾;步骤五:本文档来自技高网
...

【技术保护点】
一种计算机多进程公平调度的方法,其特征在于,包括以下步骤:步骤一:从进程集中取出进程组成调度集,将所述进程集中未被调度的进程组成后备调度队列;步骤二:判断进程调度请求是否结束,如未结束执行下一步骤,否则调度结束;步骤三:对所述调度集进行调度;步骤四:将所述调度集中调度后的进程转移到所述后备调度队列的队尾;步骤五:清空调度集;步骤六:从所述后备调度队列中选取进程再次构造下一次的调度集,并跳转至步骤二。

【技术特征摘要】
1.一种计算机多进程公平调度的方法,其特征在于,包括以下步骤:步骤一:从进程集中取出可进行并发调度的进程组成调度集,将所述进程集中未被调度的进程组成后备调度队列;步骤二:判断进程调度请求是否结束,如未结束执行下一步骤,否则调度结束;步骤三:对所述调度集中的进程进行调度;步骤四:将调度完成的进程进入所述后备调度队列的队尾;步骤五:清空调度集;步骤六:从所述后备调度队列中选取可进行并发调度的进程再次构造新的调度集,并跳转至步骤二;所述步骤一中所述调度集由所述进程集中能同时获取资源的进程组成;进一步地,所述步骤一中调度集的组成包括以下步骤:步骤A:将所述进程集中的进程复制到临时进程集中;步骤B:随机从所述临时进程集中取出一个进程;步骤C:将所述进程放入所述调度集中;步骤D:删除所述临时进程集中所述进程的影响因子;所述影响因子为当某一进程a被调用后,会占用资源集B中的k个资源,进而影响进程集A中其它j个进程获取资源集B中的资源,则称这j个进程...

【专利技术属性】
技术研发人员:刘攀蔡立志刘振宇胡芸傅志仁廖文昭杨卉周伟郑阳
申请(专利权)人:上海计算机软件技术开发中心上海商学院上海市信息网络有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1