下载此文档

单任务顺序执行到多任务并行执行的演变过程-PPT课件(精).ppt


文档分类:高等教育 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
演变对很多人来说,多任务并行的机制是神秘的,包括很多长期在操作系统下开发应用程序的人来说也是如此。回顾一下从普通的单任务顺序执行到多任务并行执行的演变过程,有利于打破“多任务并行”的神秘感。其实多任务并行机制一点也不复杂,从技术上说,它就是程序流折断加现场(在操作系统里叫上下文)保护。这两部分技术不仅谈不上高深,甚至无法称其为“技术”,因为几乎每个开发者每天都在跟它们打交道:比较中断响应、调子程序。那么它到底神秘在哪里呢?在于程序流反向控制机制,所谓程序流反向控制指的是,由子函数决定父函数的执行流程。对于通常的程序来说,总是由父函数决定何时调用哪一个子函数的;而在并行多任务系统里,是由一个被称为任务调度器的子函数决定着何时调用哪一个父函数! 需要澄清一点是,这种子函数对父函数的调用并不是任意的,它只能将流程指向父函数的折断点,也就是最近一次调用任务调度器时的位置。原因很简单,因为子函数根本不知道应该从父函数的哪个地方开始执行,除非它保存了父函数在折断时的上下文。这种“由任务调度器保存任务流程折断点信息(上下文),并在将来某个时间恢复该上下文,然后继续该任务流程”的方式,就是多任务并行的核心机制。如何在子函数中修改父函数的执行流程?修改堆栈! 键盘扫描显示扫描主程序最简单的顺序执行方式挨个调用任务,执行完一个任务后再执行下一个任务。如果一个任务长时间占用 CPU, 那么其它任务对外部事件的响应全部停止。主程序显示扫描片段 1显示扫描片段 2显示扫描片段 3显示扫描片段 4 延时处 1键盘扫描延时处 2延时处 3延时处 4改进将浪费的时间利用起来仔细观察可发现,其实任务并非一直运行,,分拆成小片段后插入到另一个任务中,取代原有的延时程序, 1 主程序显示扫描片段 1键盘扫描片段 2显示扫描片段 2…键盘扫描片段 n显示扫描片段 n ,. 不足之处是, 1后,必定是运行显示扫描任务的片段 1. 键盘扫描片段1 主程序继续改进实现流程控制---状态机在主程序与任务之间增加一个接口:,由状态控制器负责调用任务的片段以及控制阶段的变换。这种循环、条件转移等大尺度流程控制在状态控制器中完成、用特定编号命名每个程序流程阶段的执行方式,就是我们常说的“状态机”.任务状态控制 Switch(task_step) 键盘扫描片段2 键盘扫描片段3 …显示扫描片段1 任务状态控制 Switch(task_step) 显示扫描片段2 显示扫描片段2 …其它任务片段1 任务状态控制 Switch(task_step) 其它任务片段2 其它任务片段2 …状态机的优点是额外占用资源少,执行效率较高。缺点是任务被拆得支离破碎,流程不直观。而且让任务在各个状态间跳来跳去, 其实处理起来并不轻松。状态机示例 Unsigned char ks_step = 读第 1行键值; Void keyscan(){ switch(ks_step){ case 读第 1行://省略“键值”二字…. ks_step = 读第 2行; return case 读第 2行:… ks_step = 读第 3行 return case 读第 3行:…. ks_step = 读第 1行 return }} Unsigned char disp_step = 输出第 1个数码管; Void keyscan(){ switch(disp_step ){ case 输出第 1个 :// 省略“数码管”三字…. disp_step = 输出第 2个; return case 输出第 2个:… disp_step = 输出第 3个 return case 输出第 3个:…. disp_step = 输出第 1个 return }} Void main(){ while(1){ keyscan(); display(); }} 每次进入任务函数时只执行一个片段, 然后返回,任务进度依靠状态指示器来保存。状态指示器每进入函数一次只执行一步即返回,让出 CPU 给其它任务任务调度器键盘扫描程序显示扫描程序其它任务浮出水面任务切换点与任务调度器任务调度器,是多任务操作系统的核心重新将任务小片整合起来,与顺序执行不同的是,在执行完每个任务片段后,调用任务调度器释放 CPU ,任务调度器负责分派下一个接管 CPU 的任务片段。与状态机不同的是,状态机及主程序,也就是任务调者,是主动调用者,任

单任务顺序执行到多任务并行执行的演变过程-PPT课件(精) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2768573384
  • 文件大小0 KB
  • 时间2016-06-06