实时操作系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.8 代码临界区
指一段不可分割的代码,一旦执行,不能被中断。 实现代码临界区的方法: 屏蔽中断,通常在代码执行前关闭中断,执行后
打开中断,只能用于单处理机的情形
通过信号量机制
UC/OS内核里得到充分体现
2.9 信号量
多任务环境下使用的一种指示标志, 它负责协调
各个任务, 以保证它们能够正确、合理的使用公 共资源。
任务执行过程中(资源已获得,死循环中)
挂起
任务结束(跳出死循环,资源释放)
任务的特点
动态性:任务有一定的生命期
任务由“创建”而产生,由“撤消”而消 亡,因拥有处理器而得到运行。 并发性:多个任务同时运行 单处理器上的交替、多处理器上的同时性
任务的特点
独立性:任务是系统中独立存在的实体
嵌入式系统的管理层
CPU资源管理
存储器管理(内存和外存)
设备管理(输入输出设备)
实时 多任务操作系统(Real Time Operating System) 具有实时性,能支持实时控制系统的工作
首要任务:完成实时控制任务
次要任务:提高计算机系统的使用效率
二、基本概念
开始为B服务。 4. 此时A因某外部事件而变成就绪。 5. 发生调度时,A与文件服务进程都是就绪状态。 文件服务进程由于优先级高而更为优先。可是
文件服务进程代表的是B,因此发生优先级倒
置。
2.7优先级继承
该技术强令低优先级的任务继承与之共享资
源并被挂起的任意高优先级任务的优先等级 ,使较低优先级的任务尽快执行,最终释放 较高优先级所需的资源。 上例中B获得文件服务的优先级。
级队列的时间片小,低优先级队列的时间片大
例如:UNIX、WindowsNT
2.4调度延迟
调度延迟是指当一个事件从引起更高优
先级的任务就绪到这个任务开始运行之间的时 间。简而言之,是一个任务被触发后,由就绪
到开始运行的时间。
2.5 优先级
任务的轻重缓急指示 每个任务按其重要性被赋予一定的优先级 静态优先级与动态优先级(固定和可变) 基于优先级的系统会出现优先级倒置的问题
凡新到达的任务被排到队列尾部。
F
….
C
B
A
CPU
完 成
多级反馈队列 (multi-level feedback queues)
系统中设置多个就绪队列,每源自文库队列对应一个
优先级 第一个队列的优先级最高,第二个队列次之, CPU先执行高优先级队列中的任务 各就绪队列中进程的运行时间片不同,高优先
一.操作系统介绍
二.嵌入式操作系统的基本概念
三.嵌入式操作系统及其特点
四.典型嵌入式操作系统介绍 五.嵌入式操作系统选型
一、操作系统介绍
操作系统是一段核心程序
作为软硬件资源的控制中心,它以尽量合理 有效的方法组织多个用户共享计算机的各种 资源。 作为一台功能强大的虚拟机,给用户一个方
便、有效、安全的工作环境。
2.8 代码临界区(Critical Section)
2.9 信号量(Semaphore)
2.10 任务间通信(inter task )
2.11 互斥(mutual exclusion)
2.12 抢占(Preemptive)
2.1 任务
指拥有CPU资源(寄存器、堆栈)的正在执行的
简单程序
类似于通用操作系统中的进程和线程(Process)
基本的调度算法
先来先服务(FCFS)
最短周期优先(SBF) 优先级法(Priority) 轮转法(Round -Robin) 多级队列法(multi-level queues)
多级反馈队列(multi-level feedback queues)
先来先服务FCFS(First-e, first-served)
已开发出多种算法用于实时任务的优先级分配
2.6优先级倒置
当一个任务等待比它优先级低的任务释放资源
而被阻塞时,就会发生优先级倒置。
例: 1. 有A、B两个应用程序,A的优先级比B高,但是A 在挂起,而B在运行。
2. B需要进行文件操作,发请求给文件服务进程,
自己进入挂起,等待文件操作完成。
3. 本来在挂起的文件服务进程接受到B的请求后
2.1 任务(Task)
2.2 任务上下文( Task Context)
2.3 调度(Scheduler)
2.4 调度延迟(Scheduler Latency)
2.5 优先级(Priority) 2.6 优先级倒置 (Priority Inversion) 2.7 优先级继承(Priority Inheritance)
只有任务有资格向系统申请资源并有权获得
系统提供的服务(任务是资源分配基本单位)。 异步性:任务按异步方式运行,各自独立。
2.2任务上下文
任务上 下文是指一 个未运行任
务的状态,
如堆栈指针、 计数器、内 存字段和通 用寄存器等。
2.3 调度
决定任务运行次序的机制
抢占式 非抢占式 多数实时内核是基于优先级调度的多种 方法的复合
早就绪的任务排在就绪队列的前面,迟就绪的
进程排在就绪队列的后面
CPU先运行处于就绪队列之首的任务
特点:算法简单易行,但性能较差
D
C
B
A
CPU
完 成
最短周期优先SBF(Shortest Burst First )
在就绪队列里,谁执行周期最短就先执行谁
优先级法(Priority)
在就绪队列里挑选优先级最高的执行
非抢占式优先级法和抢占式优先级法 最常用、最有效调度方法
轮转法(Round -Robin)
轮转调度是每次从有序队列头部选出一任务,
并给它分配定长运行时间片。
若任务在分配的时间片结束之前执行完毕,它
就从处理机撤离;若分配的时间片到期,任务
还未执行完毕(还需另外的时间片),则它被重 新送入队列尾部以等待下次调度。
实时系统中的大部分任务是周期的,编程上每个
任务是一个典型的无限循环 只有任务能够申请CPU资源 任务的状态:就绪、运行、挂起
任务举例:
void task(…) { /* 变量说明*/ while(1) { 语句; … } }
任务的状态
就绪 任务获得执行优先级后等待操作系统安排开始 执行(等待开始死循环) 运行