实时操作系统与非实时操作系统到底有什么区别?

时间:2022-07-15 15:44:53
这个问题一直没搞明白,按资料上所说“实时操作系统就是:执行一个功能的时间是可预测的”,难道对硬件端口进行读取也能确定时间?读取一个网络数据也能事先知道会用多久时间?
常说WINDOWS不是实时性系统,那又有哪些特性决定了它不是实时操作系统呢?

求解答!!

23 个解决方案

#1


没人??

#2


第一次听说os还有实时之说。。。
实时对应的应该是离线 ^_^

#3


http://baike.baidu.com/view/18308.htm

#4


对硬件端口进行读取也能确定时间?

这所谓的功能是指子功能吧,你不能把整个读取硬件也当作一个功能吧?
如果分解一下,除去等待时间,其各子功能的执行时间肯定是能确定的

#5


http://baike.baidu.com/view/18308.htm

#6


实时只是相对

#7


我映像中实时操作系统是指对时间控制更精确的,更及时的,一般用于工业控制中的系统。

#8


Mark下,待研究

#9


任务调度 内存管理 都不一样。

#10


我是来学习的

#11


VxWorks就是实时系统

其实就是要求你对他的请求,他得在一定时限内给你结果,而不能因为系统忙或调度算法的原因拖沓

时限要求高的是硬实时,时限要求低的是软实时

通常的通用操作系统Windows和Linux都叫分时操作系统,一般采用公平调度算法,线程/进程一多就得分享CPU时间,Linux下有针对“实时进程”的调度,调度算法和普通进程不一样,但也只是相对的响应时间降低而已,类似的Windows下的“实时”优先级,也只不过是最高优先级,而不是真正的实时

#12


真正的实时操作系统内核是可中断可抢占的。而非实时的操作系统通常在执行内核功能时是不可中断的,Linux是软实时的,它在内核中加入了若干可中断点,而不是任何时候都允许中断。
也就是只要指定了时间或发生了高优先级时间,无论任何操作,必须立刻中断,即使内核也是如此。
这样对内核的设计就要求很高。
有的第三方的硬实时基于Linux的实现一般都是将Linux内核作为一个任务,由另外的实时OS内核进行调度。

#13


Windows的内核是不可抢占的,所以它不是实时操作系统。Linux是软实时的,内核中仍然有大量不可抢占区域。
实时操作系统的设计目标在于对软硬件时间的相应,要求最小时限的响应。但是这种设计往往要牺牲系统的吞吐量。

#14


实时操作系统是抢占式操作系统,如果你的进程优先级高,则肯定第一个得到执行,直至结束执行,中间的时间通过CPU频率等可以推算出来。
Windows的内核是不可抢占的,所以它不是实时操作系统。Linux是软实时的,内核中仍然有大量不可抢占区域。

#15


实时操作系统就是:执行一个功能的时间是可预测的 ,意思指的是实时操作系统的时间片轮转是可控的,可预测的。

#16


哪些特性决定了它不是实时操作系统.
1.线程时间片分配不确定嘛. 
2.io时间的不确定性. 你读硬盘文件.时间有长有短吧.有时还没响应.无法预测!所以是非实时的os.

#17



引用 16 楼 smwhotjay 的回复:
哪些特性决定了它不是实时操作系统.
1.线程时间片分配不确定嘛. 
2.io时间的不确定性. 你读硬盘文件.时间有长有短吧.有时还没响应.无法预测!所以是非实时的os.

难道实时操作系统能确定这些时间?硬件等待时间也能确定?应该不可能吧!
觉得下面这们兄弟所说的我比较认同
引用 12 楼 bokutake 的回复:
真正的实时操作系统内核是可中断可抢占的。而非实时的操作系统通常在执行内核功能时是不可中断的,Linux是软实时的,它在内核中加入了若干可中断点,而不是任何时候都允许中断。
也就是只要指定了时间或发生了高优先级时间,无论任何操作,必须立刻中断,即使内核也是如此。
这样对内核的设计就要求很高。
有的第三方的硬实时基于Linux的实现一般都是将Linux内核作为一个任务,由另外的实时OS内核进行调……

#18


实时:相应你的一次请求的时间是可以预知的
非实时:由于抢占式的线程调度方式,相应请求的时间是不确定的,可能是10ms,也可能是100ms,也可能是1000ms(以上数据只是为了打个比方,切勿对号入座)

究其原因:处理机的调度方式不同

#19


一律百度百科之。

#20


一律百度百科之。

#21


引用 20 楼 jennyvenus 的回复:
一律百度百科之。

就是因为看了,有不明白的地方,所以来这请教了。

#22


我见了不少厂家卖弄这个概念,其实也就是取得最高优先级。

#23


引用 2 楼 dizuo 的回复:
第一次听说os还有实时之说。。。
实时对应的应该是离线 ^_^

第一次听说OS没有实时

#1


没人??

#2


第一次听说os还有实时之说。。。
实时对应的应该是离线 ^_^

#3


http://baike.baidu.com/view/18308.htm

#4


对硬件端口进行读取也能确定时间?

这所谓的功能是指子功能吧,你不能把整个读取硬件也当作一个功能吧?
如果分解一下,除去等待时间,其各子功能的执行时间肯定是能确定的

#5


http://baike.baidu.com/view/18308.htm

#6


实时只是相对

#7


我映像中实时操作系统是指对时间控制更精确的,更及时的,一般用于工业控制中的系统。

#8


Mark下,待研究

#9


任务调度 内存管理 都不一样。

#10


我是来学习的

#11


VxWorks就是实时系统

其实就是要求你对他的请求,他得在一定时限内给你结果,而不能因为系统忙或调度算法的原因拖沓

时限要求高的是硬实时,时限要求低的是软实时

通常的通用操作系统Windows和Linux都叫分时操作系统,一般采用公平调度算法,线程/进程一多就得分享CPU时间,Linux下有针对“实时进程”的调度,调度算法和普通进程不一样,但也只是相对的响应时间降低而已,类似的Windows下的“实时”优先级,也只不过是最高优先级,而不是真正的实时

#12


真正的实时操作系统内核是可中断可抢占的。而非实时的操作系统通常在执行内核功能时是不可中断的,Linux是软实时的,它在内核中加入了若干可中断点,而不是任何时候都允许中断。
也就是只要指定了时间或发生了高优先级时间,无论任何操作,必须立刻中断,即使内核也是如此。
这样对内核的设计就要求很高。
有的第三方的硬实时基于Linux的实现一般都是将Linux内核作为一个任务,由另外的实时OS内核进行调度。

#13


Windows的内核是不可抢占的,所以它不是实时操作系统。Linux是软实时的,内核中仍然有大量不可抢占区域。
实时操作系统的设计目标在于对软硬件时间的相应,要求最小时限的响应。但是这种设计往往要牺牲系统的吞吐量。

#14


实时操作系统是抢占式操作系统,如果你的进程优先级高,则肯定第一个得到执行,直至结束执行,中间的时间通过CPU频率等可以推算出来。
Windows的内核是不可抢占的,所以它不是实时操作系统。Linux是软实时的,内核中仍然有大量不可抢占区域。

#15


实时操作系统就是:执行一个功能的时间是可预测的 ,意思指的是实时操作系统的时间片轮转是可控的,可预测的。

#16


哪些特性决定了它不是实时操作系统.
1.线程时间片分配不确定嘛. 
2.io时间的不确定性. 你读硬盘文件.时间有长有短吧.有时还没响应.无法预测!所以是非实时的os.

#17



引用 16 楼 smwhotjay 的回复:
哪些特性决定了它不是实时操作系统.
1.线程时间片分配不确定嘛. 
2.io时间的不确定性. 你读硬盘文件.时间有长有短吧.有时还没响应.无法预测!所以是非实时的os.

难道实时操作系统能确定这些时间?硬件等待时间也能确定?应该不可能吧!
觉得下面这们兄弟所说的我比较认同
引用 12 楼 bokutake 的回复:
真正的实时操作系统内核是可中断可抢占的。而非实时的操作系统通常在执行内核功能时是不可中断的,Linux是软实时的,它在内核中加入了若干可中断点,而不是任何时候都允许中断。
也就是只要指定了时间或发生了高优先级时间,无论任何操作,必须立刻中断,即使内核也是如此。
这样对内核的设计就要求很高。
有的第三方的硬实时基于Linux的实现一般都是将Linux内核作为一个任务,由另外的实时OS内核进行调……

#18


实时:相应你的一次请求的时间是可以预知的
非实时:由于抢占式的线程调度方式,相应请求的时间是不确定的,可能是10ms,也可能是100ms,也可能是1000ms(以上数据只是为了打个比方,切勿对号入座)

究其原因:处理机的调度方式不同

#19


一律百度百科之。

#20


一律百度百科之。

#21


引用 20 楼 jennyvenus 的回复:
一律百度百科之。

就是因为看了,有不明白的地方,所以来这请教了。

#22


我见了不少厂家卖弄这个概念,其实也就是取得最高优先级。

#23


引用 2 楼 dizuo 的回复:
第一次听说os还有实时之说。。。
实时对应的应该是离线 ^_^

第一次听说OS没有实时