[发明专利]基于C语言实现管理软件多任务的方法有效
申请号: | 201910445168.6 | 申请日: | 2019-05-27 |
公开(公告)号: | CN110147247B | 公开(公告)日: | 2023-01-24 |
发明(设计)人: | 黄波;陈河;唐玉建;李涛;张振 | 申请(专利权)人: | 北京智芯微电子科技有限公司;国网信息通信产业集团有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/10;G06F8/30 |
代理公司: | 北京兴智翔达知识产权代理有限公司 11768 | 代理人: | 张玉梅 |
地址: | 100192 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 语言 实现 管理软件 任务 方法 | ||
1.一种基于C语言实现管理软件多任务的方法,其特征在于,所述基于C语言实现管理软件多任务的方法包括如下步骤:
(a)根据需求确定任务ID、任务类型、初始化入口函数和退出函数,进行单个任务的归集TCB任务的创建;
(b)向TCB中注册所述任务ID的命令集合,以便根据不同的ID命令来适配不同的任务处理流程;
(c)根据不同的ID命令注册与服务器连接的不同的处理函数;
(d)将完成处理函数注册的TCB的任务添加到任务管理链表,并将所述任务ID的运行状态置位;
(e)通过任务ID在所述TCB任务管理链表中找到对应所述任务ID的处理函数,设置运行标注位,并启动运行;以及
(f)重复步骤(a)~(e),进行下一任务的创建;
所述方法将单个任务中所有用到的信息都封装在同一个数据结构中,所述信息包括:任务命令ID、运行状态、任务类型标识、接收数据缓冲区、接收数据长度、线程ID、互斥锁、初始化函数指针、退出函数指针、线程服务处理函数、私有数据指针、运行错误码,用户运行错误处理函数指针、数据包命令集合;
所述基于C语言实现管理软件多任务的方法将任务定义成结构体类型的节点,每个所述节点为一个任务,通过所述任务管理链表对所述节点进行管理。
2.如权利要求1所述的基于C语言实现管理软件多任务的方法,其特征在于,所述基于C语言实现管理软件多任务的方法还包括:通过注册的ID任务接收数据,任务管理器根据不同的任务ID进行任务的调度派发,调度函数根据不同的任务类型进行相应数据的拷贝和处理。
3.如权利要求1所述的基于C语言实现管理软件多任务的方法,其特征在于,所述基于C语言实现管理软件多任务的方法还包括:如果任务处理过程中出现异常,则根据任务ID中相应的错误码调取相应的错误处理函数。
4.如权利要求2所述的基于C语言实现管理软件多任务的方法,其特征在于,所述任务类型包括监听、短处理、长处理。
5.如权利要求1所述的基于C语言实现管理软件多任务的方法,其特征在于,在所述与服务器连接的不同的处理函数中建立线程来处理与所述服务器通讯数据,并且其中,所述任务ID与所述处理函数一一对应。
6.如权利要求1所述的基于C语言实现管理软件多任务的方法,其特征在于,其中,任务管理器主要函数为增加新节点函数、删除指定节点函数、查找节点函数、遍历节点调用任务函数、核心调度函数。
7.如权利要求5所述的基于C语言实现管理软件多任务的方法,其特征在于,所述基于C语言实现管理软件多任务的方法通过控制任务的运行标志位来控制任务的开始、暂停和退出,并通过互斥锁实现线程之间信息的同步。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智芯微电子科技有限公司;国网信息通信产业集团有限公司,未经北京智芯微电子科技有限公司;国网信息通信产业集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910445168.6/1.html,转载请声明来源钻瓜专利网。