zoukankan      html  css  js  c++  java
  • 嵌入式领域linux作为实时操作系统的缺点

    linux以自由和开发源码赢得了许多工程师的青睐,现在许多嵌入式产品使用的是linux系统,然而linux内核作为实时操作系统有非常,明显的几个缺点

    1.任务调度的缺点

          Linux最初的设计预想是设计一个通用的操作系统内核,尽量缩短系统的平均响应时间,在单位时间内位尽可能多的用户请求提供服务;在设计上并没有太考虑实时性的需要,而是在分时操作系统基础上发展而来,linux内核在任务调度上实现的是一种几乎公平的分配任务时间,在特殊场合下linux内核在任务调度上实现的是一种几乎公平的分配任务时间,在特殊场合下Linux内核很难满足系统在响应时间和优先级上的要求。

          Linux内核作为实时操作系统的一个最大缺点就是:Linux在用户态支持可抢占调度策略,而在核心太却不支持抢占式调度策略,比如:linux在运行一个低优先级别的核心态任务,而此时又有一些优先级更高的实时任务要处理,但内核不支持抢占性,只有等到正在运行的低优先级的任务执行结束后,才能运行优先级别高的任务,这样就不能保证系统对于实时性任务的响应时间,这在实时操作系统中一般是不允许发生的。

          Linux虽然给实时性进程提供可较高的优先级,但是并没有加入时间限制。例如完成的最后期限,应在多长时间内完成和执行周期等。同时,其他大量的非实时进程也可能对实时进程造成阻塞,无法确保实时进程的响应时间。

    2.中断处理的缺点

          Linux内核对于中断处理采用 Bottom Half Handling方法(详细请自己查谷歌),这种处理方法在处理中断过程中,屏蔽了系统其它中断,而且优先级别高的任务也不能抢占处理,所以linux中断句柄是不可调度的;但在实时系统中,有事期望能在一个可调度整体内处理这些中断句柄,从而能更有效地区分不同实时任务的密度,分配不同的优先级。因此,单纯采用bottom half hadling缩短时间片方法在对实时性恩能够严格要求的场合仍有些不适合。

    3.内存管理的缺点

          Linux系统采用虚拟内存管理机制,在虚拟内存中,系统会根据当前任务使用的内存情况,把一些任务或用户进程交换出内存,保持在磁盘文件系统页面上,在以后需要时,再将它们调入内存,这种方法提高了内存的使用效率,但调入过程需要花费一定的时间。这种采用时间换空间的方法,在实时应用场景下,往往造成任务的响应时间加长或有限时间内无法执行完毕。

    4.时钟精度

          Linux中硬件时钟中断的默认时间间隔是10MS,所有的软件时钟都是靠硬件来触发的。linux内核的任务调度也依靠这个时钟,时钟频率直接影响到系统响应速度和上下文切换的系统开销。最小时间片为10MS,决定了linux任务调度能提供最小10MS的调度粒度,对于许多实时系统来说,通常需要做微秒级的响应,这种调度精度很难满足实时系统对系统响应速度的要求。

  • 相关阅读:
    【转】异常处理模块
    【转】整套完整安全的API接口解决方案
    百度地图API功能集锦
    VS2015 使用Razor编写MVC视图时,Razor智能提示消失,报各种红线解决方案。
    算法初涉-解决比9*9数独更复杂的结构
    SQL时间相关
    ubuntu 安装
    dwa 设置多个目标点,倒车设计
    ros 信号周期的简单实现
    C++学习记录 第一章:初始
  • 原文地址:https://www.cnblogs.com/pd520/p/2974305.html
Copyright © 2011-2022 走看看