实时操作系统与微内核


一、操作系统

1. 实时操作系统

实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。

原则:实时操作系统注重单个任务的响应时间,需要在指定时间内完成关键行为。

举例:uCOS/FreeRTOS/ThreadX/VxWorks/RTLinux

调度方式:基于任务优先级的调度方式,一旦内核把资源分配给某进程后,便让该进程一直执行,直到该进程完成或发生某事件而被阻塞(常见的方式主动调用delay),才再把处理机分配给其他进程,否则高优先级的任务会一直运行。所以这种情况下,如果某个高优先级的任务运行时间过长最好有阻塞机制,来让出CPU使其他低优先级的任务也有机会运行。同时也存在基于时间片调度方式,如FreeRTOS系统也有时间片调度模式,当几个任务的优先级相同时,会按照时间片来管理,在优先级相同的任务间切换运行。

当优先级更高的任务就绪时,即便低优先级任务正在运行中,也必须立刻交出CPU的使用权来执行高优先级任务,等到高优先级任务执行完或者主动挂起/让出CPU的时候,低优先级任务才能继续运行。

2. 非实时操作系统

通常的通用操作系统Windows和Linux都叫分时操作系统,一般采用公平调度算法,线程/进程一多就得分享CPU时间,Linux下有针对“实时进程”的调度,调度算法和普通进程不一样,但也只是相对的响应时间降低而已,类似的Windows下的“实时”优先级,也只不过是最高优先级,而不是真正的实时。

原则:非实时操作系统期望缩短任务的平均响应时间并提高系统的吞吐率,从而尽可能为更多请求提供服务。

举例:Linux/Windows/Android

调度方式:基于时间片的调度方式,这种方式下,所有任务的优先级相同,当内核给该进程分配的时间片结束后,内核会停止正在执行的这个进程,下一个时间片分配给其他进程执行,即便这个任务没有执行完也没有主动delay自己。

这种基于时间片轮转的非实时操作系统中,CPU是不可抢占的。即便高优先级的任务就绪了,也不能马上中断低优先级任务而得到执行,必须要等到低优先级任务主动挂起/让出或者该任务的时间片结束才能得到执行。所以我们在使用PC的时候经常会遇到应用程序无响应的问题,就是硬件资源被其他任务占用导致本任务得不到立即执行。

二、操作系统内核

1.微内核

内核管理着所有的系统资源,在微内核中用户服务和内核服务在不同的地址空间中实现。在应用程序和硬件的通信中,内核进程和内存管理的极小的服务,而客户端程序和运行在用户空间的服务通过消息的传递来建立通信,它们之间不会有直接的交互。

缺点:当一个应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理、存储管理、设备管理,这时候微内核的劣势就出来了,它需要频繁的在用户态和内核态之间交换。每一次变态的过程都是有成本的,要消耗不少时间,频繁地变态会降低系统性能,这也就是我们常说微内核的运行效率低的原因所在。

优点:在内核架构中,用户服务是独立于内核服务的,因此任何用户服务崩溃都不会影响到内核服务,这就加强了操作系统的健壮性。添加一个功能,只需要建立一个新的服务到用户空间当中,而内核空间不需要任何的修改,因此微内核可移植性强、安全并且易于扩展。

2.宏内核

宏内核同样管理着用户程序和硬件之间的系统资源,但是和微内核不一样的是,在宏内核架构中,用户服务和内核服务在同一空间中实现。内核可以代表内核进程运行代码,而当用户进程经过系统调用或者中断进入到内核态时,内核也可以代表它运行代码。

缺点:宏内核需要管理的资源多于微内核,其大小就相对庞大,在一些嵌入式设备中是难以接受的。当内核中的某个服务崩溃了,整个内核也会崩溃。在内核中添加新的功能就意味着内核中的各个模块需要做相应的修改,因此其扩展性很弱。

优点:在宏内核架构当中,内核管理着CPU调度,内存管理,文件管理和系统调用等各模块的的工作,由于用户服务和内核服务被实现在同一空间中,这样在执行速度上要比微内核快。

在这里插入图片描述

3. 其它区别

微内核和宏内核在设计上还存在一些其它的区别,比方IO管理方面,宏内核的设备驱动直接在内核中实现,硬件中断也直接在内核中处理。但是在微内核中,内核是不直接处理IO中断管理的,来自硬件的请求将被重定向到用户服务中去,比方内核捕获了一个中断,那么内核发送给设备驱动服务就完事了,设备驱动服务会去处理这个中断。


以上内容来源于网络知识总结,如有侵权请私信联系立即删除:)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值