系列单片机实时操作系统方案

系列单片机实时操作系统方案
系列单片机实时操作系统方案

基于8051系列单片机的实时操作系统设计

1、绪论

8051系列单片机系统广泛应用于工控、仪器仪表、通信等领域,为了避免其软件开发的重复性工作,提高所编软件的可靠性,

结合自主开发的、基于A T89C51单片机为核心的硬件平台,实现了一个基于该平台的实时操作系统。该操作系统具有一个基于C语言的、实时多任务的内核,有较好的移植性。

单片机在嵌入式微控制系统应用中具有十分重要的地位。在嵌入式系统中使用实时操作系统已经成为嵌入式应用的一种趋势,是单片机高水平应用开发的一个标志。一个好的实时操作系统可大大提高控制产品的研制效率,缩短开发时问,有利于多人的分工协作,用RTO S开发的产品稳定性、可靠性也会得到提高。

2、硬件平台简介

2.1 8051系列微控制器简介

目前,8051 系列芯片已达400 多种,可分成3个主要类别:标准8051系列、小型8051系列和扩展8051系列。小型8051系列是8051系列芯片中低成本的类别,端口管脚数目少,不支持片外存储器,主要应用在低成本的消费类产品;扩展8051 系列是8051芯片中加有扩展的片上设备,如CAN 总线控制器、DAC、ADC等,其端口管脚数目比较多,且最近的此类芯片都支持大容量的片外存储器,主要应用在工业及汽车系统中。

本文所述操作系统的硬件平台使用的微控制器是标准8051

系列芯片。因为小型以及扩展的8051系列芯片都是由标准8051系列芯片衍变而来,所以本系统也可以在任何基于8051系列芯片的嵌入式系统上进行移植。

2.2 硬件平台

一个典型的单片机应用系统包括基本部分、输入部分(测控增强部分>

和输出部分(外设增强部分>。基本部分主要是单片机及其外围芯片的扩展(如RAM和ROM>、功能键盘、显示器的配置等,它们是通过内总线连接而成。测控增强部分主要由传感器、变送器、转换器等接口及伺服驱动控制接口构成。外设增强部分主要是外设接口,它通过I/O 口或扩展的I/O 口构成,可接打印机等外设。该实时操作系统是基于A T89C51单片机为核心的单片机系统硬件平台上实现的,其结构如图1所示。

图1硬件平台结构

3、实时操作系统的设计

3.1 实时系统的特点

对于实时响应时间,不同的应用系统有不同的要求,即使在同一个应用系统内部,

不同的应用场合也有不同的要求。在实时系统里,

除了实时响应外,另外一个问题是系统的流通量或吞吐量,实时系统的吞吐量可以定义为每单位时间系统可以处理的事件个数。

实时任务具有截止期,分硬实时、软实时和固实时。硬实时是指如果响应超过了任务截止期,可能会导致严重后果;软实时是指虽然响应超过了任务截止期,但还是有一定的价值;

固实时是指如果超过了截止期才响应处理,就完全没有价值了。实时任务具有可预测性,在最坏情况下的任务的执行时间以及所需数据和资源,都要求对最坏情况的预测与实际的差别尽可能的小,即使在出现峰值负载时, 也应满足其截止期。

3.2 实时操作系统与实时系统的关系及其特点

实时操作系统是实时系统软件的基础,所实现的功能是系统资源的管理和机器功能的扩充。因此实时操作系统和通用操作系统是有一定差别的,有其自己的一些重要特征,包括进程切换快、中断被屏蔽时间短、规模小等。

3.3 嵌入式系统的2种触发方式

在嵌入式系统设计时,通常采用事件触发和时间触发2种方式来实现。

事件触发行为往往通过使用中断实现,事件触发系统在系统总体结构上往往通过提供多级中断服务程序来支持该功能。如果多个中断源可能在“随机的”时间间隔产生中断,则中断响应可能被遗漏。8051的体系结构支持高和低两种不同的中断优先级,将可能出现中断信息丢失的情况。例如,有高优先级的中断1

发生,并在极短的时间内又发生了中断2,这时无论中断2是高优先级还是低优先级中断,中断2的响应都会被延迟,并在一些情况下(如被延迟时间过长等>被完全忽略。

因此,在某些与安全相关的应用系统中选用时间触发方法,这样设计人员能预先安排

可控的顺序,保证一次只处理一个事件,提高了系统的可靠性并降低CPU的负荷,减少存储器的使用量。

3.4 调度器的设计

调度器可以看作是一个简单的操作系统。从底层的角度来看,调度器可看作是一个由许多不同任务共享的定时器中断服务程序,允许以周期性或单次方式来调用任务,其分为合作式调度器与抢占式调度器两大类:合作式调度器提供的是一种单任务的系统结构,比较简单,用很少的代码就可实现,每次只需为一个任务分配存储器,具有可预测性和可靠性,但是在当前的程序运行期间,系统对外界的变化不敏感;抢占式调度器提供了一种多任务的系统结构,比较复杂,必须为抢占任务的所有中间状态分配存储器,对外部事件的响应速度快,但其可预测性和可靠性较低。

实时系统的任务都有一个截止期,单独使用抢占式调度方式或合作式调度方式都不能完全满足实时系统的要求,必须使用一种混合式调度器,根据实时系统的要求来设置定时器的定时时间.假设有2个任务,1个必须在20 ms内完成,另1个必须在30 ms内完成,因此取它们的最大公约数10

ms来作为定时器的定时时间。使用定时器0的模式1来进行定时,则可以计算出T0

的初值为T0D8F0H,程序实现如下(部分程序>:

#define p re_t0H 0xD8

#define p re_t0L 0xF0 / /根据定时时间计算出的初值

void timer_t0_init( void>

{

TMOD = 0x10。 / /设置定时器0的工作模式

TH0 = p re_t0H。

TL0 = p re_t0L。 / /送初值,定时时间为10ms

TR0 = 1。 / /启动定时

ET0 = 1。 / / T0开中断

EA = 1。 / / CPU开中断

}

void attemper_timer0 ( void> interrup t2 using 1 / /定时器0的中断服务程序

{

/ /定时时间到,判断是否进行任务切换(选择最高优先级的任务来执行,代码略>

}

调度器根据在系统进行初始化时用户的预设值将中断和某些外设设置为抢占式任务,抢占式任务是最高优先权的任务。在调度期间,只有1个抢占式任务,该任务一旦开始运行将连续运行到其完成,以减少任务切换所耗费的时间,因此要求这些中断处理任务和外设处理任务的时间必须小于定时器的时间间隔,尽量更短,否则会影响系统对其他中断的响应或对其他设备的处理.对于除用户预设的中断和外设之外的事件将采用分时方式进行处理。

3.5 任务及任务间通信

每个任务都分配在不同的存储空间,通过指针变量3

TASK_pnum来指向任务的首地址。每个任务都有自己的存在状态(运行态、就绪态、休眠态、挂起态和被中断态>和优先级(为了解决任务优先级翻转问题,系统可以通过函数void p

rio_change ( un2signed int 3 task_adr, unsigned char p rio_ st, unsingedchar p rio_ced>来动态调整任务的优先级>,任务间使用信号量或消息队列来进行互相通信。任务的数据结构定义如下:

typedef struct

{

unsigned char task_name。 / /任务名

unsigned char realtask。 / /是否为实时任务, 0为否,其他为是

unsigned char p rio。 / /任务优先级

unsigned char state。 / /任务状态

unsigned char err。 / /出错信息

unsigned char 3 p tos。 / /栈顶指针

unsigned int stk_size。 / /堆栈大小(以字节为单位>

} TASK。

3.6 中断处理

系统中的实时任务不仅包括某些中断处理,还包括部分外设处理任务。中断是一种硬件机制,用于通知CPU有异步事件发生了,系统对中断(T0除外>分2步处理,第1步是中断响应,第2步是中断处理, 共有3种处理方式。

(1>

在中断发生之前不存在实时任务,并且在中断处理过程中也没有其他的中断发生。

中断响应:系统进入临界区,保存当前任务的信息,退出临界区并返回系统。中断处理:由调度器将该中断任务设置为实时任务并执行到结束,系统进入临界区,恢复被打断的非实时任务的信息,并执行该任务。

(2>

在中断发生之前不存在实时任务,但在中断处理过程中有其他的中断发生。中断响应:系统进入临界区,保存当前任务的信息,退出临界区并返回系统。中断处理:由调度器将该中断任务设置为实时任务并执行到结束,选择所发生的中断中急需处理的任务设置为实时任务并立即执行该任务。

(3>

在中断发生之前已存在实时任务,无论在中断处理过程中有没有其他的中断发生,系统的处理过程都是一样的。中断响应:系统进入临界区,修改中断发生标识,退出临界区并返回系统。中断处理:系统继续执行当前实时任务直到结束,选择所发生的中断中急需处理的任务设置为实时任务并立即执行该任务。临界区是指在此段时间内,不允许有任何事件来打断当前任务,比如在保护和恢复中断现场时,为了避免现场信息受到破坏,一般会关掉中断进行处理。如外部中断1的处理程序如下(通过外部中断1和P1口扩展了4个中断,外部中断1比外部中断0的优先级低>。

#define init_open ( > EA = 1 / / CPU开中断

#define init_close ( > EA = 0 / / CPU关中断

extern unsigned char data init_symbol = 0xE0 / / 该变量低5位,表示5个中断发生的标识,其4位分别对应P110~P113扩展的中断,第5位(低到高>表示中断0

extern unsigned char data real_task = 0

void init1_resp ( void> interrup t 3 using 3

{

init_close ( > 。

if ( real_task = = 0>

{ / /保存当前任务现场}

else

{

/ /保留P1的低4位,第5位清零,然后与init_sym2bol相或

}

real_task + + 。

init_open ( > 。

/ /返回系统

}

void init1_deal( void>

{

if ( real_task = = 1>

{ / / 执行中断处理程序

init_close ( > 。

/ /恢复任务现场

init_open ( > 。

real_task - - 。

/ /返回系统执行被中断的任务

}

else

{ / / 继续当前任务

real_task - - 。

/ /判断下一个优先级高的中断并调用该中断处理程序(代码略>

}

}

3.7 存储器管理

使用链表对存储器进行管理,对每个未分配的空闲区按位置顺序进行拉链,每次分配时,从头搜索空闲表,找到第1个满足要求的空闲区就进行分配,但其大小不一定刚好等于所需要的,将其分成2个区,1个按所需分配出去,另1个则仍为空闲区并留在原位置,链表的数据结构定义如下:

typedef struct

{

MEM_chaintb 3 p rve, 3 next。 / /前指针和后指针

unsigned int addr_start。 / /空闲区的起始地址

unsigned int addr_size。 / /空闲区的大小(以字节为单位计算>

}MEM_TABLE。

3.8 外围设备的管理

外部设备主要使用该外设对应的驱动程序。每个所使用到的设备都有自己的私有存储空间,数据结构随设备的类型不同有所变化。对于需要CPU周期性服务的设备(如本系统中的

LCD和键盘>,给它们分配相应的任务,与用户任务一起调度,实现起来比较简单。有些

设备具有自己的中断(如串口>,则可以利用消息队列将用户任务需要的服务通过消息队列排队、缓冲起来,利用中断功能服务。对于既没有自己的中断又不需要CPU周期性服务而且速度较慢的设备,定义一个宏,在宏中申请信号量,然后调用对设备操作的函数并释放信号量。

4、系统调试

由于当初考虑只是要实现一个实时操作系统,所以笔者设计的硬件平台只是向用户提供了总线接口(增大了驱动后的总线接口> 、外部中断接口(对外部中断进行了扩展> 和I/O口(RAM的地址空间0FF00H~0FFFFH用作了I/O口> , 并没有将测控增强部分(模拟量、开关量和数字量的检测>

及外设增强部分(外设、伺服控制和开关量控制>

放入硬件平台,但在操作系统中编写了某些模块的驱动(如A /D 模块的AD574A,ADC0809, D /A 模块的DAC0832 等>。将该操作系统烧入了程序存储器后再进行调试。

4.1 键盘和LCD字符显示器的调试

该步调试要求在LCD字符显示屏上显示预定键对应的英文字母。在没有其他外部事件发生时,测试结果良好;有外部事件发生时,键盘的反应较慢,有时出现不能对按键的反应,

并且LCD字符显示器的刷新时间间隔变长。解决方法:将软件延时程序改为用定时器进行延时。

4.2中断和外设调试

中断调试要求能及时响应中断并处理中断任务(短任务>;外设调试要求能正确处理外设向CPU发送的信息并能够将处理后的信息正确地送出去。用预留的一个I/O口(实际是某

一个地址>来模拟中断发生,

中断采用边沿触发方式,这样对外部地址的一个读或写操作占用的时间完全满足外部中断的高电平和低电平持续时间不短于一个状态周期的要求;用拨码开关、电阻、二极管和74 HC245模拟输入设备;用74HC373、电阻和二极管模拟被控的外设。要求在有中断发生时从指定设备上读出数据,并将读取的数据取反,取反后的数据写入到指定的输出设备。测试结果显示,该操作系统能够在该硬件平台上良好的运行,但在模拟工业的某些环境下,在预留的接口上有时会有干扰信号输入,

所以对系统软件进行了修改,即在操作系统进行初始化的时候,提示用户指出所用到的外部中断接口及硬件平台预留的I/O口,系统对于除此之外的中断和预留的I/O

口所产生的输入信号一律拒绝响应.如果用户需要动态的增加或删除外设,

可通过键盘进入系统设定模式进行设置, 这时系统会通过函数void ex_ init_set ( unsigned char ex_ init_num>和void ex_p rIO _ set(unsigned char ex_ IO_num>来修改初始化时的用户对外部中断和外设的设定,在该模式下,系统将关掉所有外部中断和外设,只响应键盘和刷新屏幕,待设置完成之后再恢复到系统的实时模式下。

5、实时操作系统在智能温度调节器中的应用

5.1 智能温度调节器简介

智能温度调节器由系统控制模块、键盘模块、显示模块、温度采集模块和温度调节模

块5 部分组成。系统控制模块由单片机(A T89C51 > 和数据存储器( 62256> 组成;键盘模块由1 个16 键键盘构成;显示模块由1 个4 ×16 的字符型液晶显示器组成;温度采集模块由1个温度传感器、1片AD574A及相关电路组成;温度控制器由1 片DAC0832及相关电路组成。

5.2 实时操作系统在该仪器中的应用

根据该系统的功能模块将其分成5个普通任务和1个中断任务,5个普通任务按优先级从高到低进行如下排列:

数据采集任务、温度调节任务、键盘扫描任务、键盘处理任务和显示任务。中断任务的功能是判断数据采集是否结束.由于该仪器要求每015

s采样1次,屏幕每2s刷新1次,键盘去抖动的时间为50

ms,故将定时器T0的定时时间设定为50

ms,作为调度器的基本调度时间单位。系统的存储空间进行了如下划分:16个字节作为键盘输入缓冲区,64个字节作为显示输出缓冲区,8个字节作为温度调节任务初始值的存放地址空间(包括基准值等>,其余的作为温度采样值的存储空间,以方便观测温度的变化规律。在该系统中温度的采样值是一个非常重要的变量,涉及到数据采集、温度调节和显示3 个任务,因此使用信号量进行这3个任务之间的通信。对信号量做如下设定:用1个字的空间来存放该变量,低字节存放变量值,高字节表示现在的状态。系统中只有1个中断任务,因此中断任务的处理相对非常简单。

6、结束语

实时多任务操作系统是当前单片机软件系统的发展方向,它使整个计算机系统实现了自动化,具有高效率和高可靠性,实用价值较高。很多实时系统应用在非常重要的地方,所以对系统的可靠性和安全性有着比较高的要求。实时操作系统在智能温度调节器上能够稳定的运行,但该系统在可靠性与安全性等方面仍需进一步的完善。

参考文献

[ 1 ] Michael J Pont. 时间触发嵌入式系统设计模式[M ]. 周敏译. 北京:中国电力出版社, 2004

[ 2 ] 郑宗汉. 实时系统软件基础[M ]. 北京:清华大学出版社, 2003

[ 3 ] 陈明计, 周立功. 嵌入式实时操作系统Small RTOS 51原理及应用[M ]. 北京: 北京航空航天大学出版社, 2004

[ 4 ] 谢宜仁. 单片机实用技术问答[M ]. 北京:人民邮电出版社, 2003

[ 5 ] Michael J Pont. C语言嵌入式系统开发[M ]. 陈继辉译.北京: 中国电力出版社,2003

嵌入式操作系统实验报告

中南大学信息科学与工程学院实验报告 姓名:安磊 班级:计科0901 学号: 0909090310

指导老师:宋虹

目录 课程设计内容 ----------------------------------- 3 uC/OS操作系统简介 ------------------------------------ 3 uC/OS操作系统的组成 ------------------------------ 3 uC/OS操作系统功能作用 ---------------------------- 4 uC/OS文件系统的建立 ---------------------------- 6 文件系统设计的原则 ------------------------------6 文件系统的层次结构和功能模块 ---------------------6 文件系统的详细设计 -------------------------------- 8 文件系统核心代码 --------------------------------- 9 课程设计感想 ------------------------------------- 11 附录-------------------------------------------------- 12

课程设计内容 在uC/OS操作系统中增加一个简单的文件系统。 要求如下: (1)熟悉并分析uc/os操作系统 (2)设计并实现一个简单的文件系统 (3)可以是存放在内存的虚拟文件系统,也可以是存放在磁盘的实际文件系统 (4)编写测试代码,测试对文件的相关操作:建立,读写等 课程设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 I.uC/OS操作系统简介 μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS 和μC/OS-II 是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU 硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU 上。用户只要有标准的ANSI 的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌入到开发的产品中。μC/OS-II 具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB 。μC/OS-II 已经移植到了几乎所有知名的CPU 上。 严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全 可以由用户自己根据需要分别实现。 uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。 uC/OS操作系统的组成 μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。如下图:

操作系统实验报告--实验一--进程管理

实验一进程管理 一、目的 进程调度是处理机管理的核心内容。本实验要求编写和调试一个简单的进程调度程序。通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。 二、实验内容及要求 1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。可根据实验的不同,PCB结构的内容可以作适当的增删)。为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。 2、系统资源(r1…r w),共有w类,每类数目为r1…r w。随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。 3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。建立进程就绪队列。 4、编制进程调度算法:时间片轮转调度算法 本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。 三、实验环境 操作系统环境:Windows系统。 编程语言:C#。 四、实验思路和设计 1、程序流程图

2、主要程序代码 //PCB结构体 struct pcb { public int id; //进程ID public int ra; //所需资源A的数量 public int rb; //所需资源B的数量 public int rc; //所需资源C的数量 public int ntime; //所需的时间片个数 public int rtime; //已经运行的时间片个数 public char state; //进程状态,W(等待)、R(运行)、B(阻塞) //public int next; } ArrayList hready = new ArrayList(); ArrayList hblock = new ArrayList(); Random random = new Random(); //ArrayList p = new ArrayList(); int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //对进程进行初始化,建立就绪数组、阻塞数组。 public void input()//对进程进行初始化,建立就绪队列、阻塞队列 { m = int.Parse(textBox4.Text); n = int.Parse(textBox5.Text); a = int.Parse(textBox6.Text); b = int.Parse(textBox7.Text); c = int.Parse(textBox8.Text); a1 = a; b1 = b; c1 = c; r = m - n; time1Inteval = int.Parse(textBox9.Text); timer1.Interval = time1Inteval; for (i = 1; i <= n; i++) { pcb jincheng = new pcb(); jincheng.id = i; jincheng.ra = (random.Next(a) + 1); jincheng.rb = (random.Next(b) + 1); jincheng.rc = (random.Next(c) + 1); jincheng.ntime = (random.Next(1, 5)); jincheng.rtime = 0;

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

四种实时操作系统特性进行分析和比较 https://www.360docs.net/doc/8a10883961.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微内核提供以下服务:核心启动和停止、底层内存管理、出错处理、中断处理、多任务、底层同步和互斥支持。

实时操作系统报告

实时操作系统课程实验报告 专业:通信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];

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 调度算法。

实时操作系统 期末报告

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

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

嵌入式实时操作系统实验报告

嵌入式实时操作系统实验报告 任务间通信机制的建立 系别计算机与电子系 专业班级***** 学生姓名****** 指导教师 ****** 提交日期 2012 年 4 月 1 日

一、实验目的 掌握在基于嵌入式实时操作系统μC/OS-II的应用中,任务使用信号量的一般原理。掌握在基于优先级的可抢占嵌入式实时操作系统的应用中,出现优先级反转现象的原理及解决优先级反转的策略——优先级继承的原理。 二、实验内容 1.建立并熟悉Borland C 编译及调试环境。 2.使用课本配套光盘中第五章的例程运行(例5-4,例5-5,例5-6),观察运行结果,掌握信号量的基本原理及使用方法,理解出现优先级反转现象的根本原因并提出解决方案。 3.试编写一个应用程序,采用计数器型信号量(初值为2),有3个用户任务需要此信号量,它们轮流使用此信号量,在同一时刻只有两个任务能使用信号量,当其中一个任务获得信号量时向屏幕打印“TASK N get the signal”。观察程序运行结果并记录。 4. 试编写一个应用程序实现例5-7的内容,即用优先级继承的方法解决优先级反转的问题,观察程序运行结果并记录。 5.在例5-8基础上修改程序增加一个任务HerTask,它和YouTask一样从邮箱Str_Box里取消息并打印出来,打印信息中增加任务标识,即由哪个任务打印的;MyTask发送消息改为当Times为5的倍数时才发送,HerTask接收消息采用无等待方式,如果邮箱为空,则输出“The mailbox is empty”, 观察程序运行结果并记录。 三、实验原理 1. 信号量 μC/OS-II中的信号量由两部分组成:一个是信号量的计数值,它是一个16位的无符号整数(0 到65,535之间);另一个是由等待该信号量的任务组成的等待任务表。用户要在OS_CFG.H中将OS_SEM_EN开关量常数置成1,这样μC/OS-II 才能支持信号量。

嵌入式实时操作系统vxworks实验教程[1]

???VxWorks 偠 ? Laboratory Tutorial for Embedded Real ˉtime Operating System VxWorks ?? ? ? ? ? ? ? 2003 10

???VxWorks 偠 ? ? 1 ???? (1) 1.1 ?? (1) 1.2 ??? (7) 2 ? MPC860 (16) 3 ???VxWorks ? ? Tornado (25) 3.1 ???VxWorks (25) 3.2 Tornado? ? (43) 4 VxWorks?BootRom (48) 5 偠 (55) 5.1 偠??Tornado??? (55) 5.2 偠?? ??? ? ? (74) 5.3 偠?? ? ? ?? (78) 5.4 偠 ?? ??? (101) 5.5 偠?? ?????? ?? (110) 5.6 偠 ? ?????? ?? (116) ? A hwa-xpc860 偠 (120)

1 ???? ?? ?? 催? ?? ??? ?? ? ? ?? ??Ё?????? ? ?? ?? ? ? ?? ?? (Embebdded computer) Ё??? ?? ? ??? ⑤?20??60 ?? ????? ? ????? ? 1.1.1 ???? ??? ?? ? Н? ??? ????? ?? ?? ???? ???? ?? ?? ?? ?? ???? ??? ????? ? ?????BIOS? ? ? ???? ?催 ? ? ? ㄝ???? ? ??? ? ? ? ?????????? ???? ?? ? ? ? ? ???? ?? ? ? ???? ?ㄝ???? ???? ??? ? ? ??? ? ???? ? ? ?? ㄝ ?? ? ??? ? ?? ? (control)???Mointer) ??(Managemet)ㄝ ?? 1.1.2 ? ?????? ? ? 1.1. 2.1 ? ?? ? ?? ??4?? ? 1? ? ? ? ?? ? ? ???Ё ????? ???? ?? ? ? ?? ?2? ? ??? ?? ?????? ? ????? ??? П? ??? ??????? ? ?? ???? ? 3? ? ? ? ????? ?? ? 催 ? ? ? 4? ? 乏 ? ?? ?? ? ? ? ??? ? ? Ё??∴??? ?? ?? ?? ? mW??uW??1.1.2.2 ? ???? ???? ?? ?? ? ? ?? ? ??? ?? ? ? ? ? ???1000 ??????? 30 ?? ?

实时操作系统实验报告2

实时操作系统实验报告 专业:11通信工程 学号:20110306136 姓名: 王帅 指导老师:申屠浩

实验二 任务管理实验 实验目的: 1、理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程; 2、掌握μC/OS -II 中任务管理的基本方法(挂起、解挂); 3、熟练使用μC/OS -II 任务管理的基本系统调用。 实验要求与思路: 为了体现任务的各个基本状态及其变迁过程,本实验设计了T0、T1和T3三个任务,它们交替运行,如图2-2所示。 T0 T1 T2 T3 T4 T5 T6 T7 T8 图2-2 注意: 图中的栅格并不代表严格的时间刻度,而仅仅表现各任务启动和执行的相对先后关系。 说明: 在系统完成初始化后,可以先创建并启动优先级最低的TaskStart ,由它创建其他3个应用任务T0、T1和T2,之后整个系 T0 T2 T1 T0 T1 T2 T1 T0

统的运行流程如下: 1)优先级最高的T0开始执行,之后T0挂起自己; 2)然后系统调度选中T1开始执行,之后T1挂起自己; 3)接着系统调度选中T2,之后唤醒T0; 4)如此循环 实现提示: 在启动任务中创建三个任务后,应挂起任务1和任务2。 在每个任务恢复其它任务并挂起自己之前,显示当前三个任务的状态,并延时1秒。 函数说明: void PC_GetDateTime (char *s); 获取"YYYY-MM-DD HH:MM:SS"格式的时间字串存放在字符串s中,s的长度最少为21字节。 void PC_DispStr (INT8U x, INT8U y, INT8U *s, INT8U color); 在y行x列以color颜色值显示字串s,注意color由背景色和前景色两种颜色构成。 INT8U OSTimeDlyHMSM (INT8U hours, INT8U minutes, INT8U seconds, INT16U milli); 按时、分、秒、毫秒设置进行延时。 void OSTimeDly (INT16U ticks) 按ticks值进行延时,1 ticks一般为10ms。 INT32U OSTimeGet (void)

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

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

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

操作系统实验心得(精选多篇)

操作系统实验心得 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。

大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域 3)其他 例如: <1>定义了指针后记得初始化,在使用的时候记得判断是否为 null <2>在使用数组的时候是否被初始化,数组下标是否越界,数组元素是否存在等 <3>在变量处理的时候变量的格式控制是否合理等

操作系统实验报告

实验报告 实验课程名称:操作系统 实验地点:南主楼七楼机房 2018—2019学年(一)学期 2018年 9月至 2019 年 1 月 专业: 班级: 学号: 姓名: 指导老师:刘一男

实验一 实验项目:分时系统模拟 实验学时:2实验日期: 2018-10-25 成绩: 实验目的利用程序设计语言模拟分时系统中多个进程按时间片轮转调度算法进行进程调度的过程; 假设有五个进程A,B,C,D,E,它们的到达时间及要求服务的时间分别为:进程名 A B C D E 到达时间0 1 2 3 4 服务时间 4 3 4 2 4 时间片大小为1,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。 执行过程并计算各进程的周转时间及带权周转时间。 轮转调度:BDACE

(1)修改时间片大小为2,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间。 轮转调度:ADBCE (2)修改时间片大小为4,利用程序模拟A,B,C,D,E五个进程按时间片轮转的调度及执行过程并计算各进程的周转时间及带权周转时间.

顺序:ABCDE 1、思考 时间片的大小对调度算法产生什么影响?对计算机的性能产生什么影响?答:通过对时间片轮转调度算法中进程最后一次执行时间片分配的优化,提出了一种改进的时间片轮转调度算法,该算法具有更好的实时性,同时减少了任务调度次数和进程切换次数,降低了系统开销,提升了CPU的运行效率,使操作系统的性能得到了一定的提高。 A B C D E 时间片为1 周转时间12 9 14 8 13 3 3 3.5 4 3.25 带权周转 时间 时间片为2 周转时间8 12 13 7 13 2 4 3.25 3.5 3.25 带权周转 时间 时间片为4 周转时间 4 6 9 10 13 1 2 2.25 5 3.25 带权周转 时间

嵌入式实时操作系统-RTOS和PC上的区别

嵌入式实时操作系统:RTOS和PC上的区别 嵌入式实时系统中采用的操作系统我们称为嵌入式实时操作系统,它既是嵌入式操作系统,又是实时操作系统。作为一种嵌入式操作系统,它具有嵌入式软件共有的可裁剪、低资源占用、低功耗等特点;而作为一种实时操作系统(本文对实时操作系统特性的讨论仅限于强实时操作系统,下面提到的实时操作系统也均指强实时操作系统),它与通用操作系统(如Windows、Unix、Linux等)相比有很大的差别,下面我们将通过比较这两种操作系统之间的差别来逐步描述实时操作系统的主要特点。我们在日常工作学习环境中接触最多的是通用操作系统,通用操作系统是由分时操作系统发展而来,大部分都支持多用户和多进程,负责管理众多的进程并为它们分配系统资源。分时操作系统的基本设计原则是:尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。由此可以看出,分时操作系统注重平均表现性能,不注重个体表现性能。如对于整个系统来说,注重所有任务的平均响应时间而不关心单个任务的响应时间,对于某个单个任务来说,注重每次执行的平均响应时间而不关心某次特定执行的响应时间。通用操作系统中采用的很多策略和技巧都体现出了这种设计原则,如虚存管理机制中由于采用了LRU等页替换算法,使得大部分的访存需求能够快速地通过物理内存完成,只有很小一部分的访存需求需要通过调页完成,但从总体上来看,平均访存时间与不采用虚存技术相比没有很大的提高,同时又获得了虚空间可以远大于物理内存容量等好处,因此虚存技术在通用操作系统中得到了十分广泛的应用。类似的例子还有很多,如Unix文件系统中文件存放位置的间接索引查询机制等,甚至硬件设计中的Cache技术以及CPU 的动态分支预测技术等也都体现出了这种设计原则。由此可见,这种注重平均表现,即统计型表现特性的设计原则的影响是十分深远的。 而对于实时操作系统,前面我们已经提到,它除了要满足应用的功能需求以外,更重要的是还要满足应用提出的实时性要求,而组成一个应用的众多实时任务对于实时性的要求是各不相同的,此外实时任务之间可能还会有一些复杂的关联和同步关系,如执行顺序限制、

实时操作系统实验

实时操作系统实验报告 专业:10通信工程 学号:20100306110 姓名: 汪洁 指导老师:申屠浩

实验一任务管理实验 实验目的: 1.理解任务管理的基本原理,了解任务的各个基本状态及其变迁过程; 2.掌握μC/OS-II 中任务管理的基本方法(挂起、解挂); 3.熟练使用μC/OS-II 任务管理的基本系统调用。 实验要求与思路: 为了体现任务的各个基本状态及其变迁过程,本实验设计了T0、T1 和T3 三个任务,它们交替运行,如图所示 说明: 在系统完成初始化后,可以先创建并启动优先级最低的TaskStart,由它创 建其他3 个应用任务T0、T1 和T2,之后整个系统的运行流程如下: 1)优先级最高的T0 开始执行,之后T0 挂起自己; 2)然后系统调度选中T1 开始执行,之后T1 挂起自己; 3)接着系统调度选中T2,之后唤醒T0; 4)如此循环 实验程序: #include "includes.h" #define TASK_STK_SIZE 512 OS_STK TaskStk1[TASK_STK_SIZE]; OS_STK TaskStk2[TASK_STK_SIZE]; OS_STK TaskStk3[TASK_STK_SIZE]; OS_STK TaskStartStk[TASK_STK_SIZE]; void Task1(void *data); void Task2(void *data); void Task3(void *data); /* Function prototypes of tasks*\ void TaskStart(void *data); /* Function prototypes of Startup task */

四种实时操作系统的分析比较

四种实时操作系统的分析比较 本文对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux--新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux。 近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,因而越来越引起人们的重视。 1、基本特征概述 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是为这样一些应用设计的"严格的"实时系统。 2、体系结构异同 实时系统的实现多为微内核体系结构,这使得核心小巧而可靠,易于ROM 固化,并可模块化扩展。微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来。但它也有弱点,进程间通信和上下文切换的开销大大增加。相对于大型集成化内核系统来说,它必须靠更多地进行系统调用来完成相同的任务。 QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。 LynxOS目前还不是一个微内核结构的操作系统,但它计划使用所谓的"Galaxy"技术将其从大型集成化内核改造成微内核,这一技术将在LynxOS 3.0中引入。新的28Kb微内核提供以下服务:核心启动和停止、底层内存管理、出错

嵌入式实时操作系统报告

学号:1325260453 《嵌入式实时操作系统》课程报告 学院:信息与控制工程学院 专业班级:控制科学与工程 姓名:X X X 成绩:

目次 第一章绪论 (1) 1.1研究背景 (1) 1.2智能手机概述 (1) 1.3L INUX概述 (2) 1.4L INUX主要特性 (3) 1.4.1 开放性 (3) 1.4.2 多用户 (3) 1.4.3 多任务 (3) 1.4.4 良好的用户界面 (3) 1.4.5 设备独立性 (3) 1.4.6 供了丰富的网络功能 (4) 1.4.7 可靠的系统安全 (4) 1.4.8 良好的可移植性 (4) 第二章智能手机操作系统 (5) 2.1智能手机操作系统介绍 (5) 2.2智能手机操作系统比较 (5) 2.2.1 Symbian (5) 2.2.2 Windows Phone (5) 2.2.3 Palm OS (6) 2.2.4 Blackberry (6) 2.2.5 Android (7) 第三章LINUX在智能手机操作系统中的应用 (8) 3.1L INUX的应用 (8) 3.2智能手机系统体系结构 (9) 3.3A NDROID体系结构 (9) 3.3.1 应用层 (10) 3.3.2 应用框架层 (10) 3.3.3 Android运行环境和系统运行库层 (11) 3.3.4 Linux 内核层 (11)

第一章绪论 1.1 研究背景 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成。嵌入式系统过去主要应用于工业控制领域。随着以计算机技术和通讯技术为主的信息技术的快速发展,以及Internet的广泛应用,嵌入式系统除了可以在传统的计算机上运行外,还可以广泛应用于PDA(Personal Digital Assistant,个人数字助理)、机顶盒、VCD、DVD、车载PC、手机等众多电子设备。利用嵌入式软件,人们可以使用手持计算机或移动电话收发Email,或者通过Web TV访问Internet,用Web Phone拨打国际长途电话12I。嵌入式系统将广泛应用于信息家电、工业控制、军事应用、POS(Primary Operating System,主操作系统)网络及电子商务和环境工程等各个领域。业界分析家认为在Internet电话、游戏装置和手持通讯装置的推动下,嵌入式系统将会有突飞猛进的发展。它与Internet紧密结合,支持强大的移动性和智能性,并且具备强大的通讯能力。嵌入式系统发展形式逐步多样化,将为用户提供更多的选择。 嵌入式系统和智能手机密不可分。随着嵌入式系统的发展,智能手机也在不断地进化。今天的智能手机已经向话音、数据、图像综合的方向演变。昔日外形笨重、功能单一的智能手机已是明日黄花。2005年,智能手机发展迅猛,不断推出新的产品,可以说是智能手机发展迅猛的一年。智能手机以其强大的功能和便捷的操作等特点得到人们的青睐。 智能手机作为集语音通信、多媒体和掌上电脑功能于一体的移动通信终端产品,其最初源于掌上电脑,智能手机最早于1999年现身,当时摩托罗拉推出天拓A6188手机,是全球第一部具有触摸屏和中文手写识别输入功能的移动电话,被称为PDA手机的鼻祖。这种新颖的功能整合手机面世后,因为价格一直居高不下,所以未能进入广大普通手机消费者的视野,直到2002年,包括摩托罗拉、爱立信、诺基亚等在内的手机业巨头一连推出了9款PDA手机,这时智能手机才渐成气候,逐渐走进平常人的视野。 与传统手机相比,智能手机的优势非常明显,不但内容丰富,还具有可以无限扩展的强大功能以及硬件的可升级性,这使得智能手机能够真正实现通信、电脑和互联网的融合,而要实现智能手机的这些功能,必须依靠移动互联网。正是因为移动互联网所提供的丰富数据业务,智能手机的发展才如此迅速。 1.2智能手机概述 现代经济的飞速发展,人民生活水平大幅度提高,智能手机已逐渐成为人们日常生活的一部分。从外观看,智能手机更像个PDA,它能在手机上欣赏MP3、下载游戏和MTV、

相关文档
最新文档