vxworks任务管理-哈尔滨工业大学备课讲稿.ppt

嵌入式操作系统 2.5 代码的共享和重入 ? VxWorks提倡:单个子程序的备份或子程序库被多 个不同的任务调用 ? 定义:一个被多个任务调用的单个备份成为共享 代码 VxWorks动态链接功能很容易实现代码共享 嵌入式操作系统 重入 ? 共享代码必须是可重入的: – 一个子程序是可重入的,如果该程序的单个备 份可以被多个任务同时调用而不会发生冲突 ? 典型的冲突: – 对全局或静态变量的修改 ? VxWorks的很多子程序是可重入的 – 惯例:所有somename_r()命名的子程序被认为 是不可重入的 – VxWorks的I/O和驱动程序是可重入的 嵌入式操作系统 ? 大部分VxWorks函数使用下列3种重入技术: ? 动态堆栈变量 – 这种函数一般是纯代码,除动态堆栈变量外没有自己 的数据,以调用者提供的数据为参数进行操作。 ? 受信号量保护的全局和静态变量 – 这种函数一般含有公共数据,在调用时,必须借助于 互斥机制,禁止任务同时在代码临界区域内执行,明 确地实现重入。 ? 任务变量 – 一些可被多个任务同时调用的程序,程序中的全局变 量或静态变量对每次任务的调用需要不同的值。 嵌入式操作系统 VxWorks与Linux比较 ? 任务创建函数:taskSpawn()与fork()/e

文档评论(0)

1亿VIP精品文档

相关文档