多处理器调度(精选6篇)
多处理器调度 篇1
水资源时空分布极度不均衡造成的资源型缺水问题已严重制约了区域经济的发展。在资源型缺水区,单库调度通常难以满足自身灌区用水需求,多水库联合调度能在更大尺度上综合考虑水资源的调配,将水资源丰富区域的水调到水资源紧缺的区域,为缓解缺水地区水资源危机提供了一种重要手段[1]。科学有效的调水规则和供水规则是指导多水库有效调水和供水的关键。为此,国内外学者对多水库联合运用规则做了大量理论与方法方面的探索[2,3,4,5,6,7]。郭旭宁、胡铁松[8]等提出了基于集对分析的水库群联合调度规则研究以及确定水库调水和供水规则的二次规划模型;I.Nalbantis等[2]建立线性模型确定各调度时段每个水库的供水任务;王国利等[9]提出了基于协商对策的多目标群决策模型;方红远等[10]建立了基于供水可靠性最大、供水破坏能力最强以及单一时段破坏深度最小的多目标混合整数规划模型。
相对单库调度而言,多水库联合供水系统增加了水库间的调水量,在实际操作中则需要增加调水规则来指导水库调度。调水时机和调水规模是决定调水规则的关键因素,这两个方面的合理确定则依赖于供水系统的目标,即不同的供水目标会生成不同的调水规则。对缺水区域而言,如何合理分配有限的水资源,减少缺水损失系统风险是人们普遍关注的热点问题。为此,本文从风险最优化的角度建立多水库联合模拟优化调度模型。同时优化确定调水规则、供水规则以及调水规模,最终依据优化结果计算出各水库区用水户供水量,并应用于高关-短港水库的实际调度。
1 模型介绍
1.1 目标函数
基于供水系统全局缺水风险最小化的多水库联合模拟优化调度模型,是将缺水风险纳入目标函数中,目标函数包括缺水风险最低、弃水量最小、调水时段数最小,目标函数如下式:
式中:决策变量x,y,z分别为各水库调水控制线、供水限制线、和调水水库的最大调水规模;T为总时段数;Rt为缺水时段;SUi为i水库的弃水量;N为水库的个数;wE,WSU和WT分别为各子目标的权重。
1.2 约束条件
(1)水量平衡约束:
式中:Vt+1为t时段末蓄水量;Vt为t时段初蓄水量;It为t时段径流量;Qt为t时段供水量;为t时段蒸发渗漏损失量;SUt为t时段弃水量;Dt为t时段调水量。
(2)水库蓄水能力上下限约束:
式中:Vmin,Vmax分别为水库蓄水能力的上下限。
(3)决策变量上下限约束:
(4)水库库容-面积-水位特征曲线:
式中:f(Vi,t)为水位-库容曲线函数;f(Si,t)为库容-面积曲线函数。
(5)限制供水能力不超过允许破坏深度:
式中:α1为工业生活的供水限制系数;α2农业供水限制系数。
(6)非负约束:模型中所有变量均为非负。
1.3 缺水风险指标
(1)缺水风险的计算式子如下:
式中:Rt为缺水时段;T为供水系统总时段数;SN表示供水系统缺水总时段数。
缺水指数综合考虑了各缺水年发生的频率和缺水量。
(2)平均易损性是用来刻画供水破坏造成后果的严重程度,本文采用平均缺水率表示易损性,计算式子如下:
式中:st表示第t个计算时段的缺水量;dt表示第t个计算时段的需水量;T表示供水总历时。
1.4 模型求解
基本粒子群算法在运行过程中,很容易陷入局部最优解[11],为避免出现局部最解,出现早熟收敛的现象,采用并行多种群混合进化的粒子群算法(PMSE-PSO)。PMSE-PSO法的具体步骤如下:①算法在可行域范围内随机产生M×N个粒子,其中M为子群体个数,N为每个子群体中粒子的个数,并计算每个粒子的目标函数值;②将粒子按目标函数值从小到大的顺序进行排序;③按照分配规则将总群体分成M个子群体,每个子群体中粒子的个数为N;④利用PSO算法进化每个子群体;⑤经过一定迭代次数后,将子群体进行混合,使所有粒子进行信息交流,并将每个粒子按目标函数值重新进行排序;⑥如果满足终止准则则退出;否则回到步骤③。
2 实例应用
2.1 研究区概况
高关水库灌区位于湖北省京山县以北大富水流域,高关水库灌区内有1座大型水库、1座中型水库、58座小型水库以及13 893处塘堰作为灌溉水源,设计灌溉面积2.56万hm2。其中高关水库是灌区的骨干调节水库,它位于湖北省京山县北部的大富水河上游,是汉北水利总体建设规划中的一座以灌溉为主,兼有防洪、发电、养殖等综合效益的大(Ⅱ)型水库,水库控制面积303km2,总库容20 108万m3,兴利库容15 432万m3,补水至大富水及渔子河水库。
短港水库位于应城北部杨河镇境内,是一座中型水库,最大蓄水面积1 023hm2,最大水深16m。短港水库拦截大富水,承雨面积70km2,总库容6 967万m3,兴利库容4 141万m3,水库的主要功能是灌溉供水,设计灌溉面积0.8万hm2,有效灌溉面积0.47万hm2。
2.2 模型求解与结果分析
为缓解水资源紧缺、提高生活及工业用水保证率,充分利用高关水库与短港水库之间的库容差异以及水文差异,在满足自身需水的情况下,高关水库向短港水库调水,使供水系统缺水风险最低。本文选取1973-2013年的长系列资料,以2013年为现状水平年,以月为计算时段,运用上述模型优化求解短港水库和高关水库调水规则,计算各水库的供水量、缺水量,以及相关计算参数(wE为0.35,wSU为0.42和wT为0.23),进而得到缺水风险和平均易损性(见表1和表2),并与单库调度结果对比分析。
从表中结果分析,单库调度时短港水库灌区的生活用水5%缺水损失程度的缺水风险为0.271 4,P=10%缺水损失程度的缺水风险为0.261 2,P=20%缺水损失程度的缺水风险为0.246 9,虽然缺水风险比较低,但是并没有满足生活供水保证率要求(90%),而在双库联调中,短港水库的P=5%缺水损失程度的缺水风险为0.059 2,P=10%缺水损失程度的缺水风险为0.057 1,P=20%缺水损失程度的缺水风险为0.055 1,生活供水保证率达到95%左右,而且生活用水的平均缺水率(平均易损性)为0.081 3。这说明在高关水库灌区基本保证自身供水的条件下,向短港水库调水大大降低了短港水库灌区的生活供水的缺水风险,充分利用了系统水资源。高关灌区水资源充足,各部门用水的满足程度很高,缺水风险很低。其工业和生活供水的保证率达到90%左右,农业供水保证率为85%左右。向短港水库供水后,仅对工业和农业供水产生了一些影响,工业缺水风险仅升高了1%左右,农业风险升高了30%。虽然高关水库经两库联调后的平均易损性较单库时有所升高(生活供水从单库供水的0升为0.039 8,工业供水从单库供水的0.0406升为0.079 8,农业供水从单库供水的0.125 7降为0.240 8),但对供水保证率的影响却不大,却大大降低了供水系统全局平均易损性,这是运用该模型使高关水库对短港水库进行了水量补偿。
单库调度时短港水库灌区的工业用水P=5%缺水损失程度的缺水风险为0.551 0,P=10%缺水损失程度的缺水风险为0.542 9,P=20%缺水损失程度的缺水风险为0.528 6,并且平均缺水率为0.440 4,发生5%至20%缺水损失程度的概率只有2.24%,这表明极端的缺水损失比较严重,集中破坏大,不利于当地经济的可持续发展。经高关水库调水后,P=5%缺水损失程度的缺水风险为0.893 9,P=10%缺水损失程度的缺水风险为0.138 8,P=20%缺水损失程度的缺水风险为0.134 7,并且平均缺水率为0.142 5,发生5%至20%缺水损失程度的概率为75.92%,意味着避免了工业用水极端的缺水损失。单库调度时短港水库灌区的农业用水P=10%缺水损失程度的缺水风险为0.459 2,P=20%缺水损失程度的缺水风险为0.455 1,P=30%缺水损失程度的缺水风险为0.453 1,并且平均缺水率为0.421 0,发生10%至30%缺水损失程度的概率只有0.61%,这表明极端的缺水损失比较严重,集中破坏大,不利于当地农业的可持续发展。经高关水库调水后,P=10%缺水损失程度的缺水风险为0.553 1,P=20%缺水损失程度的缺水风险为0.553 1,P=30%缺水损失程度的缺水风险为0.163 3,并且平均缺水率为0.260 1,发生5%至20%缺水损失程度的概率为38.98%,表明极端缺水损失程度明显降低。
3 结语
(1)在高关水库灌区基本保证自身供水的条件下,向短港水库调水大大降低了短港水库灌区的生活供水的缺水风险,生活供水达到了供水保证率要求,并且避免了工业用水极端的缺水损失造成的集中破坏。而高关水库灌区的缺水风险没有明显升高,因此供水系统全局缺水风险最优,充分利用了水资源,保证了两个灌区的可持续发展。
(2)经高关水库向短港水库调水后,短港灌区的各用水部门的平均易损性明显降低,虽然高关水库灌区各用水部门的平均易损性略有升高,但并没有影响本灌区的供水保证率,充分发挥了水库兴利效益,缓解了短港灌区的水资源短缺矛盾。
(3)本文建立的模型具有普遍意义,可以推广到多个并联水库向一个水库调水,从供水系统全局缺水风险最低的角度,同时优化确定调水规则、供水规则及最大调水规模,在调水量未知的情况下,优化调度模型,把调水水库最大调水规模为决策变量之一,然后把优化得到的最大调水规模作为本流域最后一个虚拟的用水户进行供水,进而确定各时段实际调水量和用水户供水量。
摘要:针对调水量与调水时机不确定的问题,建立基于供水系统全局风险最小化的多水库联合模拟优化调度模型,采用并行多种群混合进化的粒子群算法(PMSE-PSO)全局优化确定满足各水库供水要求的水库群调水规则和供水规则,并优化确定调水水库的最大调水规模,最后根据优化规则及调水规模进行水库调度计算,进而求出各计算时段调水量以及各水库区用水户供水量。本模型从缺水区域风险最优化的角度,优化确定水库供水限制线、调水控制线和调水水库的最大调水规模,模拟各时段实际调水量和不同用水户供水优先次序的供水量,实现了多水库联合调度的技术突破,为水库调度决策部门提供了一个新的调度思路。通过高关-短港水库灌区的实例应用,证明了该模型的科学性和有效性。
关键词:灌区,优化调度,缺水风险,平均易损性
参考文献
[1]王强,周惠成,梁国华,等.浑太流域水库群联合供水调度模型研究[J].水力发电学报,2014,(3):42-54.
[2]NalbantisI,Koutsoyiannis D.A parametric rule for planning and management of multiple-reservoir systems[J].Water Resource Research,1997,33(9):2 165-2 177.
[3]Yeh WWG.Reservoir management and operations models:A state-of-the-art review[J].Water Resources Research,1985,21(12):1 797-1 818.
[4]刘本希,廖胜利,程春田,等.库群长期优化调度的多核并行禁忌遗传算法[J].水利学报,2012,43(11):1 279-1 286.
[5]彭安帮.跨流域水库群引水与供水联合优化调度研究[D].辽宁大连:大连理工大学,2015.
[6]张皓天.受水区供水水库(群)优化调度方法研究及应用[D].辽宁大连:大连理工大学,2013.
[7]刘娜.跨流域水库群联合优化调度应用研究[D].辽宁大连:大连理工大学,2015.
[8]郭旭宁,胡铁松,吕一兵,等.跨流域供水水库群联合调度规则研究[J].水利学报,2012,(7):757-766.
[9]王国利,梁国华,曹小磊,等.基于协商对策的群决策模型及其在跨流域调水方案优选中的应用[J].水利学报,2010,41(5):624-629.
[10]方红远,甘升伟,花金祥.干旱期水库供水风险分析的多目标规划法[J].水力发电学报,2007,26(2):14-18,26.
[11]曾祥,胡铁松,郭旭宁,等.跨流域供水水库群调水启动标准研究[J].水利学报,2013,(3):253-261.
多处理器调度 篇2
关键词:资源约束;项目调度;遗传算法
中图分类号:O224 文献标识码:A文章编号:1006-8937(2010)10-0017-01
经济的全球化加剧了日益激烈的市场竞争,同时对企业的生存与发展提出了更高的要求。无论是软件开发、建筑工程、制造业等大型产业,还是进行批量生产的小型企业,为了进一步增强自身竞争优势,项目管理技术的应用已经越来越广泛。而项目调度问题作为项目管理技术中的一个重要分支,合理的调度计划能够有效地缩短项目周期、降低企业成本、提高产品质量。但是由于项目调度问题较为复杂,不仅存在前驱后继关系,还常伴有资源的约束,求解极为困难。
因此,文章所研究的主要内容就是对求解多模式资源约束项目调度问题的遗传算法进行优化。
1存在问题
在更多的实际项目中,为了提高资源的利用率,项目负责人往往会依据项目中各活动的轻重缓急程度来决定对各个活动的资源投入量,而在现实的工作过程中,各工作所获得的实际资源投入量会直接影响到该活动的工期。所以,当活动比较紧急时,可以通过加大资源投入量的方法,来缩短完成这项活动所需要的工期。当活动不是很紧张,可以略有拖延时,我们也可以考虑通过减少该活动的资源投入量,从而降低成本,这样就可以在工程进度中获得更大的收益。这种可以使用不同资源分配模式的资源约束项目调度问题就是多模式资源约束项目问题(multi-mode RCPSP,MRCPSP)。如果能够更好的为每项调度中的活动合理安排投入的资源,那么最终可以使得项目的完成情况更接近或超过预期目标。
2求解方法遗传算法是基于自然选择,在计算机上模拟生物进化机制的优化算法。它把欲求解问题的解空间映射作为遗传算法的搜索空间,把每一个可能的解编码作为一个解向量,也称为染色体(Chromosome),染色体中的每一个元素称为基因(Gene)。所有的染色体就可以组成一个种群。根据所研究问题的求解情况设定一个目标函数值,即评价指标,比如工程项目中的工期等。通过这个目标函数值,也称为个体适应度,来评价所有染色体,从而决定染色体的好坏优劣。这样,按照遗传算法的流程和对应的操作,不断进化种群中的染色体,来调整其基因值,使之愈来愈趋近于目标函数值所倾向的个体,也就是我们所研究问题中期望的较优解。
遗传算法通常包括六个基本步骤。步骤1,初始化种群:按照预先设定的优先规则(LFT,LST,MTS,MSLK,RND)和对应的个体数(比例,如LFT:LST:MTS:MSLK:RND=1:1:1:1:1)产生初始种群链表initGroupList,大小为GS。步骤2,选择操作:按照选定的选择操作的策略(轮盘赌、二人竞赛)和交叉率进行选择操作,将选中的个体加入到双亲链表parentsGroupList。步骤3,交叉操作:按照选定的交叉操作的策略(单点、两点、均匀、最大资源利用)进行交叉操作。从parentsGroupList中选择双亲进行交叉,交叉后的新个体保存到子代链表childrenGroupList。步骤4,变异操作:按照选定的变异操作的策略(基插、染插、交换、基邻插、染邻插、邻交换)进行变异操作。对childrenGroupList中的新个体按照变异率进行变异,变异后的个体加入到初始种群链表initGroupList。步骤5,维持种群:保证数量不变。步骤6,终止条件:是否达到最大迭代次数,如未达到则重复步骤2。否则,输出迭代中最好的个体。遗传算法编码和解码解析。根据目前的研究资料表明,紧前关系相容链表是目前较好的一种染色体编码方式。该方法简单易用并且求解效率高。
所选择的适应度函数。通常情况下,遗传算法的通用适应度函数公式定义如下:
f(x) = T (1)式中,f(x)是个体x的适应度值;T是个体x的项目工期。
选择、交叉和变异算子。遗传算法的核心操作是三个操作算子——选择、交叉和变异。这三个算子主导了遗传算法如何进行,也决定了所研究问题的求解质量。
①选择应运二人竞赛策略。在生物的遗传和进化的过程中,任何一个物种对生存环境适应度较高的个体都会有更多的机会将优良基因遗传到下一代中,反之被保留的机会就会减少,甚至被淘汰。根据预先设定的选择概率,在种群中对每个个体进行选择。在被选中的个体中依次进行选择,每次选择都从两个个体中选择最优的一个个体进入待交叉列表。因而选择操作在遗传算法中往往起着更为重要的作用,它会从父代中选出最好的基因遗传于子代之中。
②两点交叉策略。记参与交叉的两个父代个体为A和B,随机生成两整数p,q,1
③基于基因和邻域搜索的插入变异策略。基于基因插入变异策略是在基于基因的插入变异策略的基础上,根据变异概率和变异因子记录本次变异中出现过的最好染色体作为变异的结果,这个过程也称为邻域搜索。其中变异因子为在区间中尝试的位置次
3实验结果
为了研究遗传算法应用于MRCPSP求解的问题,文章选择了PSPLIB实例库中多模式J10作为测试依据,来验证遗传算法各个策略的优劣,结果如下:①选择策略。赌轮机制(比例复制)在运行J10项目中平均偏差率、最优解比例均不如二人竞赛策略。因此,文章融合算法中遗传算法部分采用二人竞赛的选择策略。②交叉策略。两点交叉相对于其它交叉策略具有更好的效果,平均偏差率、最优解比例都有很好成绩,因此文章融合算法中遗传算法部分采用两点交叉。③变异策略。文提出的基于基因和邻域搜索的插入变异策略相对于其他变异策略具有更好的效果,平均偏差率、最优解比例都有很好成绩,因此文章融合算法中遗传算法部分采用基于基因和邻域搜索的插入变异策略。
4结语
从实验结果可以看出,应运遗传算法解决资源约束项目调度问题具有很高的求解效率和质量。对遗传算法的变异策略进行改进,应运与求解具体的实例中更具有一定优势。
参考文献:
[1] 刘立东,蔡淮.融入遗传算法的混合蚁群算法[J].计算机工 程与设计,2008,(5).
[2] 陈国良,王煦法,庄镇权,等.遗传算法及其应用[M].北京:人 民邮电出版社,1996.
[3] (日)玄光男,程润传.遗传算法与工程设计[M].北京:科学出 版社,2000.
[4] 金菊良.遗传算法及其在水问题中的应用[D].南京:河海大 学,1998.
[5] 韩万林,张幼蒂.遗传算法的改进[J].中国矿业大学学报, 2000,(7).
[6] 杨启文,蒋静坪,张国宏.遗传算法优化速度地改进[J].软件 学报,2000,(4).
[7] 翟梅梅.基于蚁群算法的改进遗传算法[J].安徽理工大学 学报(自然科学版),2009,(3).
[8] 张晓玲,黄力.融入遗传算子的蚁群算法求解TSP问题[J]. 广西民族大学学报, 2009,(3).
[9] 黄立军,许永花.遗传算法和蚁群算法融合求解TSP[J].东 北农业大学学报, 2008,39(4):109-113.
[10] 徐金荣,李允,刘海涛,等.一种求解TSP的混合遗传蚁群算法[J].计算机应用,2008,(8).
多建筑项目人力资源调度研究 篇3
随着近些年农村城镇化、城市开展新区建设及房地产行业的升温,国内的建筑业得到了飞速的发展,企业项目的规模和数量也越来越大。但是在建筑业快速发展的背后,建筑项目超预算、超工期、低质量、低效率的现象也普遍存在,在一些只有几个项目的小型建筑企业中这些现象带来的后果还不是太明显,而在某些多个项目并行的建筑企业中带来的损失却是巨大的,为了改变这一现象,这些企业采用了一种新的项目管理方式———多项目管理。
在多项目管理的资源分配中,人力资源的分配历来受到重视。对于多项目中的人力资源如何进行合理的调度, H. Steyn提出采用极限理论( Theory of Constraints) 的方法来分析多项目环境下的人力资源分配问题[1]; Golany等人提出了CONTIP ( Constant time in process) 模型,它的主要思想是系统达到最大处理时间的时候,新进入的项目将排队等候,直到系统有一定量的空闲处理时间为止[2]; 日本学者Yoshimura Masatak等提出了一个项目选择优化系统,通过该系统中的项目选择算法选出使总体收益最大的项目组合,通过人力资源分配算法找到人力资源在上述选择项目中的最佳分配方式[3]; Drezet和Billaut建立了整数规划模型,约束中考虑了人员具有多种能力和一些法律规定因素,并用贪婪算法和禁忌搜索方法加以求解[4]。 在多项目环境下,所有并行项目的共享人力资源成为多项目管理的瓶颈,共享人力资源的均衡成为多项目管理成败的关键因素。以上问题虽然是针对多项目共享人力资源的调度,但它们的算法都是把多项目调度作为单项目调度来求解的,这种方法有一定的局限性,同时也没有站在企业全局角度去考虑问题。
而本文从企业整体效益最大化出发,提出了建筑企业的项目流程[7,8]和多项目重要度排序[5,6],最后根据项目和项目阶段的重要程度性不同,构建了基于遗传算法求解的多建筑项目人力资源配置模型,该模型是站在多项目全局建立的,且遗传算法本身的并行性,因此更符合实际需要,能给予多项目经理更多的指导和帮助。
2模型构建
多项目人力资源调度模型及资源约束如表1所示。
在上述模型中,有如下问题参数和变量:
i表示项目,i = 1,2,…,n; 不失一般性,本文假设i项目阶段所需两种人力资源类型h,P;
Wi表示i项目综合权重系数,Wi= Ci× Mi,Ci代表i项目重要度系数,Mi代表i项目阶段重要度系数;
Zih,Zip表示i项目阶段所分配的h,p表示人力资源类型技能值,分配的技能值越大,项目的完工质量就越高;
Rh,Rp表示该时段能够提供的h,p表示人力资源类型最大技能值;
Rih,Rip表示完成i项目阶段所需要的h,p表示标准人力资源技能值;
rih,rip表示使i项目能够运转起来所需要的h,p表示最低人力资源技能值。
目标函数值f ( x) 表示按项目综合权重分配的人力资源技能值总和,f ( x) 越大,项目的完工质量越高。
3基于遗传算法的求解方法
遗传算法[10,11]是基于生物进化和选择机制的随机搜索算法,由于算法本身的并行性和它的搜索始终遍及整个空间的特点等,从而能找到接近全局最优解的优化结果, 所以利用遗传算法来优化多项目资源均衡问题能取得较好的效果。
3. 1编码
以Zi= ( Zih,Zip,…) 作为主染色体,它的意思是基于时间片段的各个并行项目所分配的人力资源技能值。
3. 2初始种群的确定
初始群体的个体是随机产生的,每个个体是采用均匀分布的随机数来生成,它们的目标函数值与最优解差距较远。在本模型中,为了使初始群体的值更接近最优值,对所有的( Wi× Zih( 标准技能值),Wi× Zip( 标准技能值)) ,进行排序, 在满足所有S. T. 的基础上,按各个乘积值的大小( 优先分配乘积值大的) 以及变化确定初始群体。对于初始群体的大小,实际中只能依据经验或实验确定,目前尚无理论上的指导。
3. 3适应度函数
在寻找最大值的优化问题上,其适应度函数一般直接选择目标函数。对于适应度函数来说,它用来判断每个个体或者每个解的优劣程度。一般来说,适应度函数值大, 说明个体或者函数解的质量好,值越低,说明解的质量越差。本模型的适应度函数为
3. 4选择操作
采用常用的比例选择策略,其基本原理是根据染色体的适应度值来确定个体选择概率,各个体被选中的概率与其适应度值的大小成正比。设种群规模为N,个体的适应度值为f ( zi) , 则个体被选择的概率为 ,从中选取概率大者。
3. 5交叉操作
在交叉时,采用单点交叉,任选两个个体按照给定的交叉概率在染色体的基因链上选取交叉位置,得到新的两个子代然后进入下一代,交叉概率一般取较大值,如果较小的话,得到新个体速度慢,影响群体的优良模式。在一般情况下,交叉概率的取值范围为0. 6 ~1. 0。
3. 6变异操作
在变异运算中,利用给定的变异概率随机选择一个基因位将某个体生成一个新的个体,一般情况下变异概率可以取0. 001 ~0. 1。
4实例分析
G公司是国内一家著名的建筑企业,现阶段G公司有6个正在进行的项目,它们的项目流程相同,包括初始阶段、设计阶段、采购阶段、施工阶段、试运行阶段、项目收尾六个阶段。
根据有关文献[5,6,7,8,9]和对一些经验丰富的建筑企业项目经理的调研,最终确定了以下项目重要度的评价属性: 项目经济规模、项目净收益、企业声誉的影响、诚信损失、项目的实施难度、团队士气、是否存在强制命令; 项目阶段划分如下: 初始阶段、设计阶段、采购阶段、施工阶段、试运行阶段、项目收尾。项目经济规模和项目净收益一般都能用具体的数值确定,而企业声誉的影响、诚信损失、项目的实施难度和团队士气一般用定性的方法来描述。表2数据是在参考 《建筑业企业资质等级标准》 基础上,并访谈多位项目经理得出的。
根据不同阶段对项目的影响,项目阶段权重系数( Mi) 的定义为: 初始阶段,0. 20; 设计阶段,0. 15; 采购阶段,0. 15; 施工阶段0. 35; 试运行阶段,0. 10; 项目收尾,0. 05。
G公司6个项目的代号分别为Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、 Ⅵ。它们的合同额依次为1000万、1800万、3600万、 5300万、6500万、8000万,项目的利润率分别是65% 、 124% 、184% 、236% 、120% 、244% 。 根据上文定义, 为每个项目确定权重系数( 见表3) 。
在表3中,是否存在强制命令是一个布尔量,当为 “是”时,该项目的相对重要度系数为1; 当为 “否”时, 项目的相对重要度系数为前六个属性的算术平均数。
表4表示六个项目的综合权重系数和完成项目阶段所需要的人力资源类型以及技能值。
在表4中,两种紧缺的人力资源类型为h1,p1,该时段公司能提供的最大技能值分别为36、45,使公司各个项目能够运转的人力资源类型最低技能值为1。
公司以前采用的是按照项目触发的先后顺序进行人力资源调度,对于先要求资源的项目给予最大的满足,最后无法满足资源的项目需要暂时停工一段时间,等到从其他项目中抽调出资源再启动停工的项目。
下面用本文的模型来解决该问题:
利用遗传算法经过多次迭代和实验得到如下结果( 见表5) :
可以得到maxf ( x) =17. 159,此时:
由此可以看出,与原来的调度方法相比,基于时间片段的人力资源调度具有更大优势。在人力资源受到一定限制的情况下,本模型可使企业项目的完工质量更高。优先分配使企业利益达到更大的项目,同时又保证在人力资源受限的情况下那些重要度较低的项目不至于停工。
5结论
本文对建筑行业中的人力资源调度问题,进行了有针对性的初步探索,在人力资源受限的情况下,怎样对并行项目进行人力资源调度,从而使企业项目完成质量更好。 考虑到项目和项目阶段的重要程度以及每个阶段所需的人力资源类型和能力的不同,建立了相应的数学模型。为了使模型得到最优解,同时改变以前许多把多项目作为单项目来调度求解的算法,本文使用了遗传算法进行求解。最后通过实际案例验证了本模型的有效性,基于项目综合权重系数的人力资源调度能使企业获得更大的效益,它对于并行多项目企业的人力资源分配有很大的指导作用。
摘要:在当今的建筑行业,多项目的趋向性越来越明显,如何对并行的多个项目进行有效的资源分配,尤其是人力资源调度,这是众多学者一直在思考的问题。本文在阅读国内外相关文献的基础上,根据多项目和项目阶段的重要程度不同,构建了基于时间片段的人力资源调度模型,并利用遗传算法进行求解,最后经过实例证明能帮助实际决策者快速解决问题。
调度运行的安全操作及故障处理 篇4
摘要:基于调度运行的安全操作及故障处理的实际情况,本文就加强电网调度安全运行和故障处理方面进行了讨论。其中,管理和技术是最为重要的两个方面。所以,必须依据实际情况,避免误调度、误操作故障的等现象的产生。笔者结合自己的实践,提出了一些改进措施,以供同仁参考。
关键词:电网;调度运行;安全操作;管理;故障处理
安全生产是电力企业经营管理的第一目标,没有安全,严重影响电网供电质量,而且对社会造成重人的影响。所以无论做什么事都得讲安全,电力系统作为生产电能的企业更加如此。影响电网安全运行的因素有很多,其中做好电力调度工作是保证电网安全运行的关键环节之一。电力调度值班员的主要任务是组织、指挥、协调电网运行的倒闸操作、进行电网异常和故障处理,尽可能地保证电网的正常稳定供电。在电网运行中,每个电力调度员都应能保证电网在经济、合理的条件下运行。要确保电力调度安全,必须紧紧抓住调度安全操作、安全管理和故障处理三大关键环节。
一、调度运行的安全操作以及管理
倒闸操作是电力调度值班员最重要的工作,值班调度员按照日计划提前进行倒闸操作准备,在操作前应完全清楚系统运行方式和设备的运行状况,并充分考虑到操作后对系统正常运行的影响,采取措施做好故障应急处理对策。
电力调度员在倒闸操作过程中只要发生某一项错误,都有可能导致电网安全故障的发生,所以对电网调度工作的要求也非常严格。调度员在下令前必须提前拟写好操作票,并与现场变电站运行值班员做好沟通,调控长进行审核无误后方可下令操作。操作中操作人和监护人要思想高度集中,精心操作,严格执行下令、复诵、记录、录音、汇报、监护等制度。
调度员必须熟悉本地区电网的一次系统图、电网主要电气设备运行的工作原理;熟悉调度自动化系统的工作原理、继电保护工作原理及其应用;掌握本地区电网运行方式的灵活变化、倒闸操作和故障处理程序。
其次,调度运行的安全管理也是至关重要。切实提高调度员的安全管理思想意识,提高调度员的安全责任心,坚持执行每周一次班组安全生产活动,保证安全活动不走形式,认真学习安全通报,故障通报等安全警示文件,并进行班组成员讨论发言分析故障原因从中总结出经验和教训使安全活动收到实效。经常开展思想品德和职业道德再教育,如在调控中心开展的创先争优文明号、无违章班组和青年文明号等活动,都收到了较好的效果,增强了调度员的主人翁责任感和安全管理理念。
按照电力生产总的方针政策,坚决执行反违章行为的发生。抓安全、抓管理、抓思想是确保电网安全生产的必备条件,故障的发生都是因为工作态度不认真、安全思想意识淡薄造成的,因此规范调度员的运行操作是十分必要的。例如,调度员在受理线路检修工作结束恢复送电的倒闸操作过程中,有时因为调度员自身的原因,没有对现场安全措施及要求进行逐项核对,造成误调度,发生带地线合刀闸故障。不仅损坏设备,中断供电,损失售电量,而且对用户和社会也造成较人影响,甚至危及到现场操作人员的人身安全。因此,在工作中我们必须认真贯彻执行规程制度,坚决抵制一切习惯性违章行为的发生。
加强电网运行方式的管理,将电网运行方式管理制度化,从制度上规范电网运行方式的工作,年运行方式的编制应根据上一年度电网运行中存在的问题,进行整改及防范,将反故障应急措施落实到运行方式中。根据当前的运行方式及负荷性质,有针对性地开展故障演习,当故障发生时,以利于故障处理的快速性、准确性,全而提高调度员故障处理应对能力和自我防护能力。
二、调度运行中常见问题的解决办法
严格履行交接班制度,调度员接班后,对所管辖的设备认真进行巡视检查,掌握当前运行方式,清楚负荷情况,潮流变化及系统无功情况,认真审核工作计划中的内容,明确检修设备的停电范围,掌握运行方式的安排是否合理,对当值的工作做到心中有数,如若发现问题,及时与相关人员做好沟通联系,并根据气候变化情况,系统运行方式及当日的工作内容提前做好故障应急处理措施、故障预想,以便在故障发生时快速、正确处理,杜绝故障扩大的情况发生。
结合当前的方式根据日停电计划提前准备好操作票,各值进行互审尤问题,方可下令操作。值班调度员在发布操作指令时,要明确说明停电范围、操作的日的、任务及要求。在下令过程中,令人提出疑问,一定要仔细斟酌后方可答复,答复时话语不得含糊、模棱两可,必须是确定的语气。
三、调度运行故障的处理方法
(1)线路跳闸的处理方法
线路开关故障跳闸是因为线路发生短路故障引起的。线路开关跳闸后,跳闸线路的重合闸不投或重合闸投入重合闸动作不成功时,通知相关单位进行带电查线,在线路的故障原因未查明和消除以前,则该断路器不得进行试送。正常运行时线路重合闸投入,但线路故障开关跳闸重合闸装置未动作时,可以退出重合闸,进行开关试送一次,如果试送不成功,在线路故障未查明原因和消除以前,不得试送。
(2)主变压器跳闸的处理方法
主变压器故障跳闸后,有备用变压器者,立即投入备用变压器,无备用变压器者因瓦斯或差动保护动作跳闸后,应立即通知检修人员对其保护范围内的设备进行检查试验,确认变压器的问题后可以试送。原因未查明前,不得试送。
主变因过流保护动作跳闸,调度员命令现场值班员应检查主变和母线上的所有设备,并及时通知修试管理处对主变做相关电气试验;未做实验不能投运。对于双主变的变电站,检查母线上的一切设备无问题后,可将母线上的出线开关断开后,通过另一台主变按照负荷性质和线路健康情况逐级试送,送到最后一路时,必须用保护传动开关无问题后,再进行试送。
(3)电容器保护动作跳闸的处理方法
运行中电容器过压和欠压保护动作跳闸,应检查母线电压,现场人员经检查核实确为母线电压超过或低于电压保护定值时,在母线电压恢复正常时,可以试送电容器一次。电容器不平衡保护动作跳闸后,通知现场值班人员检查电容器本体有无明显异常现象,通知修试公司检查试验无问题后,方可进行送电。
(4)系统振荡的处理方法
电力系统出现振荡时的主要现象有:发电厂、变电站内的电流表、电压表、功率表呈现出剧烈地、周期性地摆动,发电机、变压器、调相机发出有节奏的轰鸣声,照明灯光忽明忽暗,非常明显。此时调度员根据现场保护动作情况和振荡的特征判断出振荡的类型,属于同步振荡还是异步振荡,处理时值班调度员依据实际情况在适当解列点将系统解列,待振荡消除后再重新并网。
四、结束语
由于在电网的运行过程中,它的安全主要是依赖设备、以及人员实现。所以,坚持开展调度工作危险点分析,并且做出相关的措施,以便及时加强预控,提高电网调度故障处理能力。这已经成为电网安全可靠运行工作中的一个重点。正确處理电网设备故障是控制故障扩人和减少危害的基本措施,电力调度员掌握着电网安全运行的命脉,只有通过不断学习,练就过硬的本领,提高专业技术务水平和安全意识,才能在指挥电网的运行和故障处理中做到准确尤误,更好地做好电力调度值班工作,实现电网安全电力调度效益最大化。
参考文献:
[1]陈明珠,詹学磊,李淼,王满意.湖北电网安全稳定运行情况分析[J].湖北电力.2006(S1)
[2]胡朝阳,王亮,郭强.华东电网大规模风电调度运行的研究[J].华东电力.2010(06)
[3]刘明礼.调度运行管理系统[J].农村电气化.2008(03)
单管道多油品顺序运输调度优化 篇5
大量成品油要从炼油厂输送到各地油品分销中心或大量用油的客户,如机场、燃油火电厂等(以下统称为分销中心),管道运输是其最理想的运输方式,如图1所示。既经济,又快捷,还不受天气等自然条件的限制,更重要的是可实现远距离安全运输,挥发油损少,抗风险能力强。
管道运输可以运送的油品范围很广,同一管道可以运送各种级别的动力汽油、航空煤油、动力柴油、民用燃料油和一般煤油等。管道运输的重要性和有效性已经在耗油大国美国得到了较好的证实,美国国内整个油品运输的三分之二以上用管道运输实现,长距离的油品运输几乎全部实现管道化[1]。成品油管道运输调度问题是具有许多约束的复杂问题,如炼油厂的生产进度、市场需求的波动、相邻油品的规格等要仔细考虑,炼油厂和分销中心现有库存量和库存能力以及管道中的输油量等也要详细分析。
管道运输系统有效调度的目的在于:①在保证系统运输能力最大发挥的前提下,使运输成本最小化。②最大限度的使托运人(石油公司等)清楚自己所订油品沿管道的运动状态及其它相关信息。③如果电力供应紧张,还要想法避开每天的用电高峰。④能够适应随机事件,最大限度的满足市场需求。
管道运营商根据下月订单制定运输计划,调度员依据下月运输计划和输油管的运输能力等,制定下月调度计划。正常的调度计划制订过程是周期性的,通常包括三个步骤:①油批计划;②顺序油批(slugs)计划;③油品运输详细调度计划。
文献[2]提出了一个启发式的搜索技术,它对单源头、多目的地的油品管道运输问题建立了数学模型,可生成良好的泵送计划。这种技术基于知识的搜索过程,在满足相当数量约束的同时,还考虑了产品的可用性以及市场需求等。文献[3]、文献[4]通过将管道划分为体积相等或者体积不等的单一产品包(Packs),构建了两个大规模MILP离散时间调度模型,模型中的核心决策均与管道内新油品的泵入以及炼油厂和分销中心储油罐的注入和输出操作相关,其中所采用的方法可以满足多个运输约束。文献[5]对多条管道组成的供应链提出了一个总体模型框架,该供应链中的节点表示原油供应商、分销中心以及与中间和最后产品相互连通的炼油厂。该方法假设不同产品在管道内输送时不会混合,而且对问题进行建模时使用的是简单方程,因此,跟踪炼油厂和分销中心油罐的库存水平,油品在管道中的位置和运动状态的可行性几乎无法保证。文献[6]对一个在限定时间范围内,从港口向内陆炼油厂进行不同油品运输的问题,建立了优化调度框架。该方法基于时间离散的基本思想,相应的计算负担则因为分解策略的采用而得以避免,即该模型被分解为时间计算辅助模型和数据库建立两部分。
本文对单一管道从单一炼油厂向多个分销中心输送油品的计划调度问题提出了一个改进的MILP连续时间模型。需要运输的油品订单由各分销中心根据计划时域内的油品需求提交给管道运营商;假设同种油品可替换,并且对允许相邻和禁止相邻、质量平衡和管道及油罐的装卸操作、油罐的容许水平,以及从炼油厂向分销中心运送油品的可行性等进行了考察。用所建模型对实际案例进行求解,所得的解不仅满足各约束,而且可获得最低的运输成本,此外,还可以对输送油品在不同时刻下的体积以及位置等信息进行跟踪。
2 数学符号和假设前提
(a) 成品油输油管道的结构与配置信息完全已知,包括分销中心数、各分段的管道直径、炼油厂与分销中心的距离以及各分销中心之间的距离。
(b) 每个分销中心储油罐的信息完全已知,包括每个油罐的储油能力、 油罐数和每个油罐用来储存哪种油品。
(c) 在调度计划时域末,每个分销中心所下订单全部满足。
(d) 沿管道运送中的油品顺序已知,泵入管道各油品的体积已知。
(e) 在调度计划时域内,炼油厂的生产调度计划已知,包括油品品种、各品种的产量以及对应时间的详细计划。
(f) 炼油厂和各分销中心油罐的可用储存量已知。
(g) 炼油厂和各分销中心油罐的最大/最小储存能力已知。
(h) 油品泵入管道的最大速率、管道向分销中心供应油品的最大速率以及分销中心向油品市场输送油品的最大速率皆已知。
(i) 调度计划的时域已知。
在上述假设前提下,解决该问题要达到的目标:①及时满足各分销中心对油品的需求;②保证炼油厂和分销中心油罐的库存水平总是保持在容许范围内;③泵送成本、运输成本以及库存成本三者之总和最低;④新泵入的油品种类、油品顺序以及对应体积等达到最优;⑤对新泵入的油品和管道中原有的油品,其位置和体积的变化以及炼油厂和分销中心油罐库存水平等信息进行跟踪。
3 问题的数学描述
数学描述主要基于以下三个基本集合:①管道中原有顺序油批(Iold)和新泵入顺序油批(Inew)的集合(i∈I=Iold∪Inew);②油品分销中心的集合(j∈J);③所有油品的集合(p∈P)。包括两个0-1变量,分别用yi,p和x(i′)i,j标记;当yi,p=1时,表示新泵入顺序油批i∈Inew包含油品p;变量x(i′)i,j用于表示来自顺序油批i∈Inew的油品在新泵入顺序油批i′∈Inew的泵入过程中是否可以被输送到分销中心j,可以则x(i′)i,j=1,否则为0。此外,还有四个连续变量Ci,Li,F(i′)i和W(i′)i,分别对应于一个顺序油批i∈I的四个特性。连续变量Ci表示新泵入的顺序油批i∈Inew的泵入完成时间(时刻的概念);连续变量Li表示新泵入的顺序油批i∈Inew的泵入持续时间(时段的概念);F
图2给出了一个简单的例子,例子中,输油管道将成品油p∈P={P1,P2,P3,P4}从炼油厂运输至多个分销中心j∈J={D1,D2,D3,D4,D5}。在泵入顺序油批i′={S5}的开始时刻,管道中已有一个包含四个顺序油批的运输序列I={S4-S3-S2-S1},并且它们所包含的油品种类依次为{P1-P3-P4-P2}。同时,给出了模型变量在顺序油批i′={S5}泵入开始之前以及结束之后的相应数值。虽然可以在向管道泵入S5的时将一部分P3油品从S3输送至分销中心D2中,即x(S5)S3,D2=1,但是实际上并没有油品被真正输入该分销中心。因此,顺序油批S3的体积并没有发生改变。由于顺序油批S4恰好在顺序油批S5之前被注入管道中,因此有W(S4)S3=W(S5)S3=200。类似的描述也适用于顺序油批S2和S4.不过,在S5的泵入过程中,包含油品P2的顺序油批S1中有一部分油品被输出到分销中心D4中。由于从S1输送至D4的油品P2的体积与新泵入顺序油批S5的体积一样,因此S1的体积减少了60个容量单位,即[W(S4)S1-W(S5)S1]=60。
3.1 问题的约束条件描述
(1)顺序油批(slugs)是几种油品的油批按照排序规则依次泵入管道,排序约束:
(2)新泵入顺序油批的体积与长度约束:
(3)在每日用电高峰期新泵入顺序油批约束:
其中:MT推荐取值为MT=(1.0~1.1)hmax.
(4)相邻顺序油批之间的交界面约束:
(5)禁止顺序约束:
(6)顺序油批i∈I在时刻Ci的管道坐标约束:
(7)顺序油批i∈Inew在其自身泵入过程中向分销中心输送的油品体积约束:
(8)在顺序油批i′∈Inew泵入管道过程中从顺序油批i∈I输送至分销中心的油品体积约束:
(9)顺序油批i′∈Inew泵送过程中从顺序油批i∈I向分销中心j∈J输出油品边界值:
(10)新泵入顺序油批i′∈Inew泵送过程中的管道内油品的质量平衡:
(11)从管道向分销中心输入油品过程中需要满足的可行性约束:
(12)运输速度提升约束:
(13)油品预留约束:
(14)油品市场需求的实现:
(15)炼油厂油罐的最大和最小容许库存:
(16)炼油厂油罐的库存控制:
(17)分销中心的库存控制:
3.2 问题的目标函数
问题的目标是将管道的总运行成本降至最小,包括:每日普通时段以及用电高峰时段的泵送成本,相邻油批之间交界面污油的处理成本以及炼油厂和分销中心的油灌维护成本,库存成本取每种成品油在整个调度时域内的平均值,目标函数可表示为:
由于管道在用电高峰期处于空闲状态,因此通常情况下能源成本项在最优解中常常为0。最后两项给出了基于每种成品油的平均库存水平进行估计所得的炼油厂以及分销中心的库存成本。该估计值可以通过将每一泵送批次开始时的油品库存总和,依据由card(Inew)所表示的新加顺序油批的估计数进行划分得到。
4 案例分析
将文献[6]的案例应用所得模型进行计算并进行比较,所需数据由表2、表3、表4、表5给出。起始时刻管道内已包含5个旧有顺序油批(S5-S4-S3-S2-S1),其中所包含的成品油种类分别为(p1-p2-p1-p2-p1),并且相应的体积(75/175/125/25/75)(×100m3),由此可知顺序油批S1与炼油厂相隔的距离最远。将模型输入计算机(CPU的主频为2GHz),应用软件ILOG OPL Studio 3.6进行运算,该算例的最优解在32.98s得到,比文献[6]节约了9.24s(见表6)。
与使用文献[6]中的方法所得的结果相比,本文中的方法可以节省计算时间。在最优解中,管道运行成本为30606.65(百美元),而在文献[5]的最优解中,相应结果为32746.83(百美元)。求解问题所节省的运行成本主要是通过保证泵入管道内的油品量——或者等价地说:从顺序油批转移至油库的油品量,恰好满足物流中心处的油品需求而得到。
图3、图4给出了分销中心及炼油厂的库存随时间的变动情况。从图中可以看出每个油罐中的库存水平都始终保持在可行范围以内,同时由于库存维持成本较高,因此在整个调度时域,油库油罐的库存总是接近它们的最小值。应当注意的是,在不相容顺序油批之间注入用于分割的小规模的缓冲区是该模型独有的一个特征。文献[6]中将管道按照25个容量单位进行划分并保证每一个分包中包含单一的成品油。因此注入管道中的最小缓冲区的体积必定是25个容量单位的整数倍。
5 结论
本文对从单一炼油厂运输成品油至多个分销中心的管道系统调度提出了一个新型的MILP时间连续模型。通过在时间以及体积上采用连续表示的方式,不仅使得问题的描述更为清晰,同时在0-1变量、约束条件以及CPU时间等方面取得了很大的改进。采用更为清晰的表述可以带来多种优势。首先,消除了管道各个分段的实际容油能力与离散模型所提供的容油能力之间的差异。其次,使用离散模型时对顺序油批体积选择中强加的整数分包数的限制也已不再存在,而且泵送批次的最大/最小长度也已经可以处理。第三,与以前的处理方法相比,降低了计算量。第四,通过引入合适的小批次油品作为缓冲的方法,克服了油品的不相容性问题;这些小批次的缓冲油品不必为整数个分包。第五,由于模型的规模以及CPU耗时大幅度降低,因此可以利用本文的模型对最短周期为3天的管道运输进行调度计划。第六,模型对交界面的污油体积进行了明确的考察,可以对其跟踪以便获取相应瞬时的位置信息。
摘要:管道运输可将成品油从炼油厂输送到靠近市场的分销中心(省市级油库)。典型的输油管道通常是一根连接多个分销中心与一个炼油厂的长距离管道,输送过程中油品之间不加任何分离装置,实现多油品顺序运输,因此,油品的运输顺序以及运输规模应当合理安排,以便在有限的资源约束下最大限度地满足市场需求。本文对这类管道运输问题构建了连续时间MILP数学模型,对前人的研究结论进行了改进;通过对问题清晰、准确地描述,使管道运输调度质量显著提高;将所建模型应用于实际案例,其结果证实了模型的有效性——提高了解的质量同时使运算效率得到显著改进。
多处理器调度 篇6
VxWorks是美国Windver公司设计开发的一种嵌入式实时操作系统 (RTOS) , 其实时内核Wind提供了基本的多任务环境, 系统内核根据某一调度策略让它们交替运行。VxWorks系统提供的调度算法主要针对非周期性任务, 并没有提供调度和管理周期性任务的机制, 而且在优先级抢占调度中也存在着优先级倒置等问题, 这些问题的存在, 必然会影响系统的实时性和可预测性, 从而降低了系统的性能。
1、VxWorks多任务机制
多任务运行的实现实际上是靠CPU在许多任务之间转换、调度。多任务运行使CPU的利用率得到最大的发挥, 并使应用程序模块化。VxWorks任务可以直接或共享访问大多数系统资源, 同时拥有足够的上下文来维护各自的控制线程。每个任务有自己的上下文 (它的CPU环境、系统资源等) 。任务由系统内核调度运行, 在上下文交换时, 任务的上下文保存在任务控制块TCB中。
2、Wind任务调度
调度就是要决定该轮到哪个任务运行了。VxWorks实时内核Wind提供基本的多任务环境, 每个任务可以规定自己的优先级、断点、是否支持浮点操作。多任务调度需采用一种调度算法来为就绪队列中的任务分配CPU[1]。Wind内核采用基于优先级的抢占式和轮转调度算法。
2.1 VxWorks优先级空间
每个任务都有其优先级。任务越重要, 赋予的优先级应越高。wind内核有256个优先级, 编号0~255, 优先级0最高, 255最低。任务的优先级在创建时指定。VxWorks允许任务动态改变自己的优先级:当任务执行时, 它可以调用taskPrioritySet () 改变自己的优先级[2]。
2.2 基于优先级的抢占式调度
每个任务都有一优先级, 内核把CPU分配给优先级最高的就绪任务, 当一任务占有CPU正在运行时, 若另一优先级比它更高的任务的状态转变为就绪状态, 则内核保存当前任务的现场到其TCB (任务控制块) , 切换到较高优先级任务的现场, 高优先级任务抢占了CPU。
2.3 轮转调度
采用轮转调度算法, 系统让处于就绪态的优先级相同的一组任务依次轮流执行预先确定长度的时间片。这是一种处理机平均分配的方法。如果不使用轮转调度算法, 优先级相同的一组任务中第一个获得处理机的任务将不会被阻塞而独占处理机, 如果没有阻塞或其他情况发生, 它不会放弃处理机的使用权。在VxWorks系统中, 可以调用函数KernelTimeslice () 来使用轮转调度, 其参数是时间片长度。
2.4 基于优先级的抢占式调度与轮转调度算法相结合
基于优先级的抢占式调度可以与轮转调度相结合[3]。当优先级相同的一组任务依次轮流平均分配处理机时, 若有高优先级的任务转变为就绪态则可抢占该组任务。直到再一次符合执行条件时, 该组任务才可再次共享处理机。
3、优先级倒置及其解决方案
在基于多任务的调度中, 并不是高优先级的任务总优先于低优先级的任务, 当一个高优先级的任务被迫等待一段时间, 等待一个低优先级任务完成时, 就出现了优先级时间, 等待一个低优先级任务完成时, 就出现了优先级倒置问题, 如图1所示。
T1, T2和T3的优先级由高到低, T3占有了由信号量保护的某种资源, 进入临界区执行, 当T3在临界区执行时, T1就绪, T1抢占T3执行 (T3仍有信号量) 。在T1执行过程中, 需要进入相同的临界区, 这时需要取得相同的信号量, 由于资源竞争, T1被阻塞, 此时T3先执行。然而, T3在执行时有可能被T2抢占, T3再次阻塞 (仍有信号量) , 这种状态可能持续下去, 因而T1将在下一个不确定的时间段内被阻塞。这种情况下, 如果不采取措施, 可能造成该实时系统的不可预测性。下面给出一种解决方案。
让拥有资源的任务以阻塞在该资源上的所有任务的最高优先级运行, 直到他持有的所有资源全部释放, 然后该任务返回正常优先级。在图1中, 当T1阻塞在该信号量时, T3的优先级提高到T1的优先级, 这样不但保护了T3, 也间接地保护了T1不被T2抢占, 如图2所示。
4、应用实例
首先, 介绍一下VxWorks中任务编程常用的函数:taskSpawn () 用于创建并激活一个函数;semTake () 获取一个信号量;semGive () 释放一个信号量;semMCreate () 分配[4]
并初始化一个互斥信号量;taskPrioritySet () 改变当前任务的优先级;taskSuspend () 用于挂起任务。
如有3个任务T a s k 1。T a s k_M e d i u m_P r i o r i t y、Task_Low_Priority, 它们的优先级由高到低排列, 发生优先级转置的情况描述如下:
(1) Task_Low_Priority任务上锁信号量。
(2) Task_Low_Priority任务被Task_Medium_Priority任务抢占而阻塞。后者运行较长的一段时间。
(3) Task_High_Priority任务抢占Task_Medium_Priority任务。试图获取已经被Task_Low_Priority上锁的信号量而被阻塞。下面给出用优先级继承法解决优先级倒置的部分代码。
任务运行, 直到结束。
5、结束语
Vxworks系统的任务调度机制保证了非周期任务之间的协调关系, 任务调度策略直接影响到系统的实时性能。本文针对优先级倒置的解决方案, 丰富了Vx Works系统的任务调度机制。
参考文献
[1]孔祥营, 柏桂枝.嵌入式实时操作系统VxWorks及其开发环境Tornado[M].北京:中国电力出版社.2002.85-176.
[2]王学龙.嵌入式VxWorks系统开发与应用[M].北京:人民邮电出版社.2002.17-39.
[3]陈智育, 温彦军.VxWorks程序开发实践[M].北京:人民邮电出版社.2004.107-29.
[4]李方敏.VxWorks高级程序设计[M].北京:清华大学出版社.2004.56-28.