嵌入式实时操作系统用什么来保证实时性?

时间:2022-05-07 08:09:22
嵌入式实时操作系统用什么来保证实时性?

1.自身实现上有什么要求?有啥指标必须实现。

2.要提高实时性,那些地方必须做的和一般OS不同?比如中断、时钟啥的。。

4 个解决方案

#1


适时分软适时和硬适时。一般是指硬适时。
也就是响应一个事件,比如中断和任务调度要能够按照预期的及时进行。
当然这个及时肯定也是相对的概念,在系统处理能力足够的情况下进行,而不是发生一些不确定的因素和延迟。

所以,从操作系统上看,中断 任务调度 函数调用等有延迟的操作中,要精心处理,做到及时响应。
一般主要在任务调度上有本质区别。可以看看相关的细节

#2


实时内核中进程分不同的优先级,最高优先级优先占有CPU时间片,只有当高优先级睡眠时低优先级的进程才占有时间片,一旦高优先级任务唤醒马上又占有CPU时间片。非实时内核像linux和windows,它是时间片轮询算法,进程优先级不是调度的核心。

实时内核中断的响应比非实时内核要迅速。

实时系统可分为两类:

(1) 硬实时系统:要求可确定性强,具有明确的实时约束,在某个限定的时刻之前不能完成任务将造成灾难性的后果。

(2) 软实时系统:也对时间敏感,但偶尔发生不能满足严格实时要求的情况也是允许的。

#3


引用 2 楼  的回复:
实时内核中进程分不同的优先级,最高优先级优先占有CPU时间片,只有当高优先级睡眠时低优先级的进程才占有时间片,一旦高优先级任务唤醒马上又占有CPU时间片。非实时内核像linux和windows,它是时间片轮询算法,进程优先级不是调度的核心。

实时内核中断的响应比非实时内核要迅速。

实时系统可分为两类:

(1) 硬实时系统:要求可确定性强,具有明确的实时约束,在某个限定的时刻之前……


你说进程优先级不是调度的核心,这个感觉与应用关系比较密切,window和linux也提供多优先级,只是大多数应用都是用相同优先级,所以显得优先级不是核心,但这不是OS方面本质的区别。

除了中断响应时间还能在别的哪些指标?

#4


linux windows本来是通用操作系统,不是适时操作系统,所以设计初是宏内核,本着公平的原则,虽然用户可以设计任务优先级,但操作系统会根据每个任务的运行时间,自动调整每个任务占用CPU的时间,这样使每个任务都能公平的占用cpu.

这样用户设计的任务和优先级,就不能本着紧急等情况进行预期的处理。
适时操作系统一般是微内核,本质抢占优先级的原则,能够确定的去执行用户设计的任务调度,保证按照用户设计所想来进行。
只有响应速度,延迟等这些细节处理,肯定越小越好,不是本质的东西。

#1


适时分软适时和硬适时。一般是指硬适时。
也就是响应一个事件,比如中断和任务调度要能够按照预期的及时进行。
当然这个及时肯定也是相对的概念,在系统处理能力足够的情况下进行,而不是发生一些不确定的因素和延迟。

所以,从操作系统上看,中断 任务调度 函数调用等有延迟的操作中,要精心处理,做到及时响应。
一般主要在任务调度上有本质区别。可以看看相关的细节

#2


实时内核中进程分不同的优先级,最高优先级优先占有CPU时间片,只有当高优先级睡眠时低优先级的进程才占有时间片,一旦高优先级任务唤醒马上又占有CPU时间片。非实时内核像linux和windows,它是时间片轮询算法,进程优先级不是调度的核心。

实时内核中断的响应比非实时内核要迅速。

实时系统可分为两类:

(1) 硬实时系统:要求可确定性强,具有明确的实时约束,在某个限定的时刻之前不能完成任务将造成灾难性的后果。

(2) 软实时系统:也对时间敏感,但偶尔发生不能满足严格实时要求的情况也是允许的。

#3


引用 2 楼  的回复:
实时内核中进程分不同的优先级,最高优先级优先占有CPU时间片,只有当高优先级睡眠时低优先级的进程才占有时间片,一旦高优先级任务唤醒马上又占有CPU时间片。非实时内核像linux和windows,它是时间片轮询算法,进程优先级不是调度的核心。

实时内核中断的响应比非实时内核要迅速。

实时系统可分为两类:

(1) 硬实时系统:要求可确定性强,具有明确的实时约束,在某个限定的时刻之前……


你说进程优先级不是调度的核心,这个感觉与应用关系比较密切,window和linux也提供多优先级,只是大多数应用都是用相同优先级,所以显得优先级不是核心,但这不是OS方面本质的区别。

除了中断响应时间还能在别的哪些指标?

#4


linux windows本来是通用操作系统,不是适时操作系统,所以设计初是宏内核,本着公平的原则,虽然用户可以设计任务优先级,但操作系统会根据每个任务的运行时间,自动调整每个任务占用CPU的时间,这样使每个任务都能公平的占用cpu.

这样用户设计的任务和优先级,就不能本着紧急等情况进行预期的处理。
适时操作系统一般是微内核,本质抢占优先级的原则,能够确定的去执行用户设计的任务调度,保证按照用户设计所想来进行。
只有响应速度,延迟等这些细节处理,肯定越小越好,不是本质的东西。