多任务系统原理,在线等。
我想知道,操作系统怎么实现任务间的跳转,比如,dos是单任务的,所以就一条路走到底,多任务的操作系统,难道他设置一个定时器,一定时间就去看优先级?还是有什么特殊设置?希望大侠帮小弟我解释解释,先谢谢。 “多任务系统”需由操作系统调度,硬件一般要求具备适当的内存保护等相关管理机制。至于操作系统如何调度多个任务的运行,视不同策略其相应的算法各不相同。最简单的,可能是分时,即将等长时间片轮流分配给各个任务。当然,也可以加入某种竞争机制——抢占。最终所追求的目标是某种效率,其可能是时间上的或空间上的。 2# HWM你好,先谢谢你的回答和关注。
可能我表达上没有说清楚,我想知道的不是这个理论上的原理,而是程序中具体是怎么实现的。 比如可以设置个定时器,然后到一定时候就去查看就绪列表,按照优先级来转换任务。(这是我自己想的笨方法),这个设置个定时器,这个就是我想要知道的答案(当然具体不是这样的)。 本帖最后由 HWM 于 2011-3-18 13:15 编辑
to 3,4L:
分时调度确实有个“定时器”,然后系统中断(定时器触发)按一定的策略完成系统调度。为了能切换调度各个任务,每个任务系统必须分配一个任务状态表(一个数据结构)以记录任务的运行状态。此外,还必须对任务的工作现场加以适当的保护。为了协调公共资源,可能还要对系统中的资源进行适当的调度管理(这同样涉及到一系列的数据结构和算法)。总之,具体实现要看具体要求。通用系统是建立在一般需求之上的。 最简单的就是运行完一个任务后再运行另一个。 比如可以设置个定时器,然后到一定时候就去查看就绪列表,按照优先级来转换任务。(这是我自己想的笨方法),这个设置个定时器,这个就是我想要知道的答案(当然具体不是这样的)。 ...
dir315 发表于 2011-3-18 12:54 https://bbs.21ic.com/images/common/back.gif
其实, 具体就是你想象的这样. 当然作为多任务系统, 还应该提供一些其他方面的服务, 比如任务之间的通信手段. 相互激活, 或者自己休眠等等...
页:
[1]