1 / 21
文档名称:

vxworks653编程手册.docx

格式:docx   大小:412KB   页数:21页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

vxworks653编程手册.docx

上传人:916581885 2022/3/3 文件大小:412 KB

下载得到文件列表

vxworks653编程手册.docx

相关文档

文档介绍

文档介绍:VxWorks653运行时系统
运行时层
一个vxworks653模块由下面四层组成:
■ core OS—必需
■ partition—至少需要一个 (vThreads 或 COIL-based),每个都在一个分区的操作系_TYPE;
PERIOD : SYSTEM_TIME_TYPE;
DURATION : SYSTEM_TIME_TYPE;
LOCK_LEVEL : LOCK_LEVEL_TYPE;
OPERATING_MODE : OPERATING_MODE_TYPE;
START_CONDITION : START_CONDITION_TYPE;
end record;
type OPERATING_MODE_TYPE is (IDLE, COLD_START, WARM_START, NORMAL);
type START_CONDITION_TYPE is (NORMAL_START,
PARTITION_RESTART,
HM_MODULE_RESTART,
HM_PARTITION_RESTART);
Where:
NORMAL_START is a normal power-up.
PARTITION_RESTART is either due to COLD_START or WARM_START by the partition
itself, through the SET_PARTITION_MODE service.
HM_MODULE_RESTART is a recovery action taken at module level by the HM.
HM_PARTITION_RESTART is a recovery action taken at partition level by the HM.
设置分区模式
SET_PARTITION_MODE函数可以设置分区模式为IDLE,COLD_START,WARM_START,NORMAL。
其中
IDLE模式:分区关闭。分区未被初始化,没有进程正在运行,但是分配给该分区的时间窗口未被改变。
COLD_START模式:分区重启使用冷启动初始化。
WARM_START模式:分区重启使用热启动初始化。
NORMAL模式:激活的进程被调度。
控制分区中的抢占
进程的LOCK_PREEMPTION函数可以为分区中的抢占上锁。该函数增加了分区的锁级,使得进程不能在分区中重调度。当进程访问临界区时,或资源被同一分区中的多个进程共享时,这个能力十分重要。
LOCK_PREEMPTION函数不会影响其他分区的调度。如果一个位于临界区的进程由于分区窗口结束而被中断时,当分区再次运行时仍然是该进程最先运行。
UNLOCK_PREEMPTION函数可以解锁分区的抢占。这个函数降低了分区的锁级,仅当锁级到达零时,进程的重调度才能恢复。
分区调度
对于时间分区,ARINC653提供了两级调度机制。在核心模块级,采用预先确定的基于时间
窗的循环调度算法来调度各个分区,分区没有优先级。核心操作系统根据每个分区的周期与持续时间信息,维护一个固定时间长度的主时间帧,该主时间帧的时间长度为所有分区周期的最小公倍数。静态调度算法为每个分区生成该主时间帧内相应的分区调度窗口,每个分区调度窗口由从主时间帧开始的偏移和期待的持续时间来定义。分区的调度窗口事先定义在配置表中。每个分区在其分区调度窗口内被激活并占用CPU,并保证每个分区在其调度窗口内运行时不被其他分区打断。主时间帧在模块的运行期内周期性的重复,每个主时间帧中拥有相同的分区调度窗口执行次序。
进程管理
APEX进程是包含在APEX分区内的编程单元。同一分区内的进程可以并发执行。进程由可执行程序、数据和栈、程序计数器、栈指针以及优先级期限组成。
进程管理包含创立进程、改变进程当前优先级、得到进程的当前状态、得到进程ID、挂起和恢复进程、停止和启动进程、控制抢占等函数。
进程类型
周期性进程
非周期性进程
进程调度
在分区级,调度单元是APEX进程。每个进程拥有优先级,调度算法