由于嵌入式实时操作系统与通用操作系统的基本设计原则差别很大,因此在很多资源调度策略的选择上以及操作系统实现的方法上两者都具有较大的差异,这些差异主要体现在以下几点:
(1) 任务调度策略:
通用操作系统中的任务调度策略一般采用基于优先级的抢先式调度策略,对于优先级相同的进程则采用时间片轮转调度方式,用户进程可以通过系统调用动态地调整自己的优先级,操作系统也可根据情况调整某些进程的优先级。
嵌入式实时操作系统中的任务调度策略目前使用最广泛的主要可分为两种,一种是静态表驱动方式,另一种是固定优先级抢先式调度方式。
(2) 内存管理:
通用操作系统的虚存管理机制中由于采用了 LRU 等页替换算法,使得大部分的访存需求能够快速地通过物理内存完成。
为解决虚存给系统带来的不可预测性,实时操作系统一般采用如下两种方式:一是在原有虚存管理机制的基础上增加页面锁功能,用户可将关键页面锁定在内存中,从而不会被 swap 程序将该页面交换出内存。二是采用静态内存划分的方式,为每个实时任务划分固定的内存区域。
(3) 中断处理:
在通用操作系统中,大部分外部中断都是开启的,中断处理一般由设备驱动程序来完成。由于通用操作系统中的用户进程一般都没有实时性要求,而中断处理程序直接跟硬件设备交互,可能有实时性要求,因此中断处理程序的优先级被设定为高于任何用户进程。
但对于嵌入式实时操作系统采用上述的中断处理机制是不合适的。一个实时任务在运行时被中断处理程序阻塞的时间开销也是不可预测的,从而使任务的实时性得不到保证。
(4) 系统调用以及系统内部操作的时间开销:
为保证系统的可预测性,实时操作系统中的所有系统调用以及系统内部操作的时间开销都应是有界的,并且该界限是一个具体的量化数值。而在通用操作系统中对这些时间开销则未做如此限制。
(5) 系统的可重入性:
在通用操作系统中,核心态系统调用往往是不可重入的,当一低优先级任务调用核心态系统调用时,在该时间段内到达的高优先级任务必须等到低优先级的系统调用完成才能获得 CPU,这就降低了系统的可预测性。因此,嵌入式实时操作系统中的核心态系统调用往往设计为可重入的。
嵌入式的这两种操作系统都有他们的用处,依靠嵌入式操作系统软件移植性大大提高网络协议更加丰富应用功能块逻辑清晰代码易读还能提供众多的开源工具、库以及软件。
好了,由于时间关系,就和大家分享这些的知识点了,如果你有网络百度推广、app开发、小程序开发,装修,营销策划等需要,欢迎到一品威客网发布任务,让服务商为您服务。
交易额: 186.79万元
无 |河南省 |洛阳市 |洛龙区
交易额: 151.77万元
无 |浙江省 |台州市 |玉环县
交易额: 128.29万元
工作室 |广东省 |深圳市 |南山区
交易额: 110.67万元
公司 |浙江省 |温州市 |瓯海区
成为一品威客服务商,百万订单等您来有奖注册中
价格是多少?怎样找到合适的人才?
¥20000 已有2人投标
¥3000 已有0人投标
¥3000 已有0人投标
¥3000 已有1人投标
¥100 已有0人投标
¥1000 已有5人投标
¥5000 已有0人投标
¥20000 已有2人投标