微内核结构嵌入式实时操作系统的研究与设计

合集下载

实时操作系统的相关概念

实时操作系统的相关概念

监控程序(Monitor) 操作系统(Operating System)。 1、多道批处理操作系统 2、分时操作系统 3、实时操作系统。
多道批量处理系统一般用于计算中心较大的计算 机系统中。由于它的硬件设备比较全,价格较高, 所以此类系统十分注意CPU及其它设备的充分利 用,追求高的吞吐量,不具备实时性。

宿主机
目标机
按确定性来分嵌入式实时系统
硬实时
系统对系统响应时间有严格的要求,如果系统响应时 间不能满足,就要引起系统崩溃或致命的错误。
软实时
系统对系统响应时间有要求,但是如果系统响应时间 不能满足,不会导致系统出现致命的错误或崩溃。
按软件结构来分嵌入式实时系统
单线程程序(Single-threaded program)
商业RTOS利用了计算机科学数十年发展的精美成 果,包含了软件理论最精华的部分。这一点从内 核技术上看得最为清楚,各个厂商的内核大同小 异,通过考察各厂商普遍采用的微内核技术可以 很好地看出这一点。
50年代中期到后期开发的操作系统几乎毫无结 构可言,在这些整体操作系统(monolithic operation system)中,任何过程可以调用其它任何过程,由 于低估了过程相互之间的依赖性和互操作性,产 生了一系列问题。
所有进程请求使用统一的接口,进程不 需要区分内核模式和用户模式服务,由于这 些服务全部通过消息传递提供。
扩展性(Extensibility):
由于新型硬件设备和新型软件技术不断发展,任何操作系统不可 避免地需要修改,微内核结构允许加入新的服务,支持在同一功能区 内提供多重服务。使用微内核结构,加入一个新特点仅仅需要修改或 者加入被选择的服务,新的或者修改的服务影响限制在系统的一个子 集,进一步地,修改不需要建立一个新的内核。

基于嵌入式实时操作系统的伺服操控系统设计

基于嵌入式实时操作系统的伺服操控系统设计
引 出了计算 机 串 口、US B、网络 和C L P D的J A T G等 信号。 设 计所 选 用 的D A变 换器 型 号为 A 6 ,将其 / D6 9
误差和角速度数据 、 出相应模拟电压给数据处理 输 模块 、控制 纵横 摇机构 进 行锁定 与工 作 的状态切 换
等任 务 ,且 能够 接 收包括模 拟轴 角 正余弦 信 号、异 步 串 口信 号 和 以太 网信 号在 内 的三 种 形 式 的纵 横 摇角 度信 号 ,还 能够对 某些 异常 状态做 出合 理 的响 应 。本 次设计 采 用 了嵌 入 式计算 机模块 和嵌 入 式实 时操 作 系统 V Wok 相 结合 的方 案 , 一种 新 的伺 x rs 对 服操 控任 务处 理方 式进行 了一 些尝 试 ,本文 对该 方

定时上报伺服系统状态 、系统故障检测、系统状态 刷新 、读取罗经船摇角度 、计算角度误差、计算船 摇角速度 、驱动D 转 换器、 自动锁开关控制、功 A
・4 4 8・
现代导航
放开 关控 制 、系 统上 电异 常处理 等 ,某 些任 务 的执 行须 遵循 严格 的顺序 。 系 统运行 时 ,处理 器既要 按规 定 的时 间间隔 完 成 一部分 事务 ,还要在 某 些事件 突发 时 ,根 据情 况 的轻重 缓急 ,按合理 的顺序 及 时做 出响应 。根据 嵌 入 式实 时操作 系统 的特 点 ,需要 构建 出一套 基于 优 先 级 的任务抢 占模 式 。在 该模 式下 ,同一 时刻 只有
案进 行 了描述 。
调度 响应 时间在微秒级 ,可 以满 足本次设计 的要
求。
2 设计 思 想
1嵌入式实时操作 系统 V Wok x rs
本 次设 计 中伺服系 统要 实现 的功 能主要 包括 : Vx rs 由Wid ie公 司 开 发 的 高性 能 嵌 Wok是 n Rvr

什么是QNX操作系统

什么是QNX操作系统

什么是QNX操作系统QNX操作系统是一种实时操作系统,由加拿大公司QNX Software Systems开发。

它被用于一系列嵌入式系统和网络设备中,包括工控系统、汽车信息娱乐系统、路由器、无线基站和医疗设备等。

QNX操作系统在实时性、可靠性和安全性方面具有很高的声誉。

以下是对QNX操作系统的详细介绍,包括其特点、应用领域和优势等。

1.特点和架构:QNX操作系统的特点之一是其微内核架构。

微内核是指操作系统的核心功能仅限于最基本的任务,例如管理进程和线程、内存管理和设备驱动程序等。

其他的功能则以可选的方式添加到操作系统中,从而实现了高度的可定制性和灵活性。

QNX操作系统还具有强大的实时性能。

它能够实时地响应和处理事件,并确保任务在预定的时间期限内完成。

这对于许多嵌入式系统和网络设备来说是至关重要的,因为它们需要及时地处理和传输数据。

另一个特点是QNX操作系统的分布式架构。

它具有分布式消息传递机制,允许不同的进程和节点之间进行通信和数据交换。

这种分布式架构使得QNX操作系统在构建分布式系统和并行计算环境时非常有用。

2.应用领域:QNX操作系统广泛应用于许多嵌入式系统和网络设备中。

其中一些应用领域包括:(1)工控系统:QNX操作系统被广泛应用于工业自动化领域,用于控制和监视各种工业设备和生产线。

它具有稳定性和可靠性,能够实时地响应和处理工控设备的数据和事件。

(2)汽车信息娱乐系统:QNX操作系统在汽车领域也有广泛的应用。

它被用于构建车载信息娱乐系统,包括导航、多媒体播放、蓝牙连接和智能驾驶辅助等功能。

(3)路由器和无线基站:由于QNX操作系统的实时性和可靠性,它被广泛应用于构建路由器和无线基站。

这些设备需要高度的性能和稳定性,以确保网络的可靠传输和通信。

(4)医疗设备:QNX操作系统被用于构建医疗设备,例如医疗监护仪、手术机器人和药物输送系统等。

这些设备对于快速和准确的数据处理和操作非常重要,因此需要一个可靠的实时操作系统。

wind 内 核

wind 内 核

第1章wind 内核1.1 内核概述VxWorks操作系统内核称为wind内核,下面从实时性能、核结构、调度特点等方面初步探讨。

1.1.1 实时内核“实时”表示控制系统能够及时处理系统中发生的要求控制的外部事件。

从事件发生到系统产生响应的反应时间称为延迟(Latency)。

对于实时系统,一个最重要的条件就是延迟有确定的上界(这样的系统属于确定性系统)。

满足这个条件后,根据这个上界大小再区分不同实时系统的性能。

这里,“系统”是从系统论的观点讲的一个功能完整的设计,能够独立和外部世界交互,实现预期功能,包括实时硬件系统设计、实时操作系统设计、实时多任务设计3部分。

后两者可以概括为实时软件系统设计。

实现实时系统是这3部分有机结合的结果。

从另外一个角度,即实时程度看,可以把系统分为硬实时系统和软实时系统。

硬实时系统是这样一种系统,它的时间要求有一个确定的底线(Deadline),超出底线的响应属于错误的结果,系统将会崩溃,上面所说的实时系统属于硬实时系统。

对于软实时系统来说,“实时性”是个程度概念,在提交诸如中断、计时和调度的操作系统服务时,系统定义一个时间范围内的延迟。

在该范围内,越早给出响应越有价值,只要不超出范围,晚点给出的结果价值下降,但可以容忍。

1.实时硬件系统设计实时硬件系统设计是其他两部分的基础。

实时硬件系统设计要求满足在软件系统充分高效的前提下,必须提供足够的处理能力。

例如,硬件系统提供的中断处理逻辑能同时响应的外部事件数量、硬件反应时间、内存大小、处理器计算能力、总线能力等,以保证最坏情况下所有计算仍然得以完成。

多处理的硬件系统还包括内部通信速率设计。

当硬件系统不能保证达到实时要求时,可以确信整个系统不是实时的。

目前,各种硬件速度不断提高,先进技术大量涌现,硬件在大多数应用中已经不是实时系统的瓶颈。

因而,实时系统的关键集中在实时软件系统设计,这方面也成了实时性研究的主要内容,也是最复杂的部分。

2011-11第十一课、RTLinux, uCOS嵌入式软件

2011-11第十一课、RTLinux, uCOS嵌入式软件
仅支持底层任务创建、中断服务例程的装人、底层任务通信队列、 仅支持底层任务创建、中断服务例程的装人、底层任务通信队列、中 断服务例程(ISR) Linux进程 (ISR)和 断服务例程(ISR)和Linux进程 把标准的Linux Linux内核作为实时内核的一个进程与用户进程一起调度 把标准的Linux内核作为实时内核的一个进程与用户进程一起调度 标准的Linux内核的优先级最低, Linux内核的优先级最低 标准的Linux内核的优先级最低,可以被实时进程抢断
采用完全适应于实时应用的按优先级抢占CPU的调度方法 采用完全适应于实时应用的按优先级抢占CPU的调度方法 CPU 这种方法保证任何时刻都是优先级最高的任务占用CPU CPU。 这种方法保证任何时刻都是优先级最高的任务占用CPU。 优先级最高的任务可以中断当前运行的程序而抢占CPU; 优先级最高的任务可以中断当前运行的程序而抢占CPU; 优先级较低的任务, 优先级较低的任务,只有在所有优先级比它高的任务都运行完 后才能投入运行。 后才能投入运行。
12
的性能特点-2 µC/OS的性能特点 的性能特点
抢占式(Preemptive) 抢占式(Preemptive)实时结构 多任务 C/OS-II可以管理64个任务 其中保留8个给系统。 可以管理64个任务, µC/OS-II可以管理64个任务,其中保留8个给系统。应用程序最多 可以有56 56个任务 可以有56个任务 可确定性 全部µ C/OS-II的函数调用与服务的执行时间是可确定的 的函数调用与服务的执行时间是可确定的。 全部µ C/OS-II的函数调用与服务的执行时间是可确定的。 任务栈 每个任务有自己单独的栈, 允许每个任务有不同的栈空间, 每个任务有自己单独的栈, 允许每个任务有不同的栈空间,以便减 少应用程序对RAM的需求。 RAM的需求 少应用程序对RAM的需求。 系统服务 C/OS-II提供很多系统服务 例如邮箱、消息队列、信号量、 提供很多系统服务, µC/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大 小固定的内存的申请与释放、时间相关函数等。 小固定的内存的申请与释放、时间相关函数等。 中断管理 中断可以使正在执行的任务暂时挂起, 中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该 中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行, 中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中 断嵌套层数可达255 255层 断嵌套层数可达255层。 稳定性与可靠性 13

最新-QNX操作系统及网络设备驱动模块 精品

最新-QNX操作系统及网络设备驱动模块 精品

QNX操作系统及网络设备驱动模块摘要介绍嵌入式操作系统的微内核结构、基于-的网络子系统、网络设备驱动程序的组成;给出以以太网网设备驱动程序为例的详细说明,包括初始化、从网络设备接收数据,向网络设备发送数据和网络设备信息的统计。

关键词网络驱动程序是业界公认的86平台上最好的嵌入式实时操作系统之一。

它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到、、等内核的移植,成为在国内广泛应用的嵌入式实时操作系统。

本文简单介绍内核和网络结构的特点,针对目前热门的网络应用环境,讨论网络设备驱动程序的结构和编写。

1内核简介的微内核结构是它区别于其它操作系统的显著特点。

目前嵌入式系统中,操作系统和应用程序之间的关系大概可以归纳为图1~图3所示的三种情况。

平板式内存结构,如图1所示,所有的程序都使用同一个地址空间,不加保护;应用程序可以自由访问所有空间,效率较高,但是任何应用程序指针错误都可能会导致内核崩溃。

大内核内存结构,如图2所示,操作系统内核和各种驱动程序、网络协议在同一个地址空间,应用程序在单独空间;内核模块同处于一个保护空间,运行效率高,范文先生网收集整理应用程序无法直接访问保护空间,系统稳定性大大提高。

缺点是,由于内核模块例如网络驱动处于保护空间,因此调试困难,任何驱动程序的修改都要重新编译内核,无法做到驱动的动态加载和卸载。

的微内核结构,如图3所示,内核独立自处于一个被保护的地址空间;驱动程序、网络协议和应用程序处地程序空间中。

微内核结构的优点①驱动程序、网络协议、文件系统等操作系统模块和内核相互独立,任何模块的故障都不会导致内核的崩溃;②驱动程序、网络协议、文件系统和应用程序都处于程序空间,都调用相同的内核,开发与调试和应用程序没有区别;③操作系统功能模块可以根据需要动态地加载或卸载,不需要编译内核。

在高可靠性要求的情况下,可以编写监视模块,对可靠性要求高的模块进行监视,必要的时候重新启动或重新加载而无须重启系统。

微内核技术的概念和功能

微内核技术的概念和功能微内核技术是一种操作系统内核设计思想,主要目的是将操作系统内核划分为若干个独立的、功能单一的模块,每个模块运行在用户空间,通过消息传递进行通信和协作。

与传统的宏内核相比,微内核技术具有更好的可扩展性、可靠性和安全性等优势。

它能够实现操作系统的高效运行,提供良好的系统可维护性和灵活性,同时适应多种计算机硬件平台和应用场景。

在微内核技术中,内核被分为多个独立的模块,每个模块负责一个特定的功能,例如进程管理、文件系统、设备驱动等。

这些模块通过消息传递进行通信,而不是直接的函数调用。

这种设计使得每个模块只需要关注自身的功能而不需要知道其他模块的具体实现细节,提高了代码的可维护性和可重用性。

微内核技术的主要功能包括:1. 进程管理:微内核负责管理系统中的进程,包括进程的创建、调度、挂起、恢复等。

通过消息传递,不同的进程可以进行通信和协作,提高了系统的可扩展性和灵活性。

2. 内存管理:微内核负责对系统内存的分配和管理,包括虚拟内存的映射、页面置换、内存保护等。

通过独立的内存管理模块,可以灵活地适应不同的内存需求和硬件平台。

3. 文件系统:微内核提供文件系统的管理功能,包括文件的打开、读写、关闭等操作。

通过消息传递,不同的文件系统模块可以提供不同的文件系统服务,满足不同应用的需求。

4. 设备驱动:微内核负责管理系统中的设备驱动,包括设备的初始化、中断处理、数据传输等。

通过独立的设备驱动模块,可以方便地支持不同的设备类型和硬件平台。

5. 安全性:微内核技术可以提供更好的系统安全性,通过模块化的设计,可以对不同的功能模块进行隔离,减少系统的攻击面。

同时,微内核还提供了权限管理和访问控制等安全机制,保护系统和用户数据的安全。

6. 可靠性和可扩展性:由于微内核设计将操作系统内核拆分为多个独立的模块,每个模块运行在用户空间,通过消息传递进行通信,模块之间的故障不会影响整个系统的稳定性。

同时,由于模块的独立性,可以方便地进行模块的添加、删除和替换,提高了系统的可扩展性。

嵌入式操作系统_第3章 任务创建、挂起、恢复、删除


的使用权让给别的任务
任务控制块或被剥 夺了任务控制块时
。 一个正在运行的
而使任务进入任等务待一状旦态响应中
的状态叫做任务的
断申请就会中止
任务的状态及其转换 睡眠状态
运行而去执行中 断服务程序,这 时任务的状态叫
做中断服务状态
系统为任务配备 了任务控制块且 在任务就绪表中 进行了就绪登记, 这时任务的状态 叫做就绪状态。
予任 境处务的存控理储制器位块的置提堆。供了栈运指行针环SP } OS另指控I…_TN外针制C…TB8再(块;U S用,P一它)个除,数了这据保个OS结存数TC构任据BP保务结ri存堆构o;任栈叫务指做//堆针任任栈之务务的优任作一先任务系个级务控统数别堆制另据栈块行结是构构由造,操的每
外还要负责保存任务其他信息。
处于就绪状态的 任务如果经调度 器判断获得了 CPU的使用权, 则任务就进入运
行状态
任务控制块—— 任务控制块结构的主要成员
任务在系统中的身份证
任务控制块是不是像 ty前pe系 dOeS面f_统SsT由谈tK如ru于到c何*tO系S来oT,sC统_B识tS一c存tb别kP在个{t并r;着任管多理务个/一/指的任个向务任任任,务务务堆于就栈控是栈是制顶的块指针 } 的处其的息O基一结控S…一 的 个 惟 任 另不显应II…_T于个构制NN主理 实 提。…C…TT个名务最一B上保,块88外然同 该;UU, 高要器述存这(所需称的直的由我的都的 保, ,T原与个随 ,作以接要。优的优C于系因该数B时 存前记)们身应的解先,先,任据μ用着 它堆。C统系务结面录刻到办决 级任级OO/人 该份任 还就栈SS统有构O法的 来TT务别中还任也了S必关就CC务应是指BB-在有证是问 作控,须的叫SPI处务谈任trI的为相做ai中保管该为制针题 为因to一身?每关该;;到务于控的每。 任块此所存理保寄个信任//任个份(状,不制一识 务还μ//任息务任任工存该存C有务的的务要别 的个/态务务同块一O国证其创数任任作一器都的的任一 标来S资建据务的个的中-当优有家。实务的些务个识S保II前先P是源数任状 。一的起存任状级复 其的。中),用个态别。据态务一该务虚杂 他标也在,志拟性 信

QNX与Vxworks

QNX1.最主要的:支持x86处理器,x86平台上最好的嵌入式实时操作系统之一2.微内核,运行速度快(其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行)3.支持多种CPU,多种总线4.QNX是由QNX软件系统有限公司开发的实时操作系统。

[编辑]基本特征*QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。

它遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具)、部分遵循POSIX.1b(实时扩展)。

它最早开发于1980年,到现在已相当成熟。

[编辑]体系结构*QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。

所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。

[编辑]调度策略QNX 提供POSIX.1b标准进程调度:*32个进程优先级;*抢占式的、基于优先级的正文切换;*可选调度策略:FIFO、轮转策略、适应性策略。

[编辑]系统服务QNX的系统服务:*多种资源管理器,包括各种文件系统和设备管理,支持多个文件系统同时运行,包括提供完全POSIX.1及UNIX语法的POSIX文件系统,支持多种闪存设备的嵌入式文件系统,支持对多种文件服务器(如Windows NT/95、LAN Manager等)的透明访问的SMB文件系统、DOS文件系统、CD-ROM文件系统等。

*设备管理。

在进程和终端设备间提供大吞吐量、低开销接口服务。

*图形/窗口支持。

包括QNX Windows、X Window System for QNX、对MS Windows NT/95和X Window系统的远程图形连接。

*TCP/IP for QNX。

*高性能、容错型QNX网络——FLEET,使得所有连入网络的计算机变成一个逻辑上的超级计算机。

实时操作系统的相关概念资料

者加入被选择的服务,新的或者修改的服务影响限制在系统的一个子 集,进一步地,修改不需要建立一个新的内核。
移植性(Portability):
在微内核结构中,所有与特定处理机的
代码仅仅存在微内核中,因此,需要将这个
系统移植到新的处理机需要作的变化可以尽
可能地少。
可靠性(Reliability):
高优先 级任务 高优先 级任务
低优先 级任务 低优先 级任务
(3)优先级倒置之二 当低优先级的任务向高优先级的任务发 送消息时,高优先级的任务不能运行,直到 低优先级的任务发送消息后才能运行。 没有必要分为两个任务,应该使高优先级 的任务直接调用子程序即可。
高优先 级任务 高优先 级任务 调用
嵌入式实时系统软件的基本特征
具有高速处理、配置专一、结构紧凑和坚固
可靠等特点的实时系统,相应的软件系统应 是一种别有特色、要求更高的实时软件。
实时软件的主要要求
1、实时性 2、有处理异步并发事件的能力 3、快速启动、出错处理和自动复位功能 4、嵌入式实时软件是应用程序和操作系统两 种软件的一体化程序。 5、嵌入式实时软件的开发需要独立的开发平 台

八十年代后期,国外提出了微内核 (microkernel) (如图
5.2.2)的思想, 即将传统操作系统中的许多共性的东西抽 象出来,构成操作系统的公共基础,即微内核,真正具体 的操作系统功能则由构造在微内核之外的服务器实现。这 是一种机制与策略分离的开放式设计思路。在理论上,这 种方法提供了高度的灵活性、模块性和可移植性。
宿主机
目标机

按确定性来分嵌入式实时系统
硬实时
系统对系统响应时间有严格的要求,如果系统响应时 间不能满足,就要引起系统崩溃或致命的错误。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

 29卷 第10期2012年10月微电子学与计算机MICROELECTRONICS &COMPUTERVol.29 No.10October 2012

收稿日期:2012-01-15;修回日期:2012-03-31

基金项目:国家自然科学基金项目(61063001/F020207);广西自然科学基金项目(桂科自0832264)

微内核结构嵌入式实时操作系统的研究与设计邓 昀,程小辉,王新政(桂林理工大学信息科学与工程学院,广西桂林541004)

摘 要:分析了微内核结构在设计嵌入式实时操作系统时的优点,设计了一个微内核结构的嵌入式实时操作系统,整个系统内核由任务管理、任务通信、时钟管理、中断管理、内存管理等模块组成.内核采用抢占式调度和分时调度相结合的调度策略,以及基于查表法的优先级队列管理,使得系统在进行任务调度时能快速的找到所要调度的任务,满足实时性的要求.内核提供多种通信方式,并对控制临界资源访问的信号量进行了特别的设计,便于任务在必要的时候进行优先级继承,很好地解决了抢占式嵌入式操作系统中普遍存在的优先级反转问题.最后,在基于ARM处理器的EL-ARM-830硬件平台,给出了系统的实现.

关键词:微内核结构;嵌入式实时操作系统;任务管理;任务通信;优先级继承中图分类号:TP391.41 文献标识码:A 文章编号:1000-7180(2012)10-0133-07

Study and Design of Embedded Real-time MicrokernelOperating System

DENG Yun,CHENG Xiao-hui,WANG Xin-zheng

(Institute of Information Science &Engineering,Guilin University of Technology,Guilin 541004,China)Abstract:The thesis analyzes the advantage of the structure of micro-kernel when designing the embedded real-time

operating system.An embedded real-time operating system for micro-kernel structureis designed.The kernel of thesystem is made up of the task manager,task communication,clock management,interrupt management,memory

management and other modules.The core uses the combination of preemptive scheduling and time-sharing

scheduling strategy,and priority-based look-up table queue management.It makes the system find the tasks quickly

when dipatching them which meets the real-time requirements.The kernel provides a variety of communication,anddesignes a special control access to critical resources which makes it easy to take priority over other tasks whennecessary.It proposes a good solution to the common problem of inversion of embedded operating systemspreemptive priority.Finally,the thesis gives the system implementation on the ARM-based processor EL-ARM-830hardware platform.Key words:micro-kernel structure;embedded real-time operating system;task management;task communication;

priority inheritance

1 

引言

目前绝大多数的嵌入式系统采用高性能的微内核设计,因为微内核具有功能单一、体积小巧,具有很高的效率,系统响应快等特点,可用于实时性要求的场合,且微内核采用客户-服务器的工作方式,使得系统更易于扩展,符合嵌入式系统的要求.本文描述了一个微内核结构的嵌入式实时操作系统设计,整个系统内核由任务管理、任务通信、时钟管理、中断管理、内存管理等模块组成.内核采用抢占式调度和分时调度相结合的调度策略,以及基于查表法的优先级队列管理,使得系统在进行任务微电子学与计算机2012年调度时能快速找到所要调度的任务,满足实时性的要求.内核提供多种通信方式,并对控制临界资源访问的信号量进行了特别的设计,便于任务在必要的时候进行优先级继承,很好解决了抢占式嵌入式操作系统中普遍存在的优先级反转问题.2 微内核整体结构系统采用模块化结构设计,最多可支持64个优先级队列[1],256个任务,同一优先级队列上有多个任务,对于不同优先级队列的任务采用抢占式的调度策略,对于同一优先级队列上的任务采用时间片轮转的分时调度策略,整个系统中总是就绪的优先级最高的那个队列的任务优先得到执行.系统内核分为任务调度、任务通信、中断管理、临界资源管理、时钟管理、内存管理等几个模块,整体结构如图1所示.图1 系统内核结构为了便于系统在不同硬件平台上移植,不直接采用int、long等数据类型,因为这些数据类型与处理器和编译器有关,而是采用更直观的数据类型表示方式,如8位无符号整数就表示成UINT8,当系统移植到具体的硬件平台时,可根据具体的处理器和编译器来进行设定,如可以用typedef unsignedchar UINT8来定义UINT8.3 任务管理模块的设计系统中每个任务定义了一个任务控制块TCB(Task Control Block),包含与任务相关的所有信息,如任务执行时CPU的所有寄存器中的值、任务的状态以及任务堆栈的内容等.本系统在处理寄存器和堆栈等上下文内容时,没有像LINUX等操作系统那样专门定义一个数据结构,而只是在任务控制块里用了一个指针task-stk-ptr指向这部分内容的存储空间,具体的大小用户可以自己指定,以便于移植.任务控制块TCB的结构如下:typedef struct task-tcb{TASK-STACK*task-stk-ptr;/*指向保存

任务上下文堆栈的指针*

UINT8task-id;/*任务号,必须唯一,*/UINT8task-priority

;/

*任务的优先级,未提

升时与primitive-priority同*

UINT8primitive-priority

;/

*任务的原始优

先级,正常*

UINT8task-name[15];/*保存任务名的字

符数组*

struct task-tcb*task-previous;/*指向任务

链表中的前一个任务控制块*

struct task-tcb*task-next;/*指向任务链

表中的后一个任务控制块*

UINT16total-time;/*时间片轮转调度时分

配给任务的时间数*

UINT16remain-time;/*当被高优先级的任

务剥夺时,如果时间片未用完则保存在此,任务刚开始被调度时与total-time相同*

UINT8task-state;/*任务状态*/void*task-wait;/*指向任务等待的信号量、

事件、或消息的指针*

}TASK-TCB;3.1 

优先级队列结点的设计

在优先级队列表里,每个元素控制着这一优先级队列的任务,系统支持的最大优先级数为64

级[2].在进行任务调度时首先通过task-queue-grp

和task

-queue-tbl

[]两个变量的值来确定当前就

绪的任务中优先级最高的任务所在的队列,然后让最高就绪优先级队列指针queue-high-ready-pt

指向该队列,如果队列的优先级比当前优先级队列指针queue-current-pt所指向的优先级要高,则保

存正在执行的任务的上下文,把当前任务队列指针指向最高就绪优先级队列指针所指的队列,实现运行任务队列的切换,然后从这个队列的队列头取一个任务来运行.在运行中系统总是对queue-cur-

rent-pt指针所指向的队列采用时间片轮转的调度算法,当任务时间片用完后,重新设置时间片,并挂到队列尾,再从队列头取一个任务来运行.如果队列上只有一个任务时,系统重新设置任务时间片后,继续运行该任务.当任务在运行过程中有新的任务就

431

相关文档
最新文档