百科问答小站 logo
百科问答小站 font logo



Linux 为什么不是实时操作系统? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

调度器的实时性不等于操作系统的实时性。

举个最简单的例子:

实时性的调度时间是确定的,但如果某任务调度过程中,发生了缺页中断,那么此时需要从磁盘上读取数据,这个过程就是完全不确定的,也不是实时的。所以实时系统里是不能有虚拟内存的,在这方面Linux的软实时设计就完全不适用。

实时系统=实时调度模型+整个操作系统的实时设计(主要是驱动)。

具体表现为:网络、文件系统、设备驱动的设计都是实时的。一个高优先级的任务发起的文件系统请求、网络请求,就应该优先调度,而不是使用缓存等方式排队调度。

设计一个实时调度器非常容易(算法其实不复杂),但要把整个系统里的所有驱动都改成实时的,这样的工作量就非常巨大了,Linux也不可能这么做,这么做的代价很高,并且严重影响系统效率。与很多人的理解相反:实时系统不是一个“快速系统”,由于实时系统的调度特性,实际上实时系统比Linux这种桌面系统的性能要差。

当然了,软实时和硬实时的使用场景不一样,如果应用场景对实时性要求不是那么的严格,软实时也是可以的。


补充一些破坏实时性的设计:

虚拟内存(页面文件):加载时间不确定,延迟太大;
线程池:当请求的任务数量大于线程池的数量时,优先级调度就可能会被破坏;
文件系统缓存:主要是延迟写入、延迟关闭这些,都会破坏实时性原则;
网络报文队列:除非这个队列支持插队的设计,否则就不是一个实时的网络。




  

相关话题

  如何看待 Apple Mac 将无法支持最新微软 Windows 11 操作系统? 
  如何看待微软公开 exFAT 文件系统细节,并宣布向 Linux 开源? 
  Fuchsia OS可以从Cast OS保留数据升级,是否说明Fuchsia只是Linux套壳? 
  进程的堆栈区和%esp的堆栈是否是一个概念? 
  为什么启用AHCI还要分装系统前和装系统后? 
  华为要怎么做才能打破“鸿蒙OS套壳安卓”的言论? 
  有数据称机械专业毕业生现收入最高,超过计算机专业,实际情况如何?高考志愿该怎么填? 
  为什么1KB等于1024B? 
  为什么计算机专业的人想转金融,而金融专业的想转计算机? 
  为什么 Windows 不提供内存文件系统? 

前一个讨论
x86架构字节序是小端模式,其bit位序是类似小端模式还是大端模式?
下一个讨论
嵌入式设备使用NandFlash作为存储,那么不使用文件系统是否可行?





© 2025-06-18 - tinynew.org. All Rights Reserved.
© 2025-06-18 - tinynew.org. 保留所有权利