如何实现自己的任务调度模块
来源:互联网 发布:淘宝复核认证气死人了 编辑:程序博客网 时间:2024/06/05 11:34
任务(线程)调度是操作系统最基本的功能,但在工业控制中受成本、实时性或认证等因素可能不可使用操作系统,为了解决复杂的任务调度问题,有些企业会采用一个大循环的方法来规避,但这会导致程序的灵活性下降,其实实现操作系统的基本任务调度(注意,是基本)并不复杂,主要有以下内容:
(1).链表:一个循环单项链表,用于实现所有任务的分时调度。调用创建任务接口时添加到该链表。
(2).回调函数:该回调函数就是用户的任务,在该部分实现你自己的代码。
(3).参数指针:在指针在创建任务时传递到链表的数据结构中,在任务调度时会将指针回传到回调函数中,需要注意的是该对象不能是从栈中申请的。
(4).系统时间:用提供时间基准,可用硬件定时器实现。
(5).任务运行时间控制:例如要让任务每1S或5S调度一次,需要利用系统时间实现。
几点说明:
(1) 该任务调度方法中没有实现上下文切换,实现方法是保存一些寄存器,例如PC寄存器。
(2) 用C++实现程序结构会比较清晰,这里利用的是C++的封装特性。
(3) 该任务调度方法中没有使用优先级,即不能实现抢占式调度,但对于硬件中断还是会抢占当前任务。
下一博文:工业安全系统中的几个指标:安全性、可靠性、可用性
- 如何实现自己的任务调度模块
- Zstack中如何实现自己的任务
- Zstack中如何实现自己的任务
- Zstack中如何实现自己的任务
- Kylin任务调度模块
- 任务是如何调度(切换)的?
- 操作系统中任务调度的实现
- 操作系统中任务调度的实现
- JongXie OS 任务调度的实现
- JDK Timer实现任务的调度举例
- 抢占式任务调度的一种实现
- Spring任务调度的几种实现
- 任务调度的 Java 实现方法
- Java常用的任务调度实现方式
- FreeRTOS的任务调度算法优化实现
- µC/OS-II内核任务调度模块的扩展
- 如何在Tomcat服务器的工程中实现任务计划调度
- 如何在Tomcat服务器的工程中实现任务计划调度---listener
- android 刷新View
- lvm Linux逻辑盘卷管理LVM
- 读书笔记之编程之美 - 1.13 NIM(3) 两堆石头的游戏
- android,meego和iPhone技术比较与开发前景
- 0.0.0.0的IP是什么地址
- 如何实现自己的任务调度模块
- qt for symbian 环境小问题
- 开始 运行命令大全
- 你可以不成功,但是不能不成长-杨澜
- 单链表内元素的查找
- 2155 Matrix 二维线段树
- 我在csdn的第一篇博客
- 诸葛亮的几句话
- 判断单链表是否有环?