[发明专利]一种基于多线程的卫星数据产品生产任务并行调度方法有效
申请号: | 200910243098.2 | 申请日: | 2009-12-24 |
公开(公告)号: | CN101739293A | 公开(公告)日: | 2010-06-16 |
发明(设计)人: | 李颖;孙晓良;石贞云;梁洁雯;刘华 | 申请(专利权)人: | 航天恒星科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 安丽 |
地址: | 100086 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 多线程 卫星 数据 产品 生产 任务 并行 调度 方法 | ||
技术领域
本发明涉及一种基于多线程的卫星数据产品生产任务并行调度方法,适用 于卫星地面应用系统数据产品生产任务的调度。
背景技术
随着卫星数据应用业务的快速发展,卫星地面应用系统面临卫星数据产品 种类多、处理流程复杂、任务种类和任务量快速增加的难题。为解决上述问题, 需要一种有效的调度方法,实现自动、科学有效地系统资源调配与任务调度, 满足遥感数据产品快速、高效、可靠生产的要求。
以往的卫星数据产品生产需求量有限,应用系统规模小,任务调度软件同 时能调度的任务数量少,产品生产的延迟性大。目前,卫星地面应用系统规模 增大,进行卫星数据产品生产的设备数量增多,可以进行大量产品的同时生产, 提高了产品生产任务并行调度的要求。以往的任务调度方法已经无法满足卫星 数据产品生产任务量急剧增长、任务调度的实时性和并行性要求增高等需求。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于多线程的 卫星数据产品生产任务并行调度方法,该方法解决了卫星数据产品生产流程复 杂、任务量大、任务种类多等问题,提高了任务调度的实时性和并行性。
本发明的技术解决方案是:一种基于多线程的卫星数据产品生产任务并行 调度方法,其特征在于:包括任务生成、优先级队列管理、线程池创建、线程 池管理4个部分,实现如下:
(1)任务生成:根据卫星数据产品数据要求,生成任务并确定任务的优 先级和任务在优先级队列中的最长等待时间;
(2)优先级队列管理:根据步骤(1)确定的任务优先级和优先级别数量, 创建相应优先级别和优先级数量的线程安全的队列,将待执行的任务按照其优 先级的级别插入到相应的队列中,并为任务增加一个时间戳,记录该任务加入 到队列的时间,在任务调度过程中,检查非最高优先级队列中每个任务的等待 时间,如果超过步骤(1)中的最长等待时间而该任务仍未被执行,则将该任 务转移到上一级优先级更高的队列中并更改时间戳,以防止低优先级的任务长 时间得不到执行;
(3)创建线程池:将线程分为守护线程和任务线程,根据系统CPU的数 量、任务的I/O等待时间和任务生成频率确定任务线程的最大数量和最小数量, 并设置任务线程的最长空闲时间,根据任务线程的最小数量创建并启动相应数 量的任务线程,任务线程的状态分为Ready态、空闲态、运行态和终结态四 种状态,并为每个任务线程分配唯一的ID,任务线程按照优先级由高到低的顺 序从优先级队列中取出任务进行执行;创建并启动唯一的守护线程,并由守护 线程生成任务线程状态表,用于调整和控制线程池中任务线程的数量和状态;
(4)线程池管理:守护线程维护线程池中任务线程的数量和任务线程状态 表,记录和控制任务线程状态的变化,如果有新任务加入到优先级队列,而当 前无空闲的任务线程,并且任务线程总数小于设定的任务最大线程数量,则守 护线程负责创建新的任务线程执行任务;如果所有优先级队列为空,即无需要 执行的任务,任务线程将进入空闲状态,并通过两种方式转变为终结态:第一 种方式是空闲状态超过设定的最长空闲时间,则自动结束转变为终结态;第二 种方式是守护线程扫描所有的空闲线程,由守护线程结束任务线程将其转变为 终结态,但守护线程要保证线程池中任务线程的数量不少于设定的任务线程最 小数量。
所述步骤(3)中最大线程数量的确定为N*(1+Tw/Ts),最小线程数量确定 为Fc*(Tw+Ts),Tw为任务的I/O等待时间,单位为秒,Ts为真正占用CPU的时 间,单位为秒,N为系统CPU的数量,Fc为任务生成频率,最小线程数量可设 定为Fc*(Tw+Ts),任务线程的最长空闲时间设定为1/Fc,单位:秒。
本发明与现有技术相比具有如下优点:
(1)本发明该方法能够合理利用系统资源,根据任务优先级调度任务,解 决了复杂的生产流程、大任务量等带来的调度问题,同时能调度的任务数量极 大增加,满足了任务调度的实时性、并行性和高效率的需求。
(2)本发明优先级队列根据优先级级别数量采用多个队列存储不同优先级 的任务,而传统采用单一队列的方式,需要使用排序算法将任务插入到相应位 置,插入效率较低。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天恒星科技有限公司,未经航天恒星科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910243098.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置