[发明专利]基于单进程的多任务切换执行方法、系统及处理器在审
申请号: | 201510598987.6 | 申请日: | 2015-09-18 |
公开(公告)号: | CN105204933A | 公开(公告)日: | 2015-12-30 |
发明(设计)人: | 庞骏 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 上海光华专利事务所 31219 | 代理人: | 徐秋平 |
地址: | 201616 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 进程 任务 切换 执行 方法 系统 处理器 | ||
技术领域
本发明属于计算机技术领域,涉及一种任务执行方法,特别是涉及一种基于单进程的多任务切换执行方法、系统及处理器。
背景技术
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。现有技术实现的多任务是通过在进程中开几个线程,每个线程对应一个任务,最终实现多任务的执行。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
现有技术的缺点是:对于多个任务开多个线程是很浪费系统资源的,开多个线程就要实现对共享资源管理同步机制,因为多个线程是共享一个进程中的所有资源的,这种同步机制实现起来复杂而且花费的资源较多,而且线程之间的切换开销也比较大。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于单进程的多任务切换执行方法、系统及处理器,用于解决现有技术执行多个任务需要开多个线程浪费系统资源的问题。
为实现上述目的及其他相关目的,本发明提供一种基于单进程的多任务切换执行方法,所述基于单进程的多任务切换执行方法包括:设置任务等待队列集合,所述任务等待队列集合包括至少1个任务等待队列,每个任务等待队列对应一种任务类型;设置任务执行队列集合,所述任务执行队列集合包括至少2个优先级列表;每个优先级列表包含任务执行单元;主进程按优先级顺序获取各优先级列表中的任务执行单元,并执行获取的任务执行单元中的动作;当所述任务执行队列集合中不存在任务执行单元时,主进程从所述任务等待队列集合中获取任务,并将获取的任务添加到对应级别的优先级列表中继续执行。
可选地,所述任务等待队列集合包括事件任务等待队列、定时器任务等待队列、网络读任务等待队列、或/和网络写任务等待队列。
可选地,所述主进程从所述任务等待队列集合中获取任务的实现过程包括:从所述事件任务等待队列中按先后顺序获取任务添加到对应级别的优先级列表中;或/和轮询所述定时器任务等待队列,获取已超时的任务添加到对应级别的优先级列表中;当所述事件任务等待队列和所述定时器任务等待队列均有符合要求的任务添加时,select函数为非阻塞函数,返回值为0。
可选地,所述主进程从所述任务等待队列集合中获取任务的实现过程还包括:当所述事件任务等待队列和所述定时器任务等待队列均没有符合要求的任务添加时,轮询所述定时器任务等待队列,获取最先要超时的时间,将所述最先要超时的时间配置到select函数的超时字段中,此时所述主进程被阻塞,让出CPU;若在所述最先要超时的时间内,有网络I/O口可读或可写,那么select函数返回值大于0,所述网络读任务等待队列和网络写任务等待队列中与所述可读或可写的网络I/O口对应的任务添加到对应级别的优先级列表中;若在所述最先要超时的时间内,没有网络I/O口可读或可写,那么select函数返回值为0。
可选地,当所述select函数返回值为0时,所述任务执行队列集合中存在任务执行单元,所述主进程开始新一轮的按优先级顺序获取各优先级列表中的任务执行单元,并执行获取的任务执行单元中的动作。
可选地,所述任务执行队列集合包括高优先级列表、中优先级列表、和低优先级列表。
本发明还提供一种基于单进程的多任务切换执行系统,所述基于单进程的多任务切换执行系统包括:等待任务设置模块,设置任务等待队列集合,所述任务等待队列集合包括至少1个任务等待队列,每个任务等待队列对应一种任务类型;执行任务设置模块,设置任务执行队列集合,所述任务执行队列集合包括至少2个优先级列表;每个优先级列表包含任务执行单元;任务执行模块,与所述任务等待队列集合和所述任务执行队列集合通信相连,开启主进程按优先级顺序获取各优先级列表中的任务执行单元,并执行获取的任务执行单元中的动作;当所述任务执行队列集合中不存在任务执行单元时,主进程从所述任务等待队列集合中获取任务,并将获取的任务添加到对应级别的优先级列表中继续执行。
可选地,所述任务等待队列集合包括事件任务等待队列、定时器任务等待队列、网络读任务等待队列、或/和网络写任务等待队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510598987.6/2.html,转载请声明来源钻瓜专利网。