1 实时操作系统概述 31.1 实时操作系统 31.2 基本概念 32 VxWorks的系统综述 42.1 VxWorks 42.2 Tornado 63 VxWorks操作系统基础 73.1 VxWorks的任务 73.1.1 多任务 73.1.2 任务的状态迁移 83.1.3 Wind内核的任务调度 93.1.4 任务控制 93.1.5 任务扩展性 123.1.6 任务错误状态:errno 133.1.7 任务异常处理 143.1.8 共享代码和代码重入 143.1.9 VxWorks的系统任务 173.2 任务间通信 183.2.1 共享数据结构 183.2.2 互斥 183.2.3 信号量Semaphores 19 二值信号量 20 互斥信号量 22 计数信号量 23 信号量的特殊参数 243.2.4 消息队列 243.2.5 管道 263.2.6 跨网络的任务间通信 263.2.7 信号 263.3 中断服务代码 273.3.1 应用代码与中断连接 273.3.2 中断堆栈 283.3.3 ISRs的一些特殊限制 283.3.4 中断级别的异常 283.3.5 保持高中断级别 293.3.6 对高中断级别的ISRs的一些附加限制 293.3.7 中断与任务间的通信 293.4 看门狗计时器Watchdog Timers 294 VxWorks中的函数库: 304.1 TaskLib: 304.2 ErrnoLib: 304.3 SigLib: 314.4 LstLib: 314.5 MemLib: 32

注:本文档主要是对VxWorks内核的一个简单介绍;由于word经常把一句话的第一个字母变成大写,所以文中函数名的第一个字母的大小写可能不对。1 实时操作系统概述1.1 实时操作系统在计算的早期开发的操作系统的最原始的结构形式是一个统一的实体(monolithic)。在这样的系统中,提供的不同功能的模块,如处理器管理、内存管理、输入输出等,通常是独立的。他们在执行过程中并不考虑其他正在使用中的模块,各个模块都以相同的时间粒度运行,即严格按时间片分时方式运行。 由于现代实时环境需要许多不同的功能,以及在这样的环境中存在的并发活动所引起的异步性和非确定性,操作系统变得更加复杂。所以早期操作系统的统一结构的组织已经被更加精确的内部结构所淘汰。

层次结构的起点内核操作系统的最好的内部结构模型是一个层次性的结构,最低层是内核。这些层次可以看成为一个倒置的金字塔,每一层都建立在较低层的功能之上。 内核仅包含一个操作系统执行的最重要的低层功能。正象一个统一结构的操作系统,内核提供了在高层软件与下层硬件之间的抽象层。然而,内核仅提供了构造操作系统其他部分所需的最小操作集。 对一个实时内核的要求。一个实时操作系统内核需满足许多特定的实时环境所提出的基本要求,这些包括: 多任务:由于真实世界的事件的异步性,能够运行许多并发进程或任务是很重要的。多任务提供了一个较好的对真实世界的匹配,因为它允许对应于许多外部事件的多线程执行。系统内核分配CPU给这些任务来获得并发性。抢占调度:真实世界的事件具有继承的优先级,在分配CPU的时候要注意到这些优先级。基于优先级的抢占调度,任务都被指定了优先级, 在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务被分配CPU资源。换句话说,当一个高优先级的任务变为可执行态,它会立即抢占当前正在运行的较低优先级的任务。 快速灵活的任务间的通信与同步:在一个实时系统中,可能有许多任务作为一个应用的一部分执行。系统必须提供这些任务间的快速且功能强大的通信机制。内核也要提供为了有效地共享不可抢占的资源或临界区所需的同步、互斥机制。方便的任务与中断之间的通信:尽管真实世界的事件通常作为中断方式到来,但为了提供有效的排队、优先化和减少中断延时,我们通常希望在任务级处理相应的工作。所以需要杂任务级和中断级之间存在通信。性能边界:一个实时内核必须提供最坏情况的性能优化,而非针对吞吐量的性能优化。我们更期望一个系统能够始终以50微妙执行一个函数,而不期望系统平均以10微妙执行该函数,但偶尔会以75微妙执行它。 特殊考虑:由于对实时内核的要求的增加,必须考虑对内核支持不断增加的复杂功能的要求。这包括多进程处理,Ada和对更新的、功能更强的处理器结构如RISC的支持。 拥有其它名字的内核 许多商用化的内核支持的功能远强于上面所列的要求。在这方面,他们不是真正的内核,而更象一个小的统一结构的操作系统。因为他们包含简单的内存分配、时钟管理、甚至一些输入输出系统调用的功能。

1.2 基本概念任务(TASK

vxworks系统是用c语言写的吗,VxWorks操作系统基本.doc相关推荐

  1. c语言背单词系统刘小飞,C语言背单词课程设计报告(软件工程).doc

    C语言背单词课程设计报告(软件工程) 三亚学院 <C语言程序设计>课程设计 题 目 背单词 专 业 软件工程 班 级 1101 学 生 龚方盛 周艺冠 学 号 1110750064 111 ...

  2. vxworks 系统学习

    原创 vxWorks系统中vxbus机制总结 先介绍一下vxWorks的设备以及驱动的表示方法,以及总的关系:设备和驱动根本都抽象成一个结构体,设备结构体中包含了设备名字.ID号.功能函数指针等必备的 ...

  3. 服务器系统怎么写,服务器操作系统语言写的

    服务器操作系统语言写的 内容精选 换一换 简要介绍PHP-FPM(PHP FastCGI Process Manager),PHP FastCGI进程管理器,用于管理PHP进程池的软件,用于接受web ...

  4. crm系统用什么语言写的_什么是CRM系统以及如何正确选择

    crm系统用什么语言写的 In modern business the need of automation in various processes have already become comm ...

  5. C语言写疫情防控系统(easyx图形界面)

    C语言写疫情防控系统(easyx图形界面) 系统功能描述 管理员界面: 输入管理员账号.密码登录管理员界面. 对学生信息进行增.删.改.查,学生信息包括姓名.学号.密码.邮箱.电话.学院:对全体学生信 ...

  6. c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目

    C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

  7. C语言并发执行的进程怎么写,多进程并发写文件 多进程并发售票 用c语言写

    tcp多进程并发文件服务器代码? 线程是相对独立的执行单位,是计算机系统进行调度的最小单位,其切换由操作系统控制,称之为短作业调度.换句话说您没有任何必要去手动调度线程.如果您想要实现的是连接分配的话 ...

  8. mapreduce编程实例python-使用Python语言写Hadoop MapReduce程序

    原标题:使用Python语言写Hadoop MapReduce程序 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 在本教程中,我将描述如何使用Pytho ...

  9. 在linux系统下使用C语言操作临时文件

    有时程序需要存储很大量的数据,或者在几个进程间交换数据,这时您可能考虑到使用临时文件.使用临时文件要考虑几个问题: 1.保证临时文件间的文件名不互助冲突. 2.保证临时文件中内容不被其他用户或者黑客偷 ...

最新文章

  1. 适配器模式(三种)简单使用
  2. eclipse 无法解析导入 javax.servlet 的解决方法
  3. 49字母异位词分组(哈希表)
  4. 微服务间保持事务一致性
  5. 【MySQL】事务隔离级别
  6. [NVIDIA] Ubuntu 20.04 安装 nvidia-460 + cuda-11.2
  7. mysql 分页_百万数据下mysql分页问题
  8. 那些年,我考过的IT证书
  9. vue + elementUI 框架下给el-table 增加一条数据,默认滚动条定位到表格的最底部
  10. 移动Web开发字体格式选择(附.woff\.woff2 兼容性)
  11. js鼠标移入改变颜色,移除还原
  12. Python 阶段性总结《抽奖系统》(文末附代码地址)
  13. [Redis]redis-cli命令大全
  14. python基本输入输出函数有_python基本输入输出函数与变量类型
  15. python数据分析买什么书_向大家介绍我的新书:《基于股票大数据分析的Python入门实战》...
  16. 大学毕业4年-回顾和总结(2)-钱,收入和支出
  17. WPF 使用VLC播放rtsp网络视频流
  18. 怎么将简历和个人作品做成二维码?个人资料如何转二维码?
  19. 世界各国在海洋探索领域的进展
  20. 并不想吹牛皮,但!为了把Github博客粉丝转移到公众号,我干了!

热门文章

  1. L1-013.计算阶乘和
  2. MAC 系统下允许NTFS磁盘读写
  3. 高性能队列 Disruptor
  4. Android Studio导入Eclipse项目
  5. UML系列——OO Unit4分析和学期总结
  6. 微信域名屏蔽检测方法 微信域名检测接口的机制
  7. bzoj 1026: [SCOI2009]windy数
  8. Window命令行工具操作文件
  9. php获取对象属性值
  10. BestCoder4 1002 Miaomiao's Geometry (hdu 4932) 解题报告