嵌入式领域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的调度粒度,对于许多实时系统来说,通常需要做微秒级的响应,这种调度精度很难满足实时系统对系统响应速度的要求。

转载于:https://www.cnblogs.com/pd520/archive/2013/03/21/2974305.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值