一、嵌入式操作系统
嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面等。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
二、实时操作系统(RTOS)
1、概念
实时操作系统是保证在一定限制时间内完成特定功能的操作系统。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时只要按照任务的优先级,尽可能快地完成操作即可。
2、相关概念
代码临界段:指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入;
资源:任何为任务所占用的实体;
共享资源:可以被一个以上任务使用的资源;
任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态;
任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行;
内核:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型内核和可剥夺型内核;
调度:内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法;
3、优先级的问题
任务优先级:分为优先级不可改变的静态优先级和优先级可改变的动态优先级;
优先级反转:优先级反转问题是实时系统中出现最多的问题。共享资源的分配可导致优先级低的任务先运行,优先级高的任务后运行。解决的办法是使用“优先级继承”算法来临时改变任务优先级,以遏制优先级反转。
三、Freertos 操作系统
1、简介
FreeRTOS 是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、软件定时器等,可满足较小系统的需求。
2、原理与实现
任务调度机制是嵌入式实时操作系统的一个重要概念,也是其核心技术。对于可剥夺型内核,优先级高的任务一旦就绪就能剥夺优先级较低任务的 CPU 使用权,提高了系统的实时响应能力。不同于 μC/OS-II,FreeRTOS 对系统任务的数量没有限制,既支持优先级调度算法也支持轮换调度算法,因此 FreeRTOS 采用双向链表而不是采用查任务就绪表的方法来进行任务调度。
四、Linux(操作系统)
1、简介
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。
2、基本思想
Linux 基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。
五、Linux 和 FreeRTOS操作系统的区别(面试中被问到)
FreeRTOS 是实时操作系统;
Linux 是分时系统,不过可以配制内核改成实时系统。