当前位置: 技术问答>linux和unix
问几个初级问题, 30分一个, 谢谢.
来源: 互联网 发布时间:2016-04-03
本文导语: 1, 很多书上都说, 实时操作系统的特征是,能在指定的时间内完成某些任务. -------我在实时操作系统上做了一年开发, 从来没见要为一个任务指定时间啊. 2, 操作系统凭什么来保证"在指定的时间完成指定的任务",...
1, 很多书上都说, 实时操作系统的特征是,能在指定的时间内完成某些任务.
-------我在实时操作系统上做了一年开发, 从来没见要为一个任务指定时间啊.
2, 操作系统凭什么来保证"在指定的时间完成指定的任务", 软件狗复位? 公司的系统是, 启动一个低优先级任务, 如果5分钟之内从来没执行该任务, 就复位, 我想, 这不是保证"实时"的办法.
3, 任务调度:基于优先级的抢占式调度, 处于就绪态的最高优先级任务一直运行. 那么, 还要不要多任务并行了? 还怎么让其他的任务在指定的时间内完成?
可能有些词不达义, 但大家应该能明白我的意思了.
30分一个.
-------我在实时操作系统上做了一年开发, 从来没见要为一个任务指定时间啊.
2, 操作系统凭什么来保证"在指定的时间完成指定的任务", 软件狗复位? 公司的系统是, 启动一个低优先级任务, 如果5分钟之内从来没执行该任务, 就复位, 我想, 这不是保证"实时"的办法.
3, 任务调度:基于优先级的抢占式调度, 处于就绪态的最高优先级任务一直运行. 那么, 还要不要多任务并行了? 还怎么让其他的任务在指定的时间内完成?
可能有些词不达义, 但大家应该能明白我的意思了.
30分一个.
|
1.其实指的是规定的时间内得到响应处理,这可以通过定制任务在优先级来达到,优先级高的响应时间会相太短,优先级低的可能会响应时间长一点。如果在很快的时间内能够得到响应就应该认为这个事件能在规定时间处理完,当然你的CPU性能不能太差。
2.软件狗是为了检测你的系统是不是因为跑飞或是高负荷了,原理是这样,软件狗任务都是一个低优先级的任务,只要得这个任务得到运行就会加一个计数什么的。然后系统会定时检查这个计数来判断这个任务是否得到了执行.如果查得没有执行就说明你这个任务一直没有得到执行,说明你的系统要么高负荷了,要么就是阻塞到哪了,反正就是你的系统运行已经不正常了。于是就会产生一个中断,系统对这个中断的处理就是复位整个系统。
3.高优先的任务肯定要选得到CPU的执行,但你要明白,高优先的任务就并不会一直占着CPU,因为CPU很快会把高优先级任务执行完,在高优先级任务再就绪前的时间里就可以去执行低优先级的任务了。CPU速度是很快的。
2.软件狗是为了检测你的系统是不是因为跑飞或是高负荷了,原理是这样,软件狗任务都是一个低优先级的任务,只要得这个任务得到运行就会加一个计数什么的。然后系统会定时检查这个计数来判断这个任务是否得到了执行.如果查得没有执行就说明你这个任务一直没有得到执行,说明你的系统要么高负荷了,要么就是阻塞到哪了,反正就是你的系统运行已经不正常了。于是就会产生一个中断,系统对这个中断的处理就是复位整个系统。
3.高优先的任务肯定要选得到CPU的执行,但你要明白,高优先的任务就并不会一直占着CPU,因为CPU很快会把高优先级任务执行完,在高优先级任务再就绪前的时间里就可以去执行低优先级的任务了。CPU速度是很快的。
|
啊。。。刚才回复的都丢了,该死的CSDN,这下懒了,不愿意敲太多了。
1. “实时”操作系统在“指定时间”内完成“中断任务”,这才是“实时”与“非实时”的分别。这个特性不是针对普通任务的,别弄错了。
2. 指定的时间完成指定的任务,除了“中断任务”是操作系统从设计机制上确保的,中断是可以抢占CPU的。
其他就是应用上以“定时器”来实现了。不过定时器,始终是有误差的,使用定时器的任务也是普通任务,有可能会被高优先级的任务抢占。
你们公司的系统实现的有点奇怪,与“实时操作系统”无关,至少我没看出来。
3. 既然有了“多任务”的操作系统,那么就不会存在你说的问题。即使是优先级最高的任务,也不可能“一直”运行。系统通过时间片进行调度,即使是优先级最低的任务也会得到运行机会。无非是在一段时间内,优先级高的得到的运行机会多而已。
1. “实时”操作系统在“指定时间”内完成“中断任务”,这才是“实时”与“非实时”的分别。这个特性不是针对普通任务的,别弄错了。
2. 指定的时间完成指定的任务,除了“中断任务”是操作系统从设计机制上确保的,中断是可以抢占CPU的。
其他就是应用上以“定时器”来实现了。不过定时器,始终是有误差的,使用定时器的任务也是普通任务,有可能会被高优先级的任务抢占。
你们公司的系统实现的有点奇怪,与“实时操作系统”无关,至少我没看出来。
3. 既然有了“多任务”的操作系统,那么就不会存在你说的问题。即使是优先级最高的任务,也不可能“一直”运行。系统通过时间片进行调度,即使是优先级最低的任务也会得到运行机会。无非是在一段时间内,优先级高的得到的运行机会多而已。
|
是的,实时系统是指在可预知的时间内能对外部事件及时响应,可分为硬实时系统与软实时系统两种。 对于LZ所说的“从来没见要为一个任务指定时间”,这是硬实时系统的主要性能,由于实时系统时间可以预知的,所以“指定时间”应该作为此系统的整体性能出现,而不是你理解的在任务的某处定义的一个时间值,一般从产品的参数中可以找到,实际中硬实时系统的应用如:一个电力控制器,要求在1MS内对电网的异常作出反应,这就是硬实时系统的一个典型的应用,如果在这个指定的时间内没有反应,可能有引起整个电网瘫痪的可能。
LZ 所说的不是实时系统的特征,只是在嵌入式系统中保证系统不会由于程序走飞,使系统在长时间内不能正常运行而采取的一个极端措施。保证系统实时性需要很多措施,这也是实时系统研究的东西,包括:调度、终端处理、进程优先级、非MMU内存管理等等很多方面。
对于硬实时系统,如果优先级高的任务需要一直运行,就不可能给低优先级任务运行的机会,在软实时系统中,一般优先级高的任务比低优先级任务能获得更多的CPU时间,低优先级任务也有机会运行,主要取决于调度算法。