- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 5.6.4 程序调度 故障级程序由故障中断法调度执行;周期级程序由时钟中断法调度执行;基本级程序由队列法调度执行。 1. 周期级程序的调度原理 周期级程序的调度可用图5-13所示的时间表完成。 时间表由时间计数器、屏蔽表、调度表、功能程序入口地址表四部分组成。 * 图5-13 时间表的结构 * 1) 时间计数器 时间计数器的计数受时钟中断控制,两个时钟中断之间的时间间隔称做时钟周期。图5-13所示的时间表的时钟中断周期是8?ms,则时间计数器每8?ms计1次数。所计的值对应调度表的某单元,比如时间计数器记录的值为0010,则对应的调度表为第2号单元(T2)。如果调度表有12个单元,那么计数器就应该是4位二进制码,即由0开始累加到11后再回到0。由此可见,时间计数器实际上是调度表单元地址的索引,可通过计数器的值来控制执行调度表的各个单元的任务。 * 2) 调度表 调度表每一单元(T)由若干比特组成(图5-13所示的调度表为16位),每1位比特对应功能程序入口地址表中的1条程序。比特为“1”时,对应的程序执行,为“0”时不执行。图5-13所示的调度表的每一单元(T)最多可以调度的程序有16个。 * 3) 屏蔽表 屏蔽表又称有效位。其中,每1位对应1条程序,而该条程序执行的条件是:屏蔽表∧调度表?=?1。屏蔽表不受时钟中断控制,而是由CPU激活。当系统有异常情况发生需中止周期级程序调度故障级程序时,CPU将正在执行的周期级程序所对应的屏蔽位置“0”。 * 4) 功能程序入口地址表 功能程序入口地址表是存放周期级程序的地址索引。功能程序入口地址表的行数对应于调度表的位数,即以调度表位数为指针,查找功能程序入口地址表,可得到要执行程序的首地址,从而去调度执行。 时间表的控制流程如图5-14所示。 * 图5-14 时间表的控制流程图 * 【例5.3】 某时间表的调度表共12个单元,字长8位,计数器的基本周期为4?ms。问: ① 可实现多少个程序的调度? ② 可实现多少种调度周期,各为多少? ③ 拨号脉冲的识别程序周期为8?ms,在此表内如何安排? 解:① 可实现8个程序的调度; ② 可实现6种调度周期,分别为4?ms、8?ms、12?ms、16?ms、24?ms和48?ms; ③ ?8?ms调度周期在调度表中的安排为隔一个单元设置一个1。 * 【例5.4】 设程序A、B、C的实时性要求分别为10?ms、20?ms和30?ms,求: ① 调度表的最大执行周期; ② 调度表的最小单元数; ③ 画该调度表。 解:① 因调度表执行周期应短于所有任务中的最小执行间隔要求,故调度表的执行周期是10?ms(10、20、30的最大公约数)。 ② 调度表行数为1?×?2?×?3 = 6。 ③ 该调度表如图5-15所示。 * 图5-15 调度表 * 2. 基本级程序的调度原理 基本级程序的调度采用计算机原理中的队列法。队列是删除操作在一端进行,而插入操作在另一端进行的线性表。 1) 队列的结构与特点 队列的结构由一张张任务表链接而成,队列中包含以下要素。 (1) 队首指针HP(Head Pointer):用以指示队首的地址,便于调度程序取出任务,也称取出口。 (2) 任务表:主要用于存放与基本级任务有关的数据信息。 (3) 队尾指针TP(Tail Pointer):用以指示队尾的地址,便于把任务编入队列,也称编入口。 * 2) 链形队列的类型 链形队列的类型有单链结构、单循环链结构和双循环链结构。 (1) 单链结构。在单链结构中,每个任务表都包含一个后继指针。单链结构如图5-16所示。 图5-16 单链结构 * (2) 单循环链结构。单循环链结构如图5-17所示。 图5-17 单循环链结构 * (3) 双循环链结构。双循环链结构的每个任务表中既含后继指针又含前驱指针,如图 5-18所示。 图5-18 双循环链结构 * 3) 基本级程序的典型队列结构 在控制系统中,对应每一个用户接口都有一个数据块,每个数据块又分为三个数据区:一个用来存储接口的静态数据;一个用来存储呼叫进程中的动态数据;还有一个用来存储维护管理过程的挥发性数据。一个区就相当于一个任务单元。所有数据块按线性队列排队,数据块的操作通过指针对相应的数据区进行。当进程更迭时,只需装入相应进程的数据区指针和程序指针即可,如图5-19所示。 * 图5-19 基本级程序的典型队列结构 * 图5-20 执行号码分析的基本级程序 * 图5-21 队列调度基本级(B)任务流程
您可能关注的文档
- 2013年国培甘肃省初中体育1班学习简报.ppt
- 2013年税务及印花税法例(另类债券计划)(修订)条例-HongKonge.PDF
- 2014年下半年联合国语言人才培训体系认证考试英语口笔译(P3)招考简章.PDF
- 2014年度省领导圈定课题招标公告-安徽省社会科学院.doc
- 2014年揭阳市市直学校招聘教师公告-广东工业大学.doc
- 2014年预算编制说明.doc
- 2015年环境资源永续发展研讨会议程-台湾环境资源永续发展协会.PDF
- 2016重症医学回顾与展望-中华危重病急救医学.PDF
- 2017年年度业绩ppt(A股)-中国交建.PDF
- 2017年度广东省科学技术奖项目公示表-福建农林大学科学技术发展.doc
文档评论(0)