S51跑操作系统原理.ppt
《S51跑操作系统原理.ppt》由会员分享,可在线阅读,更多相关《S51跑操作系统原理.ppt(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、演变 对很多人来说,多任务并行的机制是神秘的,包括很多长期在操作系统下开发应用程序的人来说也是如此。回顾一下从普通的单任务顺序执行单任务顺序执行到多任务并行执行多任务并行执行的演变过程,有利于打破“多任务并行”的神秘感。其实多任务并行机制一点也不复杂,从技术上说,它就是程序流折断加现场(在操作系统里叫上下文)保护。这两部分技术不仅谈不上高深,甚至无法称其为“技术”,因为几乎每个开发者每天都在跟它们打交道:比较中断响应、调子程序。那么它到底神秘在哪里呢?在于程序流反向控制程序流反向控制机制,所谓程序流反向控制程序流反向控制指的是,由子函数决定父函数的执行流程。对于通常的程序来说,总是由父函数决定
2、何时调用哪一个子函数的;而在并行多任务系统里,是由一个被称为任务调度任务调度器器的子函数决定着何时调用哪一个父函数!需要澄清一点是,这种子函数对父函数的调用并不是任意的,它只能将流程指向父函数的折断点,也就是最近一次调用任务调度器时的位置。原因很简单,因为子函数根本不知道应该从父函数的哪个地方开始执行,除非它保存了父函数在折断时的上下文。这种“由任务调度器保存任务流程折断点信息(上下文),并在将来某个时间恢由任务调度器保存任务流程折断点信息(上下文),并在将来某个时间恢复该上下文,然后继续该任务流程复该上下文,然后继续该任务流程”的方式,就是多任务并行的核心机制。如何在子函数中修改父函数的执行
3、流程?修改堆栈!键盘扫描显示扫描主程序最简单的顺序执行方式最简单的顺序执行方式挨个调用任务,执行完一个任务后再执行下一个任务。如果一个任务长时间占用CPU,那么其它任务对外部事件的响应全部停止。主程序显示扫描片段1显示扫描片段2显示扫描片段3显示扫描片段4延时处1键盘扫描延时处2延时处3延时处4改进改进 将浪费的时间利用起来将浪费的时间利用起来 仔细观察可发现,其实任务并非一直运行,大部分时间是在延时.如果将任务从延时处折断从延时处折断,分拆成小片段分拆成小片段后插入到另一个任务中,取代原有的延时程序,就可以提高系统资源的利用率.键盘扫描片段1主程序显示扫描片段1键盘扫描片段2显示扫描片段2键
4、盘扫描片段n显示扫描片段n再改进再改进 统一调度任务片段统一调度任务片段 改由主程序来调度各任务片段.此时任务只剩下逻辑上的概念,而不存在完整的任务函数.任务函数已被分拆成若干小片.不足之处是,任务片段之间的关系是固定的.例如执行完键盘扫描任务的片段1后,必定是运行显示扫描任务的片段1.键盘扫描片段1主程序继续改进继续改进 实现流程控制实现流程控制-状态机状态机 在主程序与任务之间增加一个接口:任务状态控制器任务状态控制器.主程序 只与任务的状态控制器打交道,由状态控制器负责调用任务的片段任务的片段以及控制阶段的阶段的变换变换。这种循环、条件转移等大尺度流程控制在状态控制器中完成、用特定编号命
5、名每个程序流程阶段的执行方式,就是我们常说的“状态机状态机”.任务状态控制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 读第
6、1行:/省略“键值”二字.ks_step=读第2行;returncase读第2行:ks_step=读第3行returncase读第3行:.ks_step=读第1行returnUnsigned char disp_step=输出第1个数码管;Void keyscan()switch(disp_step)case 输出第1个:/省略“数码管”三字.disp_step=输出第2个;returncase 输出第2个:disp_step=输出第3个returncase输出第3个:.disp_step=输出第1个returnVoid main()while(1)keyscan();display();每次
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- S51 操作系统 原理
限制150内