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

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

求解答!!
...全文
2593 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
秦伟H 2013-11-19
  • 打赏
  • 举报
回复
引用 2 楼 dizuo 的回复:
第一次听说os还有实时之说。。。 实时对应的应该是离线 ^_^
第一次听说OS没有实时
jackyjkchen 2011-09-07
  • 打赏
  • 举报
回复
VxWorks就是实时系统

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

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

通常的通用操作系统Windows和Linux都叫分时操作系统,一般采用公平调度算法,线程/进程一多就得分享CPU时间,Linux下有针对“实时进程”的调度,调度算法和普通进程不一样,但也只是相对的响应时间降低而已,类似的Windows下的“实时”优先级,也只不过是最高优先级,而不是真正的实时
许文君 2011-09-07
  • 打赏
  • 举报
回复
我见了不少厂家卖弄这个概念,其实也就是取得最高优先级。
zhouzhipen 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 jennyvenus 的回复:]
一律百度百科之。
[/Quote]
就是因为看了,有不明白的地方,所以来这请教了。
用户 昵称 2011-09-07
  • 打赏
  • 举报
回复
一律百度百科之。
用户 昵称 2011-09-07
  • 打赏
  • 举报
回复
一律百度百科之。
shenyi0106 2011-09-07
  • 打赏
  • 举报
回复
实时:相应你的一次请求的时间是可以预知的
非实时:由于抢占式的线程调度方式,相应请求的时间是不确定的,可能是10ms,也可能是100ms,也可能是1000ms(以上数据只是为了打个比方,切勿对号入座)

究其原因:处理机的调度方式不同
zhouzhipen 2011-09-07
  • 打赏
  • 举报
回复

[Quote=引用 16 楼 smwhotjay 的回复:]
哪些特性决定了它不是实时操作系统.
1.线程时间片分配不确定嘛.
2.io时间的不确定性. 你读硬盘文件.时间有长有短吧.有时还没响应.无法预测!所以是非实时的os.
[/Quote]
难道实时操作系统能确定这些时间?硬件等待时间也能确定?应该不可能吧!
觉得下面这们兄弟所说的我比较认同
[Quote=引用 12 楼 bokutake 的回复:]
真正的实时操作系统内核是可中断可抢占的。而非实时的操作系统通常在执行内核功能时是不可中断的,Linux是软实时的,它在内核中加入了若干可中断点,而不是任何时候都允许中断。
也就是只要指定了时间或发生了高优先级时间,无论任何操作,必须立刻中断,即使内核也是如此。
这样对内核的设计就要求很高。
有的第三方的硬实时基于Linux的实现一般都是将Linux内核作为一个任务,由另外的实时OS内核进行调……
[/Quote]
smwhotjay 2011-09-07
  • 打赏
  • 举报
回复
哪些特性决定了它不是实时操作系统.
1.线程时间片分配不确定嘛.
2.io时间的不确定性. 你读硬盘文件.时间有长有短吧.有时还没响应.无法预测!所以是非实时的os.
叶落寒山 2011-09-07
  • 打赏
  • 举报
回复
实时操作系统就是:执行一个功能的时间是可预测的 ,意思指的是实时操作系统的时间片轮转是可控的,可预测的。
龙行天下之Sky 2011-09-07
  • 打赏
  • 举报
回复
实时操作系统是抢占式操作系统,如果你的进程优先级高,则肯定第一个得到执行,直至结束执行,中间的时间通过CPU频率等可以推算出来。
Windows的内核是不可抢占的,所以它不是实时操作系统。Linux是软实时的,内核中仍然有大量不可抢占区域。
辰岡墨竹 2011-09-07
  • 打赏
  • 举报
回复
Windows的内核是不可抢占的,所以它不是实时操作系统。Linux是软实时的,内核中仍然有大量不可抢占区域。
实时操作系统的设计目标在于对软硬件时间的相应,要求最小时限的响应。但是这种设计往往要牺牲系统的吞吐量。
辰岡墨竹 2011-09-07
  • 打赏
  • 举报
回复
真正的实时操作系统内核是可中断可抢占的。而非实时的操作系统通常在执行内核功能时是不可中断的,Linux是软实时的,它在内核中加入了若干可中断点,而不是任何时候都允许中断。
也就是只要指定了时间或发生了高优先级时间,无论任何操作,必须立刻中断,即使内核也是如此。
这样对内核的设计就要求很高。
有的第三方的硬实时基于Linux的实现一般都是将Linux内核作为一个任务,由另外的实时OS内核进行调度。
善良超锅锅 2011-09-06
  • 打赏
  • 举报
回复
我是来学习的
半兽人写程序 2011-09-06
  • 打赏
  • 举报
回复
任务调度 内存管理 都不一样。
zhegemeibanfa 2011-09-06
  • 打赏
  • 举报
回复
Mark下,待研究
wltg2001 2011-09-06
  • 打赏
  • 举报
回复
我映像中实时操作系统是指对时间控制更精确的,更及时的,一般用于工业控制中的系统。
AnYidan 2011-09-06
  • 打赏
  • 举报
回复
实时只是相对
Eleven 2011-09-06
  • 打赏
  • 举报
回复
http://baike.baidu.com/view/18308.htm
qjgdftxmu 2011-09-06
  • 打赏
  • 举报
回复
对硬件端口进行读取也能确定时间?

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

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧