打印
[信息]

嵌入式操作系统基础知识总结

[复制链接]
3907|71
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 junpeng324 于 2018-6-14 21:35 编辑

轮询系统
这是最简单的一种软件结构,主程序是一段无限循环的代
码,在循环中顺序查询各个条件,如果满足就执行相应的操
作。这种方案的好处是实现简单,逻辑清晰,便于开发人员掌
握。但是每个事件的查询和处理时间是不能确定的。假如前面
的操作时间较长,那么后面的操作必然会被延迟。

沙发
junpeng324|  楼主 | 2018-6-14 21:33 | 只看该作者
本帖最后由 junpeng324 于 2018-6-14 21:35 编辑

前后台系统
相对轮询系统,前后台系统对外部事件的处理做了优化。前后台系统是由中断驱动的。
主程序依然是一段无限循环的代码,称为后台程序,而事件的响应则由中断来完成,称为前
台程序。在后台程序执行时,如果有外部事件发生,则前台的中断程序会打断后台程序。在
完成必要的事件响应之后,前台中断程序退出并通知后台程序来继续操作。由后台程序完成
事件的后继处理,比如数据的分析等操作。从代码功能上讲,事件的响应和处理分为了两个
部分。因为中断自身有优先级和嵌套的功能,所以优先级高的事件能够得到及时响应。但后
台程序仍然需要按顺序处理各个事件的后继事务。

使用特权

评论回复
板凳
junpeng324|  楼主 | 2018-6-14 21:34 | 只看该作者
本帖最后由 junpeng324 于 2018-6-14 21:35 编辑

前后台系统演示:

使用特权

评论回复
地板
junpeng324|  楼主 | 2018-6-14 21:34 | 只看该作者
如上图所示,在中断源之间有优先级的
概念。ISR 会首先响应事件,简单的事件可以
在 ISR 中直接处理,复杂的情况下则记录下必
要数据和状态标记,等所有中断处理结束后,
将由后台主函数按顺序处理各个事件。也就是
说,事件的响应是支持优先级的,但事件的最
终处理却是顺序的。使用中断来代替轮询方案
中事件的查询操作,所以相对轮询方案,前后
台系统对事件的响应能力有较大改善。

使用特权

评论回复
5
junpeng324|  楼主 | 2018-6-14 21:36 | 只看该作者
多任务系统
和前后台系统相比,多任务系统在响应事件的时候,同样是由多个中断处理程序完成
的。但是对于事件的后继操作则是由多个任务来处理的。也就是说每个任务处理它所负责的
事件。在基于优先级的多任务系统中,因为任务间优先级的关系,优先级高的任务可得到优
先处理。这样优先级高的事件就能及时得到处理;在基于分时机制的多任务系统中,任务间
则按比例轮流占用处理器。

使用特权

评论回复
6
junpeng324|  楼主 | 2018-6-14 21:38 | 只看该作者
多任务机制如图

使用特权

评论回复
7
junpeng324|  楼主 | 2018-6-14 21:39 | 只看该作者
上图中,中断用来响应事件,事件的
后续操作则由任务来完成。中断和任务都有优
先级。假如其中中断 2 和任务 2 处理的事件是
紧急的或者重要的,那么当中断 2 发生时,即
使其他任务或者中断正在处理,也会被抢占,
最终任务 2 会优先得到运行机会。

使用特权

评论回复
8
junpeng324|  楼主 | 2018-6-14 21:42 | 只看该作者
因为多任务操作系统允许将具体的应用系
统分成若干个相对独立的任务来管理,所以
多任务操作系统的使用可以简化应用程序的设
计,系统也变得简洁且便于维护和扩展。对
实时性要求严格的事件都能得到及时可靠的处理。不过多任务操作系统自身将占用部分处理
器、存储器等硬件资源,这是引入多任务机制的必要代价。

使用特权

评论回复
9
junpeng324|  楼主 | 2018-6-14 21:43 | 只看该作者
三种系统的比较

使用特权

评论回复
10
junpeng324|  楼主 | 2018-6-14 21:44 | 只看该作者
嵌入式操作系统内核的设计和实现。它的主要功能包括:任务管理、任务调度、
任务同步、互斥和通信、设备管理、中断管理、时间管理等。而像图形用户接口、文件系
统、TCP/IP 协议、嵌入式数据库引擎等,则可以归
为嵌入式操作系统内核层之外的功能模块。

使用特权

评论回复
11
junpeng324|  楼主 | 2018-6-14 21:45 | 只看该作者
多任务模型下 RTOS 组成如图


使用特权

评论回复
12
junpeng324|  楼主 | 2018-6-14 21:45 | 只看该作者
关于嵌入式操作系统,有很多常见的技术概念,
熟悉这些概念是我们学习嵌入式操作系统的基础。
本书后续章节着重分析、设计和实现一个“嵌入式
实时操作系统内核”,有时会使用“内核”这个简称。
在内容的编排上,会把各种功能模块的概念放在各
章起始,首先介绍其原理,然后分析设计和实现。

使用特权

评论回复
13
junpeng324|  楼主 | 2018-6-14 21:46 | 只看该作者
时钟节拍
时钟节拍是多任务系统的基础,它指明了把处理器时间以多大的频率分割成固定长度的
时间片段。作为多任务系统运行的时间尺度,时钟节拍是通过特定的硬件定时器产生的。硬
件定时器会产生周期的中断,在相应的中断处理函数中,内核代码得以运行,从而进行任务
调度和定时器时间处理等内核工作。

使用特权

评论回复
14
junpeng324|  楼主 | 2018-6-14 21:47 | 只看该作者
处理器的时钟节拍如图:

使用特权

评论回复
15
junpeng324|  楼主 | 2018-6-14 21:48 | 只看该作者
多任务机制:
在单处理器的计算机系统中,在某一具体时刻处理器只能运行一个任务,但是可以通过
将处理器运行时间分成小的时间段,多个任务按照一定的原则分享这些时间段的方法,轮流
加载执行各个任务,从而从宏观上看,有多个任务在处理器上同时执行,这就是单处理器系
统上的多任务机制的原理

使用特权

评论回复
16
junpeng324|  楼主 | 2018-6-14 21:49 | 只看该作者
多任务机制如图所示:


使用特权

评论回复
17
junpeng324|  楼主 | 2018-6-14 21:49 | 只看该作者
任务上下文
任务可以看作是用户程序在处理器等硬件上的运行,是一个动态的概念。任务在处理器
上运行的某一时刻,有它自己的状态,即处理器所有的寄存器的数据,这个叫作任务的上下
文,可以理解为是处理器的“寄存器数据快照”。通过这些数据,操作系统可以随时打断任
务的运行或者加载新的任务,从而实现不同任务的切换运行。

使用特权

评论回复
18
junpeng324|  楼主 | 2018-6-14 21:50 | 只看该作者
任务切换:
任务切换又叫作任务上下文切换。当操作系统需要运行其他的任务时,操作系统首先会
保存和当前任务相关的寄存器的内容到当前任务的栈中,然后从将要被加载的任务的栈中取
出之前保存的全部寄存器的内容并加载到相关的寄存器中,从而继续运行被加载的任务,这
个过程叫作任务切换。

使用特权

评论回复
19
junpeng324|  楼主 | 2018-6-15 09:41 | 只看该作者
任务的时间片和优先级
时间片指的是任务一次投入运行,在不被抢占或者中断的情况下,能够连续执行的最长
时间(以时钟节拍计数)。时间片的长度由具体操作系统规定,有些操作系统中不同任务可以
有不同的时间片长度,或者是在运行过程中可以动态改变时间片长度。

使用特权

评论回复
20
junpeng324|  楼主 | 2018-6-15 09:41 | 只看该作者
任务调度和调度方式
任务调度是操作系统的主要功能之一,在任务需要调度的时候,操作系统会根据具体的
调度算法和策略选择合适的任务,替换当前任务占有的处理器等硬件资源。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

1130

帖子

8

粉丝