当前课程知识点:计算机控制导论 > 第十章 工程实现 > 10.3 任务调度策略 > 10.3 任务调度策略
阅读材料:
计算机控制系统——分析、设计与实现技术
ISBN: 978 703 055 8091
相关阅读:
教材9.3节
在设计计算机控制系统软件的时候
除了考虑完成必要的功能之外
还要考虑任务调度
也就是功能之间的协作
与一般的计算机软件相比
计算机控制系统软件具有自身的特点
一个是它对时间有明确的要求
一些任务必须在特定的时间间隔里完成
如果不能够完成的话
系统轻则错误,重则出现故障
这个特点就是计算机控制系统的实时性
另外一个特点是计算机控制系统的任务是由外部触发的
这些外部事件是客观存在的
何时发生、如何发生不能提前预知
因此,具有并发性的特点
计算机控制系统在设计软件的时候
就要根据这两个特点进行适当的任务调度
计算机控制任务的实时性是对(响应)时间的要求
主要分两种情况
一种是硬实时,一种是软实时
硬实时是指相邻两个事件发生有一个期限
这个期限是明确的
如果在这个期限之内任务得不到响应
或者说是没有完成
那么系统就会发生故障
比如说我们的采样(任务)
在前一次没有采样完成的情况下
后一个采样脉冲到达
这个时候,后一次采样就会被丢失
另外一种是软实时
期限是不确定的
相邻的两次任务之间有一个时间间隔
但是这个时间间隔如果不满足的话
对系统不会产生特别严重的影响
这种情况之下
我们可以按软期限、软实时来处理
并发性指的是多个任务同时执行的特点
这种同时执行有可能是在同一个处理器上完成
也可能是在多个相互独立的处理器上完成
后一种情况是真正的并发性执行
前一种情况只是伪并发执行
但是使用处理器进行并发运算的话
系统的成本会上升
所以大多数情况下
我们是在同一个处理器上进行并发调度
在同一个处理器上完成并发性的调度
可以有这样五种调度策略
其中,最后两种是计算机控制系统当中常用的
也就是周期性调度和优先级抢占调度
我们先看一下周期性调度
它是按照固定周期执行特定任务
这个时候
任务是一组顺序的动作
是一种静态的响应
在执行的时候是从第一个动作开始
依次完成
一直到最后一个动作
再返回第一个动作开始循环
我们前面讲过的轮询操作就是一种典型的周期性的任务调度方式
而实际工程当中常采用的中断【则】是基于优先级的一种任务调度策略
它是按照任务的紧迫性和重要性对任务进行响应
对于重要的、硬实时的一些要求
优先得到满足
在采用这种调度策略的时候
需要注意资源共享的问题
我们下面看一下具体的优先级抢占的调度
需要考虑的问题
主要是三个要素
第一个是激励事件的响应模式
第二个是任务的汇合模式
第三个就是共享资源的处理
这里面,事件的到达模式实际上指的就是事件如何发生
任务的汇合模式是指在事件发生之后
什么情况下需要进行响应
而共享资源的控制访问主要是对资源的保护
在计算机控制系统当中
事件的到达模式主要有两种
一种是周期性的事件
另外一种是非周期性的事件
周期性事件对实时性的影响可以按照事件发生的周期来考虑
非周期性事件是一种突发的、不规则的事件
它对实时性的影响是不可测的
但是可以用统计的方法进行估计
因为这种事件很多都是有界的
也就是说相邻两次事件之间
它发生的最小时间间隔,或者是最大时间间隔,是可以估计出来的
或者是说
事件虽然是一个随机发生的事件
但是它的平均速率可以预先确定
后一种情况主要是针对一些软实时的事件
事件到达之后
如何响应任务
如何响应事件执行任务
我们可以根据具体情况来处理
可以在事件到达之后立时进行响应
这是一种同步调用的任务(汇合)方式
也可以在事件到达之后
等待一个特定的握手信息之后
再进行一个异步的调用来响应事件
比如说在I/O操作的时候
外部设备接收到采样命令之后
它还要看一下采样命令是不是得到执行
采样结果是不是已经返回
这样完成一个握手操作之后
才会进行一个采样的任务
另外就是等待回合的模式
需要多个特定事件同时满足之后任务才可以响应
再有就是计时汇合
在事件激励之后
任务并不会马上被调用
而是要等到一个特定的定时完成之后才会去响应
还有一种常用的就是阻行汇合
实际上是一种任务保护模式
在事件响应之后,它会隔断,阻断其他的事件响应
比如说我们(用)的屏蔽中断
最后一个需要考虑的因素就是如何访问共享资源
因为在优先级抢占的调度策略当中
低优先级任务执行过程当中会被高优先级任务打断
但是低优先级任务在执行的时候会对共享资源进行读写
高优先级任务抢到了资源的控制权之后
如果直接读写
有可能会产生错误的结果
所以在优先级抢占的任务调度模式当中
对于共享资源要进行一定的保护
基本原则是使用串行化访问
也就是说
共享资源在被访问的过程当中
不要进行任务调度的切换
具体执行方法可以有两种
一种是使用临界区
另外一种是使用互斥信号
比如说前面讲到的缓冲
和我们日常实践
和我们日常设计当中常用的一些标志字等等
-名人堂
-关于考核
-课程大纲测试
-学习合同
-学习任务
--学习任务
-1.1 什么是计算机控制
-1.2 为什么学习计算机控制
-1.3 怎样学习计算机控制
-第1周作业
-用户需求调查问卷
-学习任务
--学习任务
-2.1 概述
--2.1 概述
-2.2 典型形式
-【思政阅读】马少梅,范建文:回望历史——记录我国自动化仪表的成长与发展
-第2周作业
-学习任务
--学习任务
-3.1 信号采样
-3.2 信号重构
-第3周作业
-学习任务
--学习任务
-4.1 回顾:连续系统的数学描述
-4.2 离散对象的数学描述
-4.3 系统模型的运算
-第4周作业
-学习任务
--学习任务
-5.1 回顾:连续系统的性能分析
-5.2 离散系统的指令响应
-5.3 离散系统的性能描述
-第5周作业
-学习任务
--学习任务
-6.1 模拟化设计
-6.2 离散化方法
-第6周作业
-学习任务
--学习任务
-7.1 数字化设计
-7.2 解析法
-7.3 试探法
-第7周作业
-学习任务
--学习任务
-8.1 可控实现形式
-8.2 数值精度问题
-8.3 计算时延问题
-第8周作业
-学习任务
--学习任务
-9.1 硬件约束的抽象化
-9.2 选择运算平台
-9.3 选择I/O设备接口
-9.4 处理I/O接口数据
-第9周作业
-学习任务
--学习任务
-10.1 需求分析
-10.2 架构设计
-10.3 任务调度策略
-10.4 可靠设计模式
-第10周作业
-期末考试卷【互评】