Nucleus实时操作系统分析报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

一、NUCLEUS的内核(KERNEL) (3)

1.1 系统启动 (3)

1.2 初始化线程 (4)

1.3 线程调度 (4)

1.3.1 任务的调度 (5)

1.3.2 中断的调度 (10)

1.3.3 操作系统数据结构的保护 (15)

1.4 任务间通信 (17)

1.4.1 消息管道(Pipes) (18)

1.5 任务的同步 (23)

1.6 定时器 (24)

1.7 内存管理 (24)

1.8 输入/输出设备驱动 (25)

N UCLEUS内核总结: (25)

二、NUCLEUS的开发工具 (27)

2.1 N UCLEUS C++ (27)

2.2 N UCLEUS MNT (27)

2.3 N UCLEUS VNET (27)

2.4 N UCLEUS PC+ (27)

2.5 N UCLEUS FILE (27)

2.6 N UCLEUS CLIB (28)

2.7 N UCLEUS GRAFIX (28)

2.8 N UCLEUS EDE (28)

2.9 N UCLEUS UDB (29)

2.10 N UCLEUS DEBUG+ (29)

2.11 第三方产品的支持 (31)

2.12 SDS S INGLE S TEP (31)

三、NUCLEUS的网络支持 (33)

3.1 I NTERNET套件 (33)

Nucleus NET (33)

Nucleus SNMP (33)

Nucleus RMON (34)

Nucleus SP AN (34)

3.2 N UCLEUS W EB S ERV (34)

3.3 N UCLEUS J VI (34)

3.4 N UCLEUS EPILOGUE (34)

Nucleus实时操作系统是Accelerated Technology公司开发的嵌入式RTOS产品,只需一次性购买Licenses,就可以获得操作系统的源码。

Nucleus购买的灵活性比较大:Kernel,Networking,File System,Web Technology,Target Debugger可以分开购买,如果我们只需要微内核的话只要购买Kernal和Debugger,当前的下位机就是这样配置的。但是,如果以后我们要开发接入服务器和IP Phone的话就必须购买一堆网络协议;上位机要用的话还要购买文件系统。

Nucleus的另一大好处是程序员不用写板支持软件包(BSP),因为操作系统已经开放给程序员,不同的目标板在操作系统BOOT时可以通过修改源码进行不同的配置。对于程序员来说,写BSP是一项比较繁琐的任务,有了OS的源码这项工作就简单多了,同时调试时也可以跟踪到中断、寄存器那一级,简化了硬件的调试。VxWorks和pSOS都必须购买标准的BSP模板工具来写板支持软件包,开发工作量就比较大了。

Nucleus对CPU的支持能力比较强,支持当前流行的大多数RISC、CISC、DSP处理器,比如:80x86(实时、保护模式)、68xxx、PowerPC、i960、MIPS、SH、ARM、ColdFire。Nucleus 系统对于不同的处理器,操作系统的源码大部分是相同的,只有5%的源码是用汇编写的跟CPU 有关。如果使用另外的CPU,则只用修改5、6个汇编程序就可以进行移植,但是对于不同系列的处理器,它们的Compiler、Linker、Debugger是不同的(要另外购买),而且编译预处理的过程也是不一样的,这就要投入一部分力量去进行操作系统的移植。当然,这也是Nucleus的一个优点,VxWorks和pSOS都没有源码,换一个系列的CPU操作系统又要重新购买,实际上他们OS开发的工作量并没有多少,但却造成了用户的重复性投资。

一、Nucleus的内核(Kernel)

Nucleus的核心是一个实时的多任务内核——Nucleus PLUS,具有以下特性(Accelerated Technology公司宣称的):

可移植性:

Nucleus PLUS可用于大多数流行的处理器。因为Nucleus PLUS主要是用标准C写的,移植到新的处理器系列相对很直接。这也就意味着用Nucleus PLUS开发的应用程序也具有很高的可移植性。

可用性:

不像其他的商业内核,Nucleus PLUS的系统调用名直接表明了它的功能。比如,你可以通过Nu_Create_Task系统调用来创建一个任务。Nucleus PLUS的系统调用都设计成具有类似的入口参数和返回值类型。Nucleus PLUS的对象都不隐式地和别的对象相关。比如,邮箱和任务之间是不相关的。因此,用户可以利用多个Nucleus PLUS对象之间的结合形成混合系统调用。

配置:

Nucleus PLUS最终是以C库的形式提供给用户,你可以选择所需要的部分链入到你的应用程序中。

特性:

①、快速响应时间:对临界资源的检测时间不依赖于占有该临界资源的线程执行时间的长短,一旦低优先级线程释放掉临界资源(不管其是否执行完),高优先级线程就会抢占运行。

②、每个任务的执行时间和其他任务的处理时间无关。

③、较高吞吐量:随着任务数目的增多,任务的调度时间为常数。

④、可扩展性:利用现有系统调用的结合可得到新的系统调用。

Nucleus PLUS提供其他实时内核都具有的系统服务,比如:任务控制、任务通信、任务同步、内存管理、可编程的定时器、标准的输入/输出设备接口等。对任务的调度依赖优先级、时间片的方法,可以选择挂起一个任务按照先入先出(FIFO)的顺序或按照优先级的顺序。所有的操作系统对象(任务、邮箱、队列、管道等)都可以动态地创建和删除。创建一个对象时,要指定指定其控制块的内存区域和其它的数据要求(堆栈空间等)。

Nucleus在任务调度时,首先查看任务是否可以抢占,如果不能抢占,则一直执行到任务完成或任务放弃时间片;否则,依靠优先级进行调度,先调入优先级最高的任务,对于优先级相同的任务则分享时间片、轮流调度。

//ben:请问这里的时间片是系统节拍还是由多个节拍组成的时间片,猜测应该就是时间节拍若每个任务分配一些时间片,怎样保证实时?

//错了,

1.1系统启动

对于68K系列的CPU,如果采用CrossCode C编译器的话,Nucleus使用的是CrossCode C

相关文档
最新文档