实时操作系统_uCOS-II-5

实时操作系统UCOS-II,学会RTOS给你的身价增值

实时操作系统UCOS-II,学会RTOS给你的身价增值 如果,你最近关注一些嵌入式招聘职位描述,你可能会经常看到看到使用过uCOS、Vxworks、QNX等RTOS者优先。 随便打开一个20K的嵌入式开发工作职责: 你会发现熟悉RTOS的开发、移植、剪裁真的很吃香! 今天,我们就来介绍一下实时操作系统UCOS-II。 一、嵌入式操作系统概览 嵌入式操作系统的主要好处就是屏蔽了底层硬件的差别,给上层应用提供统一的接口,并管理进程调度和资源(如CPU时间、内存)分配等。并且可以充分利用硬件资源,如在单任务时(大循环结构,如大部分51程序)遇到delay函数时,CPU在空转。而在多任务系统,遇到delay或需等待资源时系统会自动运行下一个任务,等条件满足再回来运行先前的任务,这样就充分利用了CPU,提高了效率。 uC/OS操作系统与裸机程序的最大不同点就在于uC/OS有任务调度,可以根据任务的重要程度(优先级)优先执行重要的任务,从而确保能及时处理最重要的数据。(所以对于一个系统有必要使用OS的判断是能否划分一个个的任务,并且各任务间的耦合很小)可以思考下裸机程序中断的时候发生的过程。利用堆栈可以很自由的在A、B中切换,如果切换足够快,A、B看以来好像同时在执行,这就是并行,A、B就是任务。如果这个切换操作放到定时器函数中来做,就可以严格按照时间来切换。另外,各个任务之间有存在一定的关系,有逻辑上的先后等,必须引进全局的结构体、变量来标记一些信息,全局的这些数据是不会被释放的,所以所有的任务可以去通过读、写这些数据来实现各个程序块交流信息,实现所谓的同步、互斥。这就是操作系统的原理,而这些不同的通信方式按功能细分就成事件管理、内存管理等。

操作系统试卷二

1.在一个计算机系统中,特权指令(A)下执行。 A.只能在管态 B.只能在用户态 C.可在管态,也可在用户态 D.不能在管态,也不能在用户态 2.实时操作系统必须在__ C _____内完成来自外部的事件。 A.响应时间 B.周转时间 C.规定时间 D.调度时间 3、最适合分时系统的进程调度算法是( D ) 。 A.FCFS B.SSJF C.优先数法 D.轮转法 4.进程从运行状态进入就绪状态的原因可能是_ D____。 A.被选中占有处理机 B.等待某一事件 C.等待的事件已发生 D.时间片用完 5.设有五个进程共享一个互斥段,在同一时间最多允许一个进程进入互斥段,则所采用的互斥信号量初值应该是___ C _____。 A.5 B.2 C.1 D.0 6.银行家算法在解决死锁问题中是用于的。B A.预防死锁 B.避免死锁 C.检测死锁 D.解除死锁 7.在下列存储管理方案中,不适应于多道程序设计的是__ A ______。 A.单一连续分配 B.固定式分区分配 C.可变式分区分配 D.段页式存储管理 8.UNIX文件的目录结构采用__ D ______。 A.简单目录 B.二级目录 C.系统目录 D.带交叉勾链的树型目录 9.文件系统的主要目的是___ A _____。 A.实现对文件的按名存取 B.实现虚拟存储 C.提高外存的读写速度 D.用于存储系统文件 10.下列算法中用于磁盘移臂调度的是。C A时间片轮转法 B.LRU算法 C.最短寻找时间优先算法 D.优先级高者优先算法 二、判断题(5*2分) 1.采用多道程序设计的系统中,系统的程序道数越多,系统的效率就越高。错 2.作业的联机控制方式适用于终端作业。对 3.时间片越小,系统的响应时间就越小,系统的效率就越高。错 4.程序的并发执行是指同一时刻有两个以上的程序,它们的指令在同一处理器上执行。错 5.按最先适应算法分配的分区,一定与作业要求的容量大小最接近。错 三、填空题(5*2分) 1.为实现CPU与外部设备的并行工作,系统引入了____中断和通道______硬件机制。 2.UNIX系统采用___索引_____结构存放文件物理块的地址。 3.文件的符号名与物理地址的转换是通过_文件目录______实现的。 4.用户编程时使用____逻辑____地址,处理机执行程序时使用__物理________地址。 5.采用资源有序分配算法可以__预防___死锁的发生。

四种实时操作系统特性进行分析和比较

四种实时操作系统特性进行分析和比较 https://www.360docs.net/doc/2816126652.html,2006年11月18日21:55ChinaByte 本文对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux——新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux。 近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,因而越来越引起人们的重视。 基本特征概述 *QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1 (程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。 *LynxOS是一个分布式、嵌入式、可规模扩展的实时 操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。它最早开发于1988年。 *RT-Linux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。 *KURT-Linux不是为嵌入式应用设计的,不同于硬(hard)实时/软(soft)实时应用,他们提出“严格(firm)”实时应用的概念,如一些多媒体应用和ATM网络应用,KURT是为这样一些应用设计的“严格的”实时系统。 体系结构异同 实时系统的实现多为微内核体系结构,这使得核心小巧而可靠,易于ROM固化,并可模块化扩展。微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来。但它也有弱点,进程间通信和上下文切换的开销大大增加。相对于大型集成化内核系统来说,它必须靠更多地进行系统调用来完成相同的任务。 *QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。 *LynxOS目前还不是一个微内核结构的操作系统,但它计划使用所谓的“Galaxy”技术将其从大型集成化内核改造成微内核,这一技术将在LynxOS 3.0中引入。新的28Kb微内核提供以下服务:核心启动和停止、底层内存管理、出错处理、中断处理、多任务、底层同步和互斥支持。

RTOS实时操作系统(Real Time Operating System)

John Lee 20:27:07 上次讲到了 RTOS 的抢占机制对事件响应能力提高的帮助,避免了事件的丢失。 John Lee 20:27:07 上次讲到了 RTOS 的抢占机制对事件响应能力提高的帮助,避免了事件的丢失。小道(569198569) 20:27:39 老师辛苦 John Lee 20:27:45 但光依靠 RTOS 的抢占机制,并不能做到完全不丢失事件,只是从一定程度上降低了丢失事件的机率。 丶砖家(1361439207) 20:28:16 LEE 丶砖家(1361439207) 20:28:14 好复杂呀 John Lee 20:28:54 上次的这个图: John Lee 20:30:20 是没有丢失事件了,但如果我们把 E2 的第 3 个事件提前一些: John Lee 20:32:30 对于这样情况,RTOS 提供了一些带有通信功能的同步对象,可以让应用程序构造软件缓冲机制,来保持突发事件。 John Lee 20:33:19 关于具体的实现方法,要等到我们学习完了 RTOS 同步机制和各种同步对象后,才能讨论。

John Lee 20:34:24 除此之外,还有其它一些系统设计时,需要仔细考虑的问题: 中断处理时间到底多长合适? 等待设备事件产生,是否一定要用中断? 如何划分任务? 如何确定合适的调度算法? 是否需要任务优先级? 静态优先级能不能满足要求? 系统节拍的频率多少合适? 如何选则合适的同步对象? DsPower小灰灰(108430786) 20:35:56 对这就是我的问题 wei(34103820) 20:36:02 John Lee 20:36:07 这些问题,都留到我们学习完 RTOS 后,再来讨论。 小道(569198569) 20:36:23 wei(34103820) 20:36:02 遵守纪律 John Lee 20:36:39 现在讨论,很多同学没有基础,晕的。 John Lee 20:37:12 我们继续学习《嵌入式系统的实时概念》。 DsPower小灰灰(108430786) 20:38:13 支持老师 DsPower小灰灰(108430786) 20:38:14 雪狼(982332664) 20:38:55 我都晕乎了 John Lee 20:40:01 我们上次停下来的地方,是: 4.4.5 调度算法。

实时操作系统报告

实时操作系统课程实验报告 专业:通信1001 学号:3100601025 姓名:陈治州 完成时间:2013年6月11日

实验简易电饭煲的模拟 一.实验目的: 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。 二.实验要求: 1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”; 2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择; 3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间; 4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式; 5.按“X”退出系统,时间区域不显示。 6.煮饭时长为30,煮粥时长为50,煮面时长为40. 三.实验设计: 1.设计思路: 以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。 本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。 2.模块划分图: (1)界面显示: Main() Taskstart() Taskstartdispinit() 在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。

(2)按键查询与响应: Main() Taskstart() 在TaskStart()函数中,用if (PC_GetKey(&key) == TRUE)判断是否有按键输入。然后根据key 的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。 (3)切换功能: l计数“C”按 键的次数 M=l%3 Switch(m) M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“”以“擦出”之前画下的“@”,注意l自增。 四.主要代码: #include "stdio.h" #include "includes.h" #include "time.h" #include "dos.h" #include "sys/types.h" #include "stdlib.h" #define TASK_STK_SIZE 512 #define N_TASKS 2 OS_STK TaskStk[N_TASKS][TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; INT8U TaskData[N_TASKS];

嵌入式实时操作系统

嵌入式实时操作系统 嵌入式实时操作系统(Embedded Real-time Operation System,RTOS)。 1 嵌入式实时操作系统概念 当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。 2 嵌入式实时操作系统特点 1)多任务; 2)有线程优先级 3)多种中断级别 3 嵌入式实时操作系统应用 在工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。 采用嵌入式实时操作系统(简称RTOS)能够支持多任务,使得程序开发更加容易,便于维护,同时能够提高系统的稳定性和可靠性。

4 实时操作系统的必要性: 首先,嵌入式实时操作系统提高了系统的可靠性。 其次,提高了开发效率,缩短了开发周期。 实时操作系统的优缺点: 在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。但是,使用嵌入式实时操作系统还需要额外的ROM/RAM 开销,2~5% 的CPU 额外负荷,以及内核的费用。 5 实时系统与非实时系统的根本区别 实时系统与非实时系统的根本区别在于:实时系统具有与外部环境及时交互作用的能力。也就是说实时系统从外部获取信息以及系统得出结论要在很短的限制时间内完成。 它具有嵌入式软件共有的可裁剪、低资源占用、低功耗等特点;实时任务之间可能还会有一些复杂的关联和同步关系,如执行顺序限制、共享资源的互斥访问要求等。 实时操作系统所遵循的最重要的设计原则是:采用各种算法和策略,始终保证系统行为的可预测性(predictability)。可预测性是指在系统运行的任何时刻,在任何情况下,实时操作系统的资源调配策略都能为争夺资源(包括CPU、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。与通用操作系统不同,实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求,也就是说,实时操作系统注重的是个体表现。

操作系统考试题

一、单项选择题(每小题2分,共20分)。 1. 所谓()是指将一个以上的作业放入内存,并且同时处于运行状态,这些作业共享处理机的时间和外围设备等其他资源。 A. 多重处理 B. 实时处理 C. 多道程序设计 D. 并行执行 2. 实时操作系统必须在()内处理完来自外部的事件。 A. 响应时间 B. 规定时间 C. 周转时间 D. 调度时间 3. 在操作系统中,P、V操作是一种()。 A.机器指令 B.系统调用命令 C.作业控制命令 D.低级进程通信原语 4. 若信号量S的初值为2,当前值为-1,则表示有()等待进程。 A.3个 B.2个 C.1个 D.0个 5. 两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息或者建立某个条件后再向前执行,这种关系是进程间的()关系。 A. 同步 B. 互斥 C. 竞争 D. 合作 6. 一作业从8:00到达系统,估计运行时间为1小时。若10:00开始执行该作业,其响应比是()小时。 A. 2 B. 1 C. 0.5 D. 3 7. 如果地址转换的时间在程序开始前完成,在程序运行时无需再进行地址转换,则称为()。 A. 静态分配 B. 静态重定位 C. 动态分配 D. 动态重定位 8. 在分段存储管理的中,所产生的地址是由段号和偏移量组成,它是()地址结构。 A. 一维 B. 二维 C. 三维 D. 不一定 9. 按()分类可将设备分为块设备和字符设备。 A. 信息交换单位 B. 操作特性 C. 共享属性 D. 从属关系 10. 能实现“按名存取”的是()。

A. 一级目录结构 B. 二级目录结构 C. 树形目录结构 D. 以上都是 二、简答题(每小题6分,共30分) 1. 试比较分时操作系统与实时操作系统。 2. 何谓死锁?产生死锁的原因和必要条件是什么? 3.动态分区管理的常用内存分配算法有哪几种?比较它们各自的优缺点。 4.按照信息交换方式和连接设备种类的不同,通道可分为哪三种类型?请分别 描述这三种通道的工作方式。 5. 文件有哪几种逻辑结构?有哪几种物理结构? 三、综合计算题(每小题10分,共40分) 1. 若系统运行中出现如下图所示的资源分配情况,该系统是否安全?如果进程P2此时提出资源申请(1,2,2,2),系统能否将资源分配给它?为什么? 2.在一个请求分页系统中,假如一个作业的页面走向为2、3、2、1、5、2、4、 5、3、2、5、2,当分配给该作业的物理块数M为3时,应用下面的页面替 换算法,分别计算在访问过程中所发生的缺页次数(提示:所给定的页块初始均为空,因此,首次访问一页时就会发生缺页中断)。 ⑴先进先出算法(FIFO) ⑵最近最久未使用算法(LRU)

实时操作系统 期末报告

实时操作系统期末总结报告 一、实时操作系统的概述 实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。 1.1.实时操作系统的相关概念 (1)实时操作系统的定义 实时操作系统是保证在一定时间限制内完成特定功能的操作系统。例如人驾驶的汽车中的系统,需要一个比较稳定的实时操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。在“软”实时操作系统中,比如汽车不能很快的识别人的操作指令,那么它可能造成严重的事故(如:汽车的瞬时刹车;公交车,它能准确的报站,这其实就是一个实时操作系统的具体体现;其次,车上的GPS导航仪,其实质也是一个比较精确实时操作系统的产物,如果不能实时,那么导航仪将失效,结果不能正确的指导司机驾驶的方向,同时这种实时操作系统的及时性必须达到一定的程度:ms级)。一些实时操作系统是为特定的应用

设计的,另一些是通用的。一些通用目的的操作系统称自己为实时操作系统。但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM的OS/390有实时系统的特征。这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。 (2)实时操作系统中的一些重要的概念 代码临界段:指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入; 资源:任何为任务所占用的实体; 共享资源:可以被一个以上任务使用的资源; 任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任 务都是一个无限的循环,每个任务都处在以下五个状态下:休眠 态,就绪态,运行态,挂起态,被中断态; 任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任 务的栈中重新装入CPU的寄存器,并开始下一个任务的运行; 内核:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型内核和可剥夺型内核; 调度:内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法; (3)及时性 关于实时操作系统的及时性,我将从如下两个方面进行介绍:实时操作系统的时间限和实时操作系统的应用相关。 时间限:对一些实时性要求较高的系统,它们要求的时间限一般是毫秒级(ms),但是通常的实时操作系统,一般是秒级(s)或是在

嵌入式实时操作系统ucos期末考试题

嵌入式实时操作系统ucos期末考试题

一、名词解释: 1、OS:操作系统 2、MCU:微控制器 3、ISR:中断服务子程序 4、FIFO:先进先出 5、TCB:Task Control Block,任务控制块 6、API:应用程序接口 7、RTOS:实时操作系统 8、UART:通用异步收发传输器 9、MMU:内存管理单元 10、JTAG:边界调试接口 二、填空题 1、( 优先级抢占和时间片轮转 )是一种运行时间一到就剥夺进程处理器使用权的剥夺式调度。 2、实时系统的两个基本要求:( 逻辑或功能正确 )、时间正确。所谓时间正确是指 (实时系统的计算必须在预定的时间内完成)。 3、临界区是指( 处理时不可分割的代码、每个进程中访问临界资源的那段程序 ) 4、UCOS调用系统延时最小时间单位( 毫秒 ) 5、UCOS配置文件中OS_TICKS_PER_SEC的数值定义为32,含义是(时钟频率为32 hz)

6如果某一个任务不是必须的监控任务,我们一般采用( 动态内存管理 )的机制来创建该任务所需要的变量内存空间,要想能使用这种机制,必须首先将内存交给(操作系统)来统一管理 7、如果系统中某一个资源属于独占资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决 8、在UCOS中,优先级用一个数字表示,数字越大表示任务的优先级别越(低) 9、优先级调度的( 任务就绪表 )标志进程抢占处理器的权利大小。 10、(任务控制块)主要用来记录任务的堆栈指针,任务的当前状态,任务的优先级别等一些与任务管理有关的属性的表。 11、临界区是指( 保证共享资源的完整性和可靠性的代码段 )。 12、可重入指的是(是一段代码(如一个函数)可以被多个任务同时调用,而不必担心会破坏数据)。

计算机操作系统简单介绍

计算机操作系统简单介绍 操作系统的种类繁多,依其功能和特性分为分批处理操作系统、分时操作系统和实时操作系统等;依同时管理用户数的多少分为单用户操作系统和多用户操作系统;适合管理计算机网络环境的网络操作系统。 1)微机操作系统随着微机硬件技术的发展而发展,从简单到复杂。Microsoft 公司开发的DOS是一单用户单任务系统,而Windows操作系统则是一多户多任务系统,经过十几年的发展,已从Windows 3.1发展Windows NT、Windows 2000、Windows XP、Windows vista、Windows 7和Windows 8等等。它是当前微机中广泛使用的操作系统之一。Linux是一个源码公开的操作系统,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大,已被越来越多的用户所采用,是Windows操作系统强有力的竞争对手。 2)语言处理系统 人和计算机交流信息使用的语言称为计算机语言或称程序设计语言。计算机语言通常分为机器语言、汇编语言和高级语言三类。如果要在计算机上运行高级语言程序就必须配备程序语言翻译程序(下简称翻译程序)。翻译程序本身是一组程序,不同的高级语言都有相应的翻译程序。翻译的方法有两种:一种称为“解释”。早期的BASIC源程序的执行都采用这种方式。它调用机器配备的BASIC“解释程序”,在运行BASIC源程序时,逐条把BASIC的源程序语句进行解释和执行,它不保留目标程序代码,即不产生可执行文件。这种方式速度较慢,每次运行都要经过“解释”,边解释边执行。 另一种称为“编译”,它调用相应语言的编译程序,把源程序变成目标程序(以.OBJ为扩展名),然后再用连接程序,把目标程序与库文件相连接形成可执行文件。尽管编译的过程复杂一些,但它形成的可执行文件(以.exe为扩展名)可以反复执行,速度较快。运行程序时只要键入可执行程序的文件名,再按Enter键即可。 对源程序进行解释和编译任务的程序,分别叫作编译程序和解释程序。如FORTRAN、COBOL、PASCAL和C等高级语言,使用时需有相应的编译程序;BASIC、LISP等高级语言,使用时需用相应的解释程序。

ucos-ii操作系统复习大纲

ucos-ii操作系统复习大纲 一.填空题 1.uC/OS-II是一个简洁、易用的基于优先级的嵌入式【抢占式】多任务实时内核。 2.任务是一个无返回的无穷循环。uc/os-ii总是运行进入就绪状态的【最高优先级】的任务。 3.因为uc/os-ii总是运行进入就绪状态的最高优先级的任务。所以,确定哪 个任务优先级最高,下面该哪个任务运行,这个工作就是由【调度器(scheduler)】来完成的。 4.【任务级】的调度是由函数OSSched()完成的,而【中断级】的调度 是由函数OSIntExt() 完成。对于OSSched(),它内部调用的是【OS_TASK_SW()】完成实际的调度;OSIntExt()内部调用的是【 OSCtxSw() 】实现调度。 5.任务切换其实很简单,由如下2步完成: (1)将被挂起任务的处理器寄存器推入自己的【任务堆栈】。 (2)然后将进入就绪状态的最高优先级的任务的寄存器值从堆栈中恢复到【寄存器】中。 6.任务的5种状态。 【睡眠态(task dormat) 】:任务驻留于程序空间(rom或ram)中,暂时没交给ucos-ii处理。 【就绪态(task ready)】:任务一旦建立,这个任务就进入了就绪态。 【运行态(task running)】:调用OSStart()可以启动多任务。OSStart()函数只能调用一次,一旦调用,系统将运行进入就绪态并且优先级最高的任务。 【等待状态(task waiting)】:正在运行的任务,通过延迟函数或pend(挂起)相关函数后,将进入等待状态。

【中断状态(ISR running)】:正在运行的任务是可以被中断的,除非该任务将中断关闭或者ucos-ii将中断关闭。 7.【不可剥夺型】内核要求每个任务自我放弃CPU的所有权。不可剥夺型调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。 8.当系统响应时间很重要时,要使用【可剥夺型】内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。 9.使用可剥夺型内核时,应用程序不应直接使用不可重入型函数。调用不可重入型函数时,要满足互斥条件,这一点可以用【互斥型信号量】来实现。 10.【可重入型】函数可以被一个以上的任务调用,而不必担心数据的破坏。 11.可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用【局部变量】,即变量保存在CPU寄存器中或堆栈中。如果使用全局变量,则要对全局变量予以【保护】。 12.每个任务都有其优先级。任务越重要,赋予的优先级应【越高】。 13.μC/OS-Ⅱ初始化是通过调用系统函数【OSIint()】实现的,完成μC/OS-Ⅱ所有的变量和数据结构的初始化。 14.多任务的启动是用户通过调用【OSStart()】实现的。然而,启动μC/OS-Ⅱ之前,用户至少要建立一个应用【任务】。 15. μC/OS-Ⅱ的参数配置文件名为【】。 16.删除任务,是说任务将返回并处于【休眠状态】,并不是说任务的代码被删除了,只是任务的代码不再被μC/OS-Ⅱ调用。 17.μC/OS-Ⅱ要求用户提供【定时中断】来实现延时与超时控制等功能。 18.定时中断也叫做【时钟节拍】,它应该每秒发生10至100次。 19. 时钟节拍的实际频率是由用户的应用程序决定的。时钟节拍的频率越高,系统的负荷就【越重】。 20.μC/OS-II中的信号量由两部分组成:一个是信号量的【计数值】,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的【等待任务表】。用户要在中将OS_SEM_EN开关量常数置成【1 】,这样μC/OS-II 才能支持信号量。 21. μC/OS-II中表示当前已经创建的任务数全局变量名为:【 OSTaskCtr 】。

嵌入式实时操作系统之我见

嵌入式实时操作系统之我见 -ARM7TDMI-S 王士莹 -----从基本概念、基本原理、基本常识、基本思维入手阐述嵌入式实时操作系统在单片机开发中,嵌入式实时操作系统的使用近几年比较流行,在具体应用中也有比较好的表现。那么对于一个应用来讲,应该选择那种操作系统呢?目前,可供选择的有uLinux、VxWorks、uCOS-II等。我们当然可以选择其中的一个根据需要移植到自己的设计中。但对于一个工程师来说,能够在设计中使用自己编写的嵌入式实时操作系统岂不是一件“很酷”的事情吗?而且,我认为,若要较好的理解一个嵌入式实时操作系统,首先要能够自己编写,哪怕是一个最简单的。否则,不知道核心原理是怎么回事,仅仅依样画葫芦做做移植,只是隔靴搔痒,只会是门外汉。 这篇文章就是根据我所理解的嵌入式操作系统,就几个问题做一个阐述,以期抛砖引玉。 1、为什么要用嵌入式实时操作系统,嵌入式实时操作系统较前后台结构有什么优势 单片机程序结构发展 任务的驱动方式有两种:时间和事件,所以对一个单片机程序来说它要等待的量也是只有两个:延迟时间到或事件发生。故操作系统只要安排任务等待着这两个标志就好。那么如何产生这两个标志呢,标志产生在中断中,然后在中断中发给需要的任务。 多功能块任务:在一个任务中有等待的时间或事件,等到后再执行后面程序的任务。在任务等待的时候单片机可以离开该任务去执行其他任务,该任务等待

完成后再回来继续运行。这样使用操作系统就提高了系统整体的运行效率。 单片机执行全局的东西,操作系统通过把全局的资源赋值成局部的任务让单片机执行了看似全局的实则是局部的东西,这样就实现了任务的调度和切换对于单功能块任务,即一个任务中没有需要等待的时间或事件,程序连续地从头执行到尾,对于这样的任务操作系统的作用不大。 2、单片机编程有哪些特点、会有哪些问题和需求、操作系统如何根据特点解决问题满足需求 一般单片机系统中不会只运行一个单一的任务,往往有多个方面的工作要做,如对一个仪器仪表来讲,它要做的工作有:测量、显示、存储、通讯、控制等。这些工作需要同一个单片机来完成,那如何对他们进行安排才能使一个单片机执行多个任务呢? 打个比方:单片机就像一支建筑队,在这个建筑队里面有管理、财务、技术、工人、后勤等,他们各司其职、共同协作完成一个建筑工程。正常情况下,一支建筑队在一个时间段只能做一个工程,若再有工程要做,只能等这次的工程完成后才能去。现在的情况是:建筑市场异常火爆,有大量的工程要做,而该地区的建筑队数量只有这1支。那怎么办呢?一般的做法是:给每个工程排好顺序定好工期,做完第一个再做第二个再做第三个及其他。如果这样安排,顺利还好,如果不顺利就会发生这样的事:第三个工程所有的东西都已准备好,而且这个工程的建筑物急等着用,但建筑队却由于第二个工程的资金短缺或其它原因耽误了工期而迟迟不能到来。出现这样的事情是不应该的,那怎样安排工作才能避免这样的事情呢?我们可以这样做:1支建筑队同时承包多个工程,并同建筑单位定好协议:当一个工程由于资金或其他原因不能继续时,建筑队可以暂时离开去其他工地。这样当2号工程资金不到位时,建筑队把该工程的必要信息记录下来并保存起来,然后离开2号工程的工地去3号工程的工地;如果3号工程已经开始了,则建筑队把之前保存的信息取出来按照信息上的说明继续下面的工作,若3号工程也有其他事情需要等待了,则建筑队保存好记录后再去其他工地。这样,建筑队就总是在做工程而不会出现空闲,实现了效率的最大化!这种安排工作的方法就是建筑队版的“嵌入式实时操作系统”!

操作系统模拟试题(含答案)

、单项选择题 1、从用户的观点看,操作系统是( A ) A 、用户与计算机之间的接口 B 、控制和管理计算机资源的软件 C 、合理的组织计算机工作流程的软件 D 、由若干层次的程序按一定的结构组成的有机体 2、实时操作系统必须在( C )内处理完来自外部的事件 A 、响应时间 B 、周转时间 C 、规定时间 D 、调度时间 3、在操作系统中, P 、V 操作是一种( D ) A 、机器指令 B 、系统调用命令 C 、作业控制命令 D 、低级进程通信原语 4、下面对进程的描述中,错误的是( D ) A 、进程是动态概念 B 、进程执行需要处理机 C 、进程是有生命期的 D 、进程是指令的集合 5、下面所述步骤中, ( A )不是创建进程所必需的。 A 、由调度程序为进程分配 CPU B 、建立一个进程控制块 C 、为进程分配内存 D 、将进程控制块链入就绪队列 6、对于两个并发进程,设互斥信号量为 mutex ,若 mutex = 0,则( B ) A 、表示没有进程进入临界区 B 、表示有一个进程进入临界区 C 、表示有一个进程进入临界区,另一个进程等待进入 D 、表示有两个进程进入临界区 7、系统中有 n ( n > 2)个进程,且当前不在执行进程调度程序,试考虑下列 是( A ) A 、没有运行进程,有 2 个就绪进程, n-2 个进程处于等待状态 B 、有 1 个运行进程,没有就绪进程, n - 1个进程处于等待状态 C 、有 1 个运行进程,有 1个就绪进程, n -2 个进程处于等待状态 D 、有 1 个运行进程,有 n -1 就绪进程,没有进程处于等待状态 8、为多道程序提供的可共享资源不足时,可能出现死锁。但是,不适当的( A 、进程优先权 B 、资源的线性分配 操作系统模拟试题 4 种情况,不可能发生的情况 C )也可能产生死锁。

实时操作系统包括硬实时和软实时的区别

一.什么是真正的实时操作系统 做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN 上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统? 1. 首先说一下实时的定义及要求: 参见 Donal Gillies 在 Realtime Computing FAQ 中提出定义:实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。

一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足时间要求。请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强大的CPU,Windows在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长时间无响应,甚至直接挂死。这是一个基本的问题:并不是Windows不够快或效率不够高,而是因为它不能提供确定性,所以,Windows不是一个实时操作系统。 根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好的VxWorks(WindRiver开发),会花光你本来就很少的银子,而软实时的操作系统,如某些实时Linux,一般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界都在CostReduction,为了响应号召,正在调研如何把平台换成免费的嵌入式实时Linux。同学们,如何选择,自己考虑吧:-)

嵌入式实时操作系统UCOS 2优劣势分析

嵌入式实时操作系统ucos ii的优劣势分析 引言 早在20世纪60年代,就已经有人开始研究和开发嵌入式操作系统。但直到最近,它才在国内被越来越多的提及,在通信、电子、自动化等需要实时处理的领域所曰益显现的重要性吸引了人们越来越多的注意力。但是,人们所谈论的往往是一些著名的商业内核,诸如VxWorks、PSOS等。这些商业内核性能优越,但价格昂贵,主要用于16位和32位处理器中,针对国内大部分用户使用的51系列8位单片机,可以选择免费的ucos ii。 ucos ii的特点 1.ucos ii是由Labrosse先生编写的一个开放式内核,最主要的特点就是源码公开。这一点对于用户来说可谓利弊各半,好处在于,一方面它是免费的,另一方面用户可以根据自己的需要对它进行修改。缺点在于它缺乏必要的支持,没有功能强大的软件包,用户通常需要自己编写驱动程序,特别是如果用户使用的是不太常用的单片机,还必须自己编写移植程序。 2.ucos ii是一个占先式的内核,即已经准备就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权。这个特点使得它的实时性比非占先式的内核要好。通常我们都是在中断服务程序中使高优先级任务进入就绪态(例如发信号),这样退出中断服务程序后,将进行任务切换,高优先级任务将被执行。拿51单片机为例,比较一下就可以发现这样做的好处。假如需要用中断方式采集一批数据并进行处理,在传统的编程方法中不能在中断服务程序中进行复杂的数据处理,因为这会使得关中断时间过长。所以经常采用的方法是置一标志位,然后退出中断。由于主程序是循环执行的,所以它总有机会检测到这一标志并转到数据处理程序中去。但是因为无法确定发生中断时程序到底执行到了什么地方,也就无法判断要经过多长时间数据处理程序才会执行,中断响应时间无法确定,系统的实时性不强。如果使用μC/OS-II的话,只要把数据处理程序的优先级设定得高一些,并在中断服务程序中使它进入就绪态,中断结束后数据处理程序就会被立即执行。这样可以把中断响应时间限制在一定的范围内。对于一些对中断响应时间有严格要求的系统,这是必不可少的。但应该指出的是如果数据处理程序简单,这样做就未必合适。因为ucos ii要求在中断服务程序末尾使用OSINTEXIT函数以判断是否进行任务切换,这需要花费一定的时间。 3.ucos ii和大家所熟知的Linux等分时操作系统不同,它不支持时间片轮转法。ucos ii是一个基于优先级的实时操作系统,每个任务的优先级必须不同,分析它的源码会发现,ucos ii把任务的优先级当做任务的标识来使用,如果优先级相同,任务将无法区分。进入就绪态的优先级最高的任务首先得到CPU的使用权,只有等它交出CPU的使用权后,其他任务才可以被执行。所以它只能说是多任务,不能说是多进程,至少不是我们所熟悉的那种多进程。显而易见,如果只考虑实时性,它当然比分时系统好,它可以保证重要任务总是优先占有CPU。但是在系统中,重要任务毕竟是有限的,这就使得划分其他任务的优先权变成了一个让人费神的问题。另外,有些任务交替执行反而对用户更有利。例如,用单

嵌入式实时操作系统中实时调度算法综述

嵌入式实时操作系统中实时调度算法综述 摘要:实时调度是指在有限的系统资源下,为一系列任务决定何时运行,并分配任务运 行除CPU之外的资源,以保证其时间约束、时序约束和资源约束得到满足。一个实时系统可以由单处理器系统来实现,也可以用多处理器系统来实现。实时调度算法是保障实时系统时限性和高可靠性的最重要手段之一。 关键词:嵌入式;实时操作系统;实时调度算法;RTOS;RMS 引言 嵌入式系统在当今的生产和生活中得到了广泛的应用,鉴于嵌入式实时系统的特点,要求任务调度等实时内核功能精简和高效。综合了EDF 和RM调度策略的CSD 调度策略,更加适合嵌入式系统的特点,满足其内核的要求。任务调度策略是实时系统内核的关键部分,如何进行任务调度,使得各个任务能在其期限之内得以完成是实时操作系统的一个重要的研究领域。它的精简和高效,对提高低处理能力,小内存系统整体性能具有重大的意义。 RTOS概述 RTOS,即:实时系统(Real-time operating system),实时系统能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。它的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。因此实时系统应该在事先先定义的时间范围内识别和处理离散事件的能力;系统能够处理和储存控制系统所需要的大量数据。对一般的程序来说,大多数是考虑指令执行的逻辑顺序,指令何时执行并不重要。而对实时应用系统的程序就不一样,当外部某激励出现时,系统必须以一定的方式和在限定的时间内响应它,如果已超时,那怕执行结果是正确的,系统也认为是失效的。实时操作系统通常被分为软实时操作系统和硬实时操作系统。前者意味着偶尔错过时限是可以容忍的;后者意味着执行过程不但必须正确而且必须准时。在实时操作系统中,系统将程序分成许多任务(或进程),而每个任务的行为都预先可知,或者是有明确的功能,系统根据一定的调度原则,决定谁可取得执行权,这就是RTOS的核心所在。 实时调度算法 实时调度算法可以分为4类:单处理器静态调度算法、多处理器静态调度算法、单处理器动态调度算法、多处理器动态调度算法。下面分别分析嵌入式操作系统中采用的各种调度方法,以及这些调度方法是如何满足实时性应用的实时要求的。 1 速率单调算法 速率单调算法是一个经典的算法,它是针对那些响应和处理周期性事件的实时任务的,它事先为每个这样的实时任务分配一个与事件频率成正比的优先级。 实现时,就绪队列中的所有任务按照优先级Priority排队,优先级最高的任务排在队首,当处于运行态的任务,由于某种原因挂起时,只要把就绪队列的首元素从就绪队列中取下,使运行任务指针pRunTask指向该元素即可,如果是处于其他状态的任务变为就绪状态,而挂

嵌入式实时操作系统ucos期末考试题

一、名词解释: 1、OS:操作系统 2、MCU:微控制器 3、ISR:中断服务子程序 4、FIFO:先进先出 5、TCB:Task Control Block,任务控制块 6、API:应用程序接口 7、RTOS:实时操作系统 8、UART:通用异步收发传输器 9、MMU:内存管理单元 10、JTAG:边界调试接口 二、填空题 1、( 优先级抢占和时间片轮转)是一种运行时间一到就剥夺进程处理器使用权的剥夺式调度。 2、实时系统的两个基本要求:( 逻辑或功能正确)、时间正确。所谓时间正确是指 (实时系统的计算必须在预定的时间内完成)。 3、临界区是指( 处理时不可分割的代码、每个进程中访问临界资源的那段程序) 4、UCOS调用系统延时最小时间单位( 毫秒) 5、UCOS配置文件中OS_TICKS_PER_SEC的数值定义为32,含义是(时钟频率为32 hz) 6如果某一个任务不是必须的监控任务,我们一般采用( 动态内存管理)的机制来创建该任务所需要的变量内存空间,要想能使用这种机制,必须首先将内存交给(操作系统)来统一管理 7、如果系统中某一个资源属于独占资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决 8、在UCOS中,优先级用一个数字表示,数字越大表示任务的优先级别越(低) 9、优先级调度的( 任务就绪表)标志进程抢占处理器的权利大小。 10、(任务控制块)主要用来记录任务的堆栈指针,任务的当前状态,任务的优先级别等一些与任务管理有关的属性的表。 11、临界区是指( 保证共享资源的完整性和可靠性的代码段)。 12、可重入指的是(是一段代码(如一个函数)可以被多个任务同时调用,而不必担心会破坏数据)。 13、某事件周期不确定,持续时间较短,处理容忍度较长,通常我们采取在(任务就绪表)中发现该事件,在(任务调度)中处理该事件。 14、如果系统中有2个资源,n个任务都需要使用,标准的做法是使用(互斥信号量)来解决。 15、在UCOS中,最低优先级自动赋给( 空闲任务)这个系统任务。 16、对CPU资源进行分配的两种操作系统常见调度算法为__(任务级调度_)和(中断级调度)。 17、uC/OS中,主要依靠_(任务堆栈_)来保存任务工作环境。 18、uC/OS为加快就绪任务的检索速度,定义了_OSRdyTbl[]______数组保存所有任务的就绪状态,定义了变量_OSRdyGrp______来表明上面的数组中有那些行有任务就绪。

相关文档
最新文档