前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能
文章目录
一、嵌入式操作系统
嵌入式操作系统EOS (Embedded OS):指运行在嵌入式系统中,对整个嵌入式系统所操作、控制的各种资源进行协调、调度和控制的系统软件。
-
EOS负责嵌入系统的全部软、硬件资源的分配、调度,控制、协调并发活动。
-
EOS是嵌入式应用软件的基础和开发平台,是嵌入式系统极为重要的组成部分,通常包括系统内核、与硬件相关的底层驱动软件、设备驱动接口、通信协议、文件系统、图形界面等。
二、嵌入式操作系统的优缺点
优点
- 使程序的设计和扩展变得容易,大大提高了嵌入式系统开发的效率,改变了以往嵌入式软件设计只能针对具体的应用从头做起的方式。
- 充分发挥32位CPU多任务的潜力,实现多任务设计,能够充分利用硬件资源和实现资源共享。
- 实时性和健壮性能够得到更好的保证。
缺点
- 嵌入式操作系统占用ROM/RAM等额外开销,5~10%的CPU额外负荷。
- 有一定的学习门槛。
三、嵌入式操作系统
- 按应用场合分类
- 非实时操作系统:面向消费电子产品,如个人数字助理(PDA)、移动电话、机顶盒(STB)等;
- 实时操作系统(RTOS):实时系统是一种能够在指定或者确定时间内完成系统功能,并且对外部和内部事件在同步或者异步时间内能作出及时响应的系统。面向控制、通信、医疗等领域。
- 实时操作系统RTOS的特点
- 总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性,与实时应用软件相结合成为有机的整体起着核心作用,由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。IEEE 的实时UNIX分委会认为实时操作系统应具备以下的几点:
- 异步的事件响应 ,切换时间和中断延迟时间确定,优先级中断和调度,抢占式调度,内存锁定,连续文件,同步
- 一般实时操作系统 vs 嵌入式实时操作系统
- 一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并且提供了开发、调试、运用一致的环境。
- 嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致的。嵌入式实时操作系统具有规模小(一般在几K~几十KB 内)、可固化使用实时性强(在毫秒或微秒数量级上)等特点 。
- 总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性,与实时应用软件相结合成为有机的整体起着核心作用,由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。IEEE 的实时UNIX分委会认为实时操作系统应具备以下的几点:
四、实时操作系统RTOS
基本概念
-
内核
多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。内核提供的最基本服务是任务切换。使用实时内核可以大大简化应用系统的设计,因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核需要消耗一定的系统资源,比如2%~5%的CPU运行时间、RAM和ROM等。内核还提供一些必不可少的系统服务,如信号量、消息队列、延时等。 -
任务
一个任务,也称作一个线程,是一段简单的程序,该程序可以认为CPU完全属于该程序自己。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分。
任务优先级
任务的优先级是表示任务被调度的优先程度。每个任务都具有优先级。任务越重要,赋予的优先级应越高,越容易被调度进入运行态。 -
任务切换
当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即CPU寄存器中的全部内容。这些内容保存在任务的当前状态保存区,即任务自已的栈之中。入栈工作完成以后,就把下一个将要运行的任务的当前状态从其栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。 -
调度
调度是内核的主要职责之一。调度就是决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程序的不同被赋予一定的优先级。基于优先级的调度法指CPU总是让处在就绪态的优先级最高的任务先运行。 -
非抢占式(合作式)内核
非抢占式内核要求每个任务自我放弃CPU 的所有权。非抢占式调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起(Pending,或译为“等待” )状态变为就绪状态。但中断服务以后CPU控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。 -
抢占式(可剥夺式)内核
当系统响应时间很重要时,要使用抢占式内核。因此绝大多数商业上销售的实时内核都是抢占式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪状态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务将被挂起,优先级高的那个任务开始运行。 -
中断
中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)上下文即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务程序(ISR)。中断服务程序做事件处理,处理完成后,程序回到:- 在前后台系统中,程序回到后台程序;
- 对非抢占式内核而言,程序回到被中断了的任务;
- 对抢占式内核而言,让进入就绪态的优先级最高的任务开始运行。
-
时钟节拍
时钟节拍是特定的周期性中断。这个中断可以看作是系统心脏的脉动。中断之间的时间间隔取决于不同应用,一般在10ms到200ms之间。时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务在等待事件发生时,提供等待超时的依据。时钟节拍率越快,系统的额外开销就越大。
五、嵌入式操作系统μC/OS-III
-
μC/OS—Micro Controller OS
应用面覆盖了诸多领域,满足航空电子、工业控制、医疗等市场的针对可靠性/安全性的认证标准。是一个源码公开、可移植、可裁减、可固化、占用资源少、抢占式的实时多任务操作系统内核。其绝大部分源码采用ANSI C编写,可移植性好。高校教学可免费使用。 -
µC/OS-III的特点
-
源代码开放
-
便捷的应用程序编程接口(API)
-
抢占式多任务管理
-
同优先级任务的时间片轮转调度
-
极短的关中断时间
-
确定性
-
可裁剪
-
可移植
-
可固化
-
可动态配置
-
任务数目不受限制
-
内核对象数目不受限制
-
丰富的系统服务
-
互斥型信号量
-
软件定时器
-
同时等待多个内核对象
-
直接向任务发信号、消息
-
任务寄存器
-
出错检验
-
内置性能测试
-