CN109189580A - 一种基于多核平台的多任务开发模型及其方法 - Google Patents

一种基于多核平台的多任务开发模型及其方法 Download PDF

Info

Publication number
CN109189580A
CN109189580A CN201811080482.0A CN201811080482A CN109189580A CN 109189580 A CN109189580 A CN 109189580A CN 201811080482 A CN201811080482 A CN 201811080482A CN 109189580 A CN109189580 A CN 109189580A
Authority
CN
China
Prior art keywords
task
message
memory
management module
timer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811080482.0A
Other languages
English (en)
Other versions
CN109189580B (zh
Inventor
罗佳
许泽文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HONGXU INFORMATION TECHNOLOGY Co Ltd WUHAN
Original Assignee
HONGXU INFORMATION TECHNOLOGY Co Ltd WUHAN
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HONGXU INFORMATION TECHNOLOGY Co Ltd WUHAN filed Critical HONGXU INFORMATION TECHNOLOGY Co Ltd WUHAN
Priority to CN201811080482.0A priority Critical patent/CN109189580B/zh
Publication of CN109189580A publication Critical patent/CN109189580A/zh
Application granted granted Critical
Publication of CN109189580B publication Critical patent/CN109189580B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

本发明公开了一种基于多核平台的多任务开发模型及其方法,涉及海量数据处理领域。本模型包括任务管理模块(10)、消息管理模块(20)、内存管理模块(30)、定时器管理模块(40)和业务层(50);其交互关系是:任务管理模块(10)分别与消息管理模块(20)、内存管理模块(30)和业务层(50)交互;任务管理模块(10)、定时器管理模块(40)和消息管理模块(20)依次循环交互。本发明具有①一致性;②可拓展性;③高效性;④安全性;⑤可复用性;⑥灵活性。本发明对影响数据处理性能的因素进行针对性优化,提高程序的处理效率,同时对于不同的业务需求可以快速地进行复用,降低开发难度减少开发周期。

Description

一种基于多核平台的多任务开发模型及其方法
技术领域
本发明涉及海量数据处理领域,尤其涉及一种基于多核平台的多任务开发模型及其方法。
背景技术
海量数据处理平台通常对系统的处理性能要求较高,需要快速高效的处理网络数据。随着技术的发展,硬件的处理性能越来越高,多核平台以及大容量内存等资源极大地提高到了海量数据处理的效率,而系统处理的瓶颈逐渐向处理软件倾斜。
从软件处理的角度,系统的处理性能往往随着处理流量的增大以及处理流程的增多导致性能快速降低。导致性能降低的原因很多,从系统调用和线程切换开销的角度,其原因包含如下几点:①多线程处理性能并非与线程数量成线性关系,同时线程间高频率切换所带来的开销会导致处理性能的降低;②系统中断0x80以及用户态和内核态的切换存在一定的开销,频繁的系统调用带来的影响尤其明显;③多线程之间进行频繁交互,海量消息收发策略的不完善导致性能降低;④未充分利用多核平台的CPU资源。故需要针对这些瓶颈点,进行相应的性能优化,以实现海量数据的高效处理。
发明内容
本发明的目的就在于针对海量数据处理领域,通过对影响系统处理性能的主要点如线程数量、线程切换、系统调用、线程交互及资源利用等多个方面在用户层面进行优化,提供一种基于多核平台的多任务开发模型及其方法。
本发明的目的技术方案是:
通过任务管理模块提供一种灵活的任务执行模式,根据业务层中具体的任务属性和数量,创建最低数量的线程集合即生产线集合,挂载任务并在不同的CPU逻辑核上执行;通过制定消息的批量收发策略,来提高任务的执行效率,为任务之间的交互高效的服务;通过内存的预先分配和内存池的分级管理,为业务层按需快速高效的分配内存,其中不同内存池的内存分配和释放可以并行进行;同时还提供安全检查机制,便于异常问题的发现;通过以单个系统定时器为基础创建用户层时钟,对定时器进行分级管理,循环扫描,高级向低级不断迁移的方式满足用户对定时器的大量需求;该模型中的业务层与其他支撑模块耦合度低,可以灵活地进行设计,开发复杂度降低。
具体地说:
一、一种基于多核平台的多任务开发模型(简称模型)
包括任务管理模块、消息管理模块、内存管理模块、定时器管理模块和业务层;
其交互关系是:
任务管理模块分别与消息管理模块、内存管理模块和业务层交互;
任务管理模块、定时器管理模块和消息管理模块依次循环交互。
二、基于多核平台的多任务开发方法(简称方法)
本方法包括下列步骤:
①业务层通过任务管理模块提供的接口,对内存管理模块和定时器管理模块进行初始化,即内存池集合的创建以及定时器管理结构的初始化;
同时,业务层根据开发需求制定任务块,并在任务管理模块中进行注册,任务注册时需指定待挂载的生产线及用于生产线绑定的CPU逻辑核编号;
②任务管理模块对所有的生产线进行初始化,同时利用消息管理模块为生产线创建独立的消息队列资源;随后启动所有的生产线,从消息队列获取消费消息供任务消费。同时根据配置保证每条生产线在独立的逻辑核上运行;
③消息管理模块对任务之间的交互进行管理,任务之间均可以通过消息管理模块进行消息的发送,发送的消息将首先装载到目标任务的预备消息容器中,预备容器已满的情况下转变属性为消费容器,从而经步骤②中的生产线进行消费。
不同生产线消费自身消息时可以并行执行,但向某个任务发送消息时,只能有一个任务获取发送权限,其他任务阻塞;
④内存管理模块通过不同大小的内存池集合,为生产线上的所有任务提供内存资源。指定大小的内存池,在同一时间只能有一个任务获得其权限,对其进行操作,其他任务阻塞。对于不同的内存集合之间,则可以并行操作;
⑤定时器模块通过任务管理模块,为所有任务提供定时器创建接口。并对定时器进行分级管理,循环扫描,高级向低级不断迁移的方式,及时的产生超时消息,通过步骤③提供给步骤②进行消费。
本发明具有下列优点和积极效果:
①一致性,多任务流水线生产模式场景下,不同的开发平台均可使用该模型;
②可拓展性,对于可承载的任务数量以及使用的内存资源,可以灵活地进行拓展;
③高效性,可以快速地获取和释放内存资源,在海量数据处理场景下效果更佳;
④安全性,对内存资源的使用提供保护机制,及时抛出异常点;
⑤可复用性,该模型可承载各种不同的业务,除业务层以外,其他部分可以复用,降低开发难度;
⑥灵活性,可以根据任务的繁忙程度,对任务进行灵活合理的规划分组,以最小的线程数担负所有任务。
总之,本发明对影响数据处理性能的因素进行针对性优化,提高程序的处理效率,同时对于不同的业务需求可以快速地进行复用,降低开发难度减少开发周期。
附图说明
图1为本模型的结构方框图;
图中:
10—任务管理模块;
20—消息管理模块;
30—内存管理模块;
40—定时器管理模块;
50—业务层。
图2为任务管理模块10的工作流程图;
图3为消息管理模块20的工作流程图;
图4为内存管理模块30的工作流程图;
图5为定时器管理模块40的工作流程图;
图6为业务层50的工作流程图。
英译汉:
1、CPU:Central Processing Unit,中央处理器。
具体实施方式
以下结合附图和实施例详细说明。
一、模型
1、总体
如图1,本模型包括任务管理模块10、消息管理模块20、内存管理模块30、定时器管理模块40和业务层50;
其交互关系是:
任务管理模块10分别与消息管理模块20、内存管理模块30和业务层50交互;
任务管理模块10、定时器管理模块40和消息管理模块20依次循环交互。
工作机理是:
任务管理模块10和消息管理模块20交互,任务管理模块10承载的各项任务,其相互之间的交互由消息管理模块20负责,任务将通过消息管理模块20发送到目标任务的消息队列中,当任务的消息队列中达到一定数量的消息时,消息管理模块20将消息批量提交给任务管理模块10;
任务管理模块10和业务层50交互,任务管理模块10作为整个模型的中心模块,承载业务层50注册的各种任务;业务层50所需的内存资源、定时器资源均由任务管理模块10间接提供;
任务管理模块10和内存管理模块30交互,内存管理模块30所管理的内存资源,均通过任务管理模块10向其他模块提供内存的申请和释放功能,而非直接向其他模块提供;
任务管理模块10、定时器管理模块40和消息管理模块20依次循环交互,任务管理模块10所承载的任务,利用定时器管理模块40创建定时器,超时时将超时消息发送给消息管理模块20,从而将该消息插入到目标任务的消息队列中,当满足批量处理的要求时,再提交给任务管理模块10管理的任务执行。
2、功能模块
1)任务管理模块10
任务管理模块10为整个模型的中心模块,承载业务层50注册的静态任务或动态任务,并对其进行管理和调度;
具体地说,如图2,任务管理模块10的工作流程如下:
a、开始-100
开始启动任务管理模块10时,需提前进行静态任务的注册和基本的初始化工作,该部分由业务层50完成;
b、整合业务层静态任务-101
业务层50根据任务管理模块10提供的任务注册接口提交任务,任务管理层50根据给定的参数进行分类梳理;
c、生产线初始化-102
任务管理模块10根据整体的任务规划,确定各个生产线的多种重要属性:所挂载的任务数、任务入口、生产线条数和生产线CPU亲和性,完成生产线消息队列的初始化;所述的生产线指线程;
d、生产线执行-103
开启生产线,从自身消息队列中获取消息提供各个任务进行消费,消息类型分为基础消息类型和业务层50自定义消息类型,前者用于任务状态的管理,后者由业务层自定义;
e、监听业务层动态任务-104
业务层50存在提交临时任务的可能,任务管理模块10提供接收该类任务的机制。
2)消息管理模块20
消息管理模块20负责任务之间的交互,通过安全机制不同任务的消息队列可以同时接收其他任务发送的消息,但具体的时刻同一消息队列只能接收唯一发送方的消息,消息管理模块20对消息先进行收集然后批量提交处理。
具体地说,如图3,消息管理模块20的工作流程如下:
A、接收业务层发消息指令-200
业务层任务之间通过消息交互,各生产线维护自身的消息链;
B、获取发消息资源锁-201
多个任务可以同时向某个任务发送消息申请,但只有在获得权限后才能继续执行,未获得权限的任务阻塞;
C、消息预备容器装载消息-202
预备容器存储最新接收的消息,其容量可配置设定;
D、判断检查消息预备容器是否已满-203
否则,释放发消息资源锁-204,即当前获得资源锁的任务将权限转让给其他消息发送方,再跳转到步骤A;
是则,依次为:
消息预备容器转变为消费容器-205,即预备容易已满时转变容器属性为消费属性,该类消息急需处理;
生产线接收消费消-206,即生产线从消费容器中批量接收消息,同时将消费容器改为预备属性;
根据消息类型选择任务消费消息-207,即生产线根据消息的类型选择相应的任务进行处理。
3)内存管理模块30
在用户层面实现内存的预先分配,统一管理,灵活进行拓展,通过任务管理模块10快速满足业务层50的内存资源需求;
具体地说,如图4,内存管理模块30的工作流程如下:
Ⅰ、读取内存配置-300
从配置文件中读取各级内存池的大小、页面数、安全间隔、安全检测策略和拓展策略;
Ⅱ、内存池初始化-301
根据确定的内存管理参数,创建各级内存池;
Ⅲ、内存操作申请-302
接收业务层50的内存资源申请,提供内存资源和回收内存资源,业务层50中多任务可以同时提交申请;
分别为分配内存和释放内存,并行执行;
一、分配内存
子步骤A、确定内存池级别-303,即根据业务层申请的内存大小确定目标内存池;
Ⅳ、获取目标内存池权限-305,即同一内存池,同一时刻只能有一个任务获取到内存池操作权限,不同的内存池之间可并行进行;
子步骤B、判断内存池资源检查是否存在资源-306,是则进入子步骤D,否则进入子步骤C;
子步骤C、内存池拓展-307;
子步骤D、分配内存-308;
Ⅴ、释放内存池权限-310,即解除对内存池的锁定状态,便于其他内存申请操作执行;再跳转到步骤Ⅲ。
二、释放内存
子步骤a、安全检查-304,即业务层释放内存资源时,对内存块进行检查是否存在异常操作;
Ⅳ、获取目标内存池权限-305,即同一内存池,同一时刻只能有一个任务获取到内存池操作权限,不同的内存池之间可并行进行;
子步骤b、回收内存-309,即将内存资源释放到内存池中;
Ⅴ、释放内存池权限-310,即解除对内存池的锁定状态,便于其他内存申请操作执行;再跳转到步骤Ⅲ。
4)定时器管理模块40
通过模型的基础定时器,在用户面创建定时器集合,并进行分级管理,循环扫描,高级定时器向低级定时器不断迁移的方式实现定时器的快速创建及准实时超时。
具体地说,如图5,定时器管理模块40的工作流程如下:
ⅰ、定时器模块初始化-400
以模型定时器为基础创建用户层时钟,初始化定时器管理模块,根据定时器超时长度进行多级别管理,每个级别相邻节点间的时间跨度不一样,最低级节点时间跨度为1s;
ⅱ、分别为:
或定时器申请-401,即接受业务层的定时器申请;
创建定时器-402,即根据业务层申请的超时长度,创建定时器并根据当前的运行时间挂载到相应的定时器链表中,再继续定时器申请-401;
或扫描定时器-403,即根据用户面时钟,对最低级定时器当前节点的定时器链进行逐个扫描,扫描完毕,高级的定时器随着时间的变迁,剩余超时时间逐渐减少,需将更高级的定时器调整到低级定时器链表中,并开始对最低级定时器开始新一轮扫描;
创建超时消息-404,即最低级定时器链表中,被扫描到定时器均为超时定时器,创建业务层的超时消息发送到目标任务的消息队列中,随即进入接收业务层发消息指令(200)过程中;再继续扫描定时器-403。
5)业务层50
业务层10为该模型中最灵活的模块,是模型复用性的最终体现,业务层10的具体实现完全由用户根据自身的需求进行定义、任务及资源的管理交由模型中的其他模块实现,自身只需按照提供的接口执行即可;
具体地说,如图6,业务层50的工作流程如下:
α、初始化-500
业务层为该模型中自主性最大的模块,用户根据自身业务需求制定初始化流程,其中固定部分为通过任务管理模块提供的接口执行读取内存配置(300)、内存池初始化(301)及定时器模块初始化(400);
β、任务注册-501
业务层根据自身的需求制定不同的任务,并调用任务管理模块提供的接口进行任务注册,随即任务管理模块通过整合业务层静态任务(101)和监听业务层
动态任务(104)过程接受业务层任务;
γ、业务层执行-502
业务层根据自身业务需求开展业务,具体业务可由各个任务项完成。
3、本发明的工作机理
业务层50和任务管理模块10交互,任务管理模块10作为整个模型的中心模块,承载业务层50注册的各种任务;业务层50所需的内存资源、定时器资源均由任务管理模块10间接提供;
任务管理模块10和消息管理模块20交互,任务管理模块10承载的各项任务,其相互之间的交互由消息管理模块20负责;任务将通过消息管理模块20发送到目标任务的消息队列中,当队列的消息队列中达到一定数量的消息时,消息管理模块20将消息批量提交给任务管理模块10;
任务管理模块10和内存管理模块30交互,内存管理模块30所管理的内存资源,均通过任务管理模块10向其他模块提供内存的申请和释放功能,而非直接向其他模块提供;
任务管理模块10、定时器管理模块40和消息管理模块20循环交互,任务管理模块10所承载的任务,利用定时器管理模块40创建定时器,超时时将超时消息发送给消息管理模块20,从而将该消息插入到目标任务的消息队列中,当满足批量处理的要求时,再提交给任务管理模块10管理的任务执行。
4、本发明具体举例,如实际的流水线开发程序中有3个任务环节依次为:A、B、C、D,其中任务A、C为繁忙任务,任务B和D为清闲任务,则可以将任务A、C注册到独立的生产线上,即单线程执行单任务,而将任务B、D注册到同一生产线中,即单线程执行多任务,依次降低线程的数量;该方式涉及到3个线程,为3个线程指定单独的逻辑核,使其在各自的逻辑核上快速运行减少切换带来的开销;4个任务均可以通过任务管理模块10快速地申请和释放内存资源和定时器资源;4个任务之间消息的发送,则通过任务管理模块10提供的接口进行,消息的接收和执行由任务管理模块10和消息管理模块20负责。

Claims (7)

1.一种基于多核平台的多任务开发模型,其特征在于:
包括任务管理模块(10)、消息管理模块(20)、内存管理模块(30)、定时器管理模块(40)和业务层(50);
其交互关系是:
任务管理模块(10)分别与消息管理模块(20)、内存管理模块(30)和业务层(50)交互;
任务管理模块(10)、定时器管理模块(40)和消息管理模块(20)依次循环交互。
2.按权利要求1所述的开发模型,其特征在于所述的任务管理模块(10)的工作流程如下:
a、开始(100)
开始启动任务管理模块(10)时,需提前进行静态任务的注册和基本的初始化工作,该部分由业务层(50)完成;
b、整合业务层静态任务(101)
业务层50根据任务管理模块(10)提供的任务注册接口提交任务,任务管理模块(10)根据给定的参数进行分类梳理;
c、生产线初始化(102)
任务管理模块(10)根据整体的任务规划,确定各个生产线的多种重要属性:所挂载的任务数、任务入口、生产线条数和生产线CPU亲和性,完成生产线消息队列的初始化;所述的生产线指线程;
d、生产线执行(103)
开启生产线,从自身消息队列中获取消息提供各个任务进行消费,消息类型分为基础消息类型和业务层(50)自定义消息类型,前者用于任务状态的管理,后者由业务层自定义;
e、监听业务层动态任务(104)
业务层(50)存在提交临时任务的可能,任务管理模块(10)提供接收该类任务的机制。
3.按权利要求1所述的开发模型,其特征在于所述的消息管理模块(20)的工作流程如下:
A、接收业务层发消息指令(200)
业务层任务之间通过消息交互,各生产线维护自身的消息链;
B、获取发消息资源锁(201)
多个任务可以同时向某个任务发送消息申请,但只有在获得权限后才能继续执行,未获得权限的任务阻塞;
C、消息预备容器装载消息(202)
预备容器存储最新接收的消息,其容量可配置设定;
D、判断检查消息预备容器是否已满(203)
否则,释放发消息资源锁(204),即当前获得资源锁的任务将权限转让给其他消息发送方,再跳转到步骤A;
是则,依次为:
消息预备容器转变为消费容器(205),即预备容易已满时转变容器属性为消费属性,该类消息急需处理;
生产线接收消费消息(206),即生产线从消费容器中批量接收消息,同时将消费容器改为预备属性;
根据消息类型选择任务消费消息(207),即生产线根据消息的类型选择相应的任务进行处理。
4.按权利要求1所述的开发模型,其特征在于所述的内存管理模块(30)的工作流程如下:
Ⅰ、读取内存配置(300)
从配置文件中读取各级内存池的大小、页面数、安全间隔、安全检测策略和拓展策略;
Ⅱ、内存池初始化(301)
根据确定的内存管理参数,创建各级内存池;
Ⅲ、内存操作申请(302)
接收业务层(50)的内存资源申请,提供内存资源和回收内存资源,业务层(50)中多任务可以同时提交申请;
分别为分配内存和释放内存,并行执行;
其一、分配内存
子步骤A、确定内存池级别(303),即根据业务层申请的内存大小确定目标内存池;
Ⅳ、获取目标内存池权限(305),即同一内存池,同一时刻只能有一个任务获取到内存池操作权限,不同的内存池之间可并行进行;
子步骤(B)、判断内存池资源检查是否存在资源(306),是则进入子步骤D,否则进入子步骤C;
子步骤C、内存池拓展(307);
子步骤D、分配内存(308);
Ⅴ、释放内存池权限(310),即解除对内存池的锁定状态,便于其他内存申请操作执行;再跳转到步骤Ⅲ;
其二、释放内存
子步骤a、安全检查(304),即业务层释放内存资源时,对内存块进行检查是否存在异常操作;
Ⅳ、获取目标内存池权限(305),即同一内存池,同一时刻只能有一个任务获取到内存池操作权限,不同的内存池之间可并行进行;
子步骤b、回收内存(309),即将内存资源释放到内存池中;
Ⅴ、释放内存池权限(310),即解除对内存池的锁定状态,便于其他内存申请操作执行;再跳转到步骤Ⅲ。
5.按权利要求1所述的开发模型,其特征在于所述的定时器管理模块(40)的工作流程如下:
ⅰ、定时器模块初始化(400)
以模型定时器为基础创建用户层时钟,初始化定时器管理模块,根据定时器超时长度进行多级别管理,每个级别相邻节点间的时间跨度不一样,最低级节点时间跨度为1s;
ⅱ、分别为:
或定时器申请(401),即接受业务层的定时器申请;
创建定时器(402),即根据业务层申请的超时长度,创建定时器并根据当前的运行时间挂载到相应的定时器链表中,再继续定时器申请(401);
或扫描定时器(403),即根据用户面时钟,对最低级定时器当前节点的定时器链进行逐个扫描,扫描完毕,高级的定时器随着时间的变迁,剩余超时时间逐渐减少,需将更高级的定时器调整到低级定时器链表中,并开始对最低级定时器开始新一轮扫描;
创建超时消息(404),即最低级定时器链表中,被扫描到定时器均为超时定时器,创建业务层的超时消息发送到目标任务的消息队列中,随即进入接收业务层发消息指令(200)过程中;再继续扫描定时器(403)。
6.按权利要求1所述的开发模型,其特征在于所述的业务层(50)的工作流程如下:
α、初始化(500)
业务层为该模型中自主性最大的模块,用户根据自身业务需求制定初始化流程,其中固定部分为通过任务管理模块提供的接口执行读取内存配置(300)、内存池初始化(301)及定时器模块初始化(400);
β、任务注册(501)
业务层根据自身的需求制定不同的任务,并调用任务管理模块提供的接口进行任务注册,随即任务管理模块通过整合业务层静态任务(101)和监听业务层
动态任务(104)过程接受业务层任务;
γ、业务层执行(502)
业务层根据自身业务需求开展业务,具体业务可由各个任务项完成。
7.基于权利要求1-6所述开发模型的开发方法,其特征在于:
①业务层(50)通过任务管理模块(10)提供的接口,对内存管理模块(30)和定时器管理模块(40)进行初始化,即内存池集合的创建以及定时器管理结构的初始化;
同时,业务层(50)根据开发需求制定任务块,并在任务管理模块(10)中进行注册,任务注册时需指定待挂载的生产线及用于生产线绑定的CPU逻辑核编号;
②任务管理模块(10)对所有的生产线进行初始化,同时利用消息管理模块(20)为生产线创建独立的消息队列资源;随后启动所有的生产线,从消息队列获取消费消息供任务消费,同时根据配置保证每条生产线在独立的逻辑核上运行;
③消息管理模块(20)对任务之间的交互进行管理,任务之间均可以通过消息管理模块(20)进行消息的发送,发送的消息将首先装载到目标任务的预备消息容器中,预备容器已满的情况下转变属性为消费容器,从而经步骤②中的生产线进行消费;
不同生产线消费自身消息时可以并行执行,但向某个任务发送消息时,只能有一个任务获取发送权限,其他任务阻塞;
④内存管理模块(30)通过不同大小的内存池集合,为生产线上的所有任务提供内存资源;指定大小的内存池,在同一时间只能有一个任务获得其权限,对其进行操作,其他任务阻塞;对于不同的内存集合之间,则可以并行操作;
⑤定时器管理模块(40)通过任务管理模块(10),为所有任务提供定时器创建接口,并对定时器进行分级管理,循环扫描,高级向低级不断迁移的方式,及时地产生超时消息,通过步骤③提供给步骤②进行消费。
CN201811080482.0A 2018-09-17 2018-09-17 一种基于多核平台的多任务开发模型及其方法 Active CN109189580B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811080482.0A CN109189580B (zh) 2018-09-17 2018-09-17 一种基于多核平台的多任务开发模型及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811080482.0A CN109189580B (zh) 2018-09-17 2018-09-17 一种基于多核平台的多任务开发模型及其方法

Publications (2)

Publication Number Publication Date
CN109189580A true CN109189580A (zh) 2019-01-11
CN109189580B CN109189580B (zh) 2021-06-29

Family

ID=64911483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811080482.0A Active CN109189580B (zh) 2018-09-17 2018-09-17 一种基于多核平台的多任务开发模型及其方法

Country Status (1)

Country Link
CN (1) CN109189580B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829542A (zh) * 2019-01-29 2019-05-31 武汉星巡智能科技有限公司 基于多核处理器的多元深度网络模型重构方法及装置
CN113448734A (zh) * 2021-07-15 2021-09-28 中国银行股份有限公司 Spark SQL交互式场景下SQL中断系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419561A (zh) * 2007-10-26 2009-04-29 中兴通讯股份有限公司 一种异构多核体系中的资源管理方法及系统
CN101459605A (zh) * 2008-12-31 2009-06-17 成都市华为赛门铁克科技有限公司 一种流量控制方法和设备
CN103870338A (zh) * 2014-03-05 2014-06-18 国家电网公司 一种基于cpu核管理的分布式并行计算平台及方法
CN105607904A (zh) * 2015-12-18 2016-05-25 南京熊猫电子股份有限公司 基于Linux平台的通信软件的快速开发框架及使用方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419561A (zh) * 2007-10-26 2009-04-29 中兴通讯股份有限公司 一种异构多核体系中的资源管理方法及系统
CN101459605A (zh) * 2008-12-31 2009-06-17 成都市华为赛门铁克科技有限公司 一种流量控制方法和设备
CN103870338A (zh) * 2014-03-05 2014-06-18 国家电网公司 一种基于cpu核管理的分布式并行计算平台及方法
CN105607904A (zh) * 2015-12-18 2016-05-25 南京熊猫电子股份有限公司 基于Linux平台的通信软件的快速开发框架及使用方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829542A (zh) * 2019-01-29 2019-05-31 武汉星巡智能科技有限公司 基于多核处理器的多元深度网络模型重构方法及装置
CN113448734A (zh) * 2021-07-15 2021-09-28 中国银行股份有限公司 Spark SQL交互式场景下SQL中断系统及方法
CN113448734B (zh) * 2021-07-15 2024-02-23 中国银行股份有限公司 Spark SQL交互式场景下SQL中断系统及方法

Also Published As

Publication number Publication date
CN109189580B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN104834506B (zh) 一种采用多线程处理业务应用的方法
CN102541653B (zh) 一种多任务线程池调度方法和系统
CN105912401B (zh) 一种分布式数据批处理系统和方法
CN102722417B (zh) 一种扫描任务的分配方法和装置
CN102467415B (zh) 一种业务面任务处理方法及设备
CN109445944A (zh) 一种基于dpdk的网络数据采集处理系统及其方法
CN101452404B (zh) 一种嵌入式操作系统的任务调度装置及方法
CN112463709A (zh) 可配置的异构人工智能处理器
CN104063279B (zh) 任务调度方法、装置和终端
CN105843670A (zh) 一种云平台虚拟集群部署整合方法
CN101051280A (zh) 智能卡嵌入式操作系统及其控制方法
CN105045658A (zh) 一种利用多核嵌入式dsp实现动态任务调度分发的方法
CN105683939A (zh) 用于在诸如fpga的动态可重新配置硬件装置以及诸如cpu的指令集处理器上同时执行进程的计算平台、可重新配置硬件装置和方法、以及相关的计算机可读介质
CN109189580A (zh) 一种基于多核平台的多任务开发模型及其方法
CN101963922A (zh) 任务处理方法和装置
CN109582436A (zh) 基于容器集群平台的细粒度抢占式资源调度系统及方法
CN112486642A (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN100383743C (zh) Java操作系统中实时任务调度方法
CN114579323A (zh) 一种线程处理方法、装置、设备及介质
CN106874129B (zh) 一种操作系统进程调度顺序确定方法及控制方法
CN105159784A (zh) 一种虚拟服务器的部署方法及系统
CN113672391A (zh) 一种基于Kubernetes的并行计算任务调度方法与系统
Wu et al. Abp scheduler: Speeding up service spread in docker swarm
CN111541646A (zh) 一种增强密码机安全服务接入能力的方法
Lam et al. Performance guarantee for online deadline scheduling in the presence of overload

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant