打印

多任务系统原理,在线等。

[复制链接]
1583|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dir315|  楼主 | 2011-3-18 10:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
HWM| | 2011-3-18 12:11 | 只看该作者
“多任务系统”需由操作系统调度,硬件一般要求具备适当的内存保护等相关管理机制。至于操作系统如何调度多个任务的运行,视不同策略其相应的算法各不相同。最简单的,可能是分时,即将等长时间片轮流分配给各个任务。当然,也可以加入某种竞争机制——抢占。最终所追求的目标是某种效率,其可能是时间上的或空间上的。

使用特权

评论回复
板凳
dir315|  楼主 | 2011-3-18 12:51 | 只看该作者
2# HWM
你好,先谢谢你的回答和关注。
可能我表达上没有说清楚,我想知道的不是这个理论上的原理,而是程序中具体是怎么实现的。

使用特权

评论回复
地板
dir315|  楼主 | 2011-3-18 12:54 | 只看该作者
比如可以设置个定时器,然后到一定时候就去查看就绪列表,按照优先级来转换任务。(这是我自己想的笨方法),这个设置个定时器,这个就是我想要知道的答案(当然具体不是这样的)。

使用特权

评论回复
5
HWM| | 2011-3-18 13:14 | 只看该作者
本帖最后由 HWM 于 2011-3-18 13:15 编辑

to 3,4L:

分时调度确实有个“定时器”,然后系统中断(定时器触发)按一定的策略完成系统调度。为了能切换调度各个任务,每个任务系统必须分配一个任务状态表(一个数据结构)以记录任务的运行状态。此外,还必须对任务的工作现场加以适当的保护。为了协调公共资源,可能还要对系统中的资源进行适当的调度管理(这同样涉及到一系列的数据结构和算法)。总之,具体实现要看具体要求。通用系统是建立在一般需求之上的。

使用特权

评论回复
6
李冬发| | 2011-3-18 22:32 | 只看该作者
最简单的就是运行完一个任务后再运行另一个。

使用特权

评论回复
7
airwill| | 2011-3-19 15:49 | 只看该作者
比如可以设置个定时器,然后到一定时候就去查看就绪列表,按照优先级来转换任务。(这是我自己想的笨方法),这个设置个定时器,这个就是我想要知道的答案(当然具体不是这样的)。 ...
dir315 发表于 2011-3-18 12:54


其实, 具体就是你想象的这样. 当然作为多任务系统, 还应该提供一些其他方面的服务, 比如任务之间的通信手段. 相互激活, 或者自己休眠等等...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

19

帖子

0

粉丝