RTEMS与通用操作系统的不同点总结

47 篇文章 26 订阅
4 篇文章 0 订阅

RTEMS基于典型的实时操作系统涉及思路,与典型的通用操作系统(UNIX,windows)等差别很大。

一、系统调用方面

系统调用是应用程序访问操作系统的接口,通用操作系统中,操作系统与应用程序处于两个不同的CPU特权态,操作系统处于核心态,应用程序处于用户态,核心态可执行CPU特权指令,用户态不行。这保证了系统整体的安全。而RTEMS没有用户态和核心态,其内核与应用程序是简单的调用关系,且应用关系和RTEMS内核都处于核心态,这样的好处是执行速度快,但安全性削弱。


二、内存管理方面

通用系统采用虚拟内存管理方式,这样可以让内存需求超过实际物理内存的进程/线程能够执行,而且可以实现对不同内存区域的保护,不同进程的地址空间不能互相访问,且应用程序不能直接访问内核地址空间,所以一个错误的应用程序不会导致系统崩溃,增加了可靠性,但由于访问耳机存储,导致内存访问的时间无法满足实时性要求。而RTEMS没有采用虚拟内存管理,而是简单的单一地址空间管理方式,这样应用程序与操作系统在同一地址空间,好处是确保了内存访问的确定性和实时性,而且避免内存管理和地址切换的开销。但安全性削弱,一旦应用程序发生错误,系统容易崩溃,在内存的分配和释放的管理上,RTEMS实现相对简单,主要有固定分区分配和可变分区分配等,在可变分区分配上主要采用首次适配算法,容易产生内存碎片,但实时性高。


三、进程/线程管理方面

当前通用操作系统采用进程和线程相结合的管理方式,进程代表一个应用程序执行的过程,进程的执行流用线程来表示,一个进程包含多个线程。而RTEMS没有进程的概念,只有线程,称之为task,RTEMS的线程共享程序和内核所拥有的整个地址空间,可以把应用程序和RTEMS内核理解为一个特殊的进程,这个进程中,所有线程共享资源。在设计调度算法,同步互斥算法和线程间通信方面会更为简单。


四、在I/O管理方面

RTEMS与类UNIX操作系统差别不是很大,都是把设备看做一种特殊的设备文件。在灵活性方面,RTEMS驱动程序不能像通用操作系统那也动态加载,而是在编译时就静态确定的,这是RTOS普遍存在的问题。


总结:

简单来说,RTEMS是一个基于扁平内存管理的层次型单体内核,应用程序与RTEMS内核形成一个基于函数调用形式的整体功能单元,在一个地址空间下协同完成功能。对于通用操作系统,应用程序和操作系统是处于不同的特权状态和地址空间,前者运行在CPU的用户态,无直接访问系统硬件和操作系统的系统数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值