请教一个问题QNX的微内核为分区提供了什么服务?

最近在研究QNX操作系统,不太了解QNX的微内核为分区提供了什么服务。请高手指点一下
如果在QNX微核上做开发,应用和分区之间的关系是什么?是每次产生一个应用,系统就为该应用创建一个分区么?QNX的分区之间是何种关系?
初出茅庐,什么都不大明白,请高手指点!拜谢

你说的“分区",是不是 Adaptive Partition Scheduler ?

APS的作用是为应用提供一个额外的保障,在需要时,保障应用可以获得指定的CPU能力。

分区的建立是由系统设计人员手工建立的,一个分区可以看做是一个或几个线程的集合,这些线程共享指定的CPU能力。

具体举个例子来说,如果你做一个网络路由器,你可以指定用户界面分区使用10%的CPU,路由服务分区占用85%的CPU,而数据包输入占5%的CPU。这样,即使这路由遭受了DOS袭击,你仍然可以通过用户界面进入系统。

恩,这里所说的动态,是指系统为每个分区分配的CPU时间在系统运行过程中按照各分区活动以进行调整,并合理调度。我看了一部分代码,分区的结构中还有子分区,如果说分区是系统设计人员提前配好的,那子分区有什么作用呢,是在系统运行过程中分区动态创建分区么?也就是说系统运行时的分区数目是不固定的?
QNX的微核支持分区的能力就是创建分区以及分区的动态调度么?还有没有其他的能力?

迫切等待大虾指教~~

我没听说过什么是“子分区”。APS的分区里,应该是一个或几个线程的集合。这些线程所使用的CPU时间加起来,(在全负荷时)不应超过预先分配给分区的预算。

分区的创建,分区预算的设置与修改,是可以动态进行的(分区数不固定)

微内核支持分区的建立、预算的设置修改,以及保证按分区的预算进行调度。APS还有一个“临界线程”的概念,也由微内核来支持。

要注意的是,调度不只是考虑分区预算那么简单,还有一个“自适应”(Adaptive)的概念。简单地说,如果一个分区有许多线程希望使用CPU(超过该分区的预算),而别的分区没有用满其预算时的调度控制。

谢谢您的回答,很受用。
我说的子分区,意思是这样的,系统设计人员进行初步的分区的划分,这个空间对于某个应用来说可能比较大,有多余的空间。
那么是否在运行时,可根据实际情况,将空间比较大的分区再进行划分,新划分出的分区(就是我说的子分区)可以继承主分区的特性,也可以不继承主分区的特性,拥有自己的特性。
还有就是如果分区的数目是不固定的,在什么情况下将产生新分区?

没有这样的子分区,如果分区时间有多,会自动分配给别的需要cpu的分区,这就是"自适应"的基本。

操作系统不会自动生成分区,分区是通过专门的内核调用来产生的。

哦,这样啊。内核为创建分区提供系统调用么?
那services\system\public\kernelmempart.h头文件注释中提到的 memory partition应该怎么理解呢?这个是分区的含义么?
services\system\public\kernel\memclass.h中的memory class又是什么意思?
services\system\public\kernel\schedpart.h中的scheduler partition又应该怎么理解?
刚刚开始接触,很多地方不明白,还请大虾指导!

那两个跟memory有关的,是另外一个新的分区技术,叫内存分区;大致是同APS意思相同,是用来保证分区里的进程的内存使用量的。我的理解,这个技术还没有正式release吧。

可以这么理解么?APS只是提供了时间上的隔离,解决了调度问题,而不提供空间上的隔离。
空间上的隔离采用memory partiton来实现?

对,就是这个意思。