VxWorks概念

VxWorks操作系统的集成环境叫Tornado。Tornado集成环境提供了高效明晰的图形化的实时应用开发平台,它包括一套完整的面向嵌入式系统的开发和调测工具。Tornado环境采用主机-目标机交*开发模型,应用程序在主机的Windows环境下编译链接生成可执行文件,下载到目标机,通过主机上的目标服务器(Target   Server)与目标机上的目标代理(Target   Agent)的通信完成对应用程序的调试、分析。它主要由以下几部分组成:     
    
  VxWorks高性能的实时操作系统;     
  *   应用编译工具;     
  *   交互开发工具;     
    
  下面对Tornado集成环境的各组件功能分别介绍:     
    
  *   Tornado开发环境     
  Tornado是集成了编辑器、编译器、调试器于一体的高度集成的窗口环境,同样也可以从Shell窗口下发命令和浏览。     
    
  *   WindConfig:Tornado系统配置     
  通过WindConfig可选择需要的组件组成VxWorks实时环境,并生成板级支持包BSP的配置。通过修改config.h可以实现WindConfig的所有功能,并且,可以实现WindConfig不能实现的功能。     
    
  *   WindSh:Tornado外壳     
  WindSh是一个驻留在主机内的C语言解释器,通过它可运行下载到目标机上的所有函数,包括VxWorks和应用函数。Tornado外壳还能解释常规的工具命令语言TCL。     
    
  WindSh不仅可以解释几乎所有的C语言表达式,而且可以实现所有的调试功能。它主要有以下调试功能:下载软件模块;删除软件模块;产生任务;删除任务;设置断点;删除断点;运行、单步、继续执行程序;查看内存、寄存器、变量;修改内存、寄存器、变量;查看任务列表、内存使用情况、CPU利用率;查看特定的对象(任务、信号量、消息队列、内存分区、类);复位目标机。     
    
  *   浏览器     
  Tornado浏览器可查看内存分配情况、任务列表、CPU利用率、系统目标(如任务、消息队列、信号量等)。这些信息可周期性地进行更新。     
    
  *   CrossWind:源码级调试器     
  源码级调试器CrossWind提供了图形和命令行方式来调试,可进行指定任务或系统级断点设置、单步执行、异常处理。     
    
  有些功能如修改内存、寄存器、变量的值通过菜单操作是无法实现的,需要在WindSh中执行原语操作实现。     
    
  *   驻留主机的目标服务器     
  目标服务器管理主机与目标机的通信,所有与目标机的交互工具都通过目标服务器,它也管理主机上的目标机符号表,提供目标模块的加载和卸载。     
    
  *   Tornado注册器     
  所有目标服务器注册其提供的服务在注册器中。注册器映射用户定义的目标名到目标服务器网络地址。

 

任务间通信机制 
任务间通信机制是多任务间相互同步和通信以协调各活动的主要手段,VxWorks提供的任务问通信手段按其速度由 快到慢排列为信号量、消息队列、管道到网络透明的套接字。 本例子中,主要采用了共享内存、信号量和消息队列等手段实现任务间通信。任务间通信最直接、最明显的方法是访问共享内存数据结构,VxWorks操作系统采用的是 32位平滑内存地址空间,所有任务共存于单一的地址空间,任一程序定义的各种类型的全局变量都可以被任务直接访问。本系统中所有的全局控制参数数组都采用这种方法来访问,虽然这种方法不是最好的,但是却减少了函数调用时传递很多参数的 环节,对于实时控制系统来说是可取的。信号量是任务间通信同步互斥的最优选择,VxWorks提供3种信号量:二进制,互斥和计数器信号量。常用的是二进制信号量和互斥信号量。     

通信机制还包含消息队列、共享内存等。

调度的概念 
构成应用软件系统的程序集合中,独立的、相互作用的程序单元,在其执行时称之为任务。单个CPU中,多任务机制制造了一个多个任务同时执行的假象。其实系统只是根据一个多任务调度算法,将内核插入到这些任务中执行。任务由系统内核调度运行一段固定长度的时间,称为间片。调度是指为任务分配资源和时间,使系统满足特定的性能要求。调度算法的目的是在正常情况下,尽可能满足所有任务的时限;在峰值负载条件下,保证强实时任务满足时限。因为时限是区分实时系统和非实时系统的关键因素,因此调度算法是实时系统的基本问题。实时操作具有的运行性能,如吞吐量的大小、周转时间的长短、相应的及时性和可预测性等在很大程度上都取决于实时调度。
调度的类型 
虽然调度的主要 目的都是为了分配处理机,但在不同的OS中所采用的调度方式是完全不同的。在执行调度时所采用的调度算法也可能不同。因此,常按照调度的层次把调度分成高级、中级和低级调度。高级调度又称长程调度或作业调度,用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。然而在实时系统 中,为了能及时响应,用户通过键盘输入的数据都是直接送入内存 ,因而实时系统通常不需要作业调度。中级调度又称中程调度,引入它的主要 目的是为了提高内存利用率和系统吞吐量。它使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调到外存上去等待,此时的状态称为挂起状态。当这些进程重新具备运行条件,且内存又有空闲,由中级调度决定,将外存上的那些重新具备运行条件的就绪进程重新调入内存,并使它
为就绪状态,挂在就绪队列上等待进程调度。低级调度又称进程调度。它决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。进程调度是最基本的一种调度,各种 OS中都必须配置这级调度。进程调度可采用下述两种方式。
1)非抢占方式。采用这种调度方式,一旦把处理机分配给某进程后,便让该进程一直执行,直到该进程完成或发生某事件而被阻塞,才再把处
理机分配给其他进程,决不允许某进程抢占已经分配出去的处理机。显然它难于满足紧急任务的要求 ,实时系统 中不宜采用这种调度方式。
2)抢占方式。允许调度程序根据某种原则,去停止某个正在执行的进程,将已分配给该进程的处理机 ,重新分配给另一进程。抢占的原则有:
①时间片原则。各进程按时间片运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。
②优先权原则。当一个进程到来时,如果其优先级比正在执行的进程的优先级高,便停止正在执行的进程,将处理机分配给优先级高的进程,
使之执行。实时系统 中一般采用基于优先级的抢占式调度和轮转调度的进程调度和中程调度相结合的调度策略。因此既可具有较大的灵活性,又能获得极小的调度延迟。 
调度队列模型 
1  仅有进程调度的调度队列模型就绪态的进程排在就绪队列中,按时间片轮转调度运行 ,每个进程执行时,都可能出现以下3种情况。 
1)任务在时间片内完成,则该任务释放处理机,该进程完成。
2)任务在时间片内未完成,则 OS将该进程放在就绪队列的末尾,等待下一轮调度。 
3)任务在执行期间,进程被阻塞后,OS将该进程放入阻塞队列。
2 引入中级调度的调度队列模型 
较完善的 OS中,除设置了进程调度外,还引入中级调度来改善内存的利用率。当在 OS引入中级调度后,可把进程的就绪状态分为内存就绪 
态(进程在内存中就绪)、外存就绪态(进程在外存中就绪);把阻塞状态分为内存阻塞和外存阻塞。在调出操作的作用下,可使内存就绪转变为 
外存就绪、内存阻塞转变为外存阻塞;在中级调度的作用下,可使外存就绪转变为内存就绪。
 VxWorks实时内核 Wind调度分析 
Wind内核缺省调度机制为基于优先级的抢 占式调度。采用这种机制时,系统把处理机分配 给优先级最高的进程,使之执行。一旦出现了另一
个优先级更高的进程时,进程调度程序剥夺当前任务的执行,将处理机分配给高优先级任务而在相同优先级的多个任务之间,采用时间片轮转调度机制。采用这种机制时,当一个任务到达时,它被排在轮转队列的后面,等待分配给自己的时间片的到来,如果在时间片内没有结束,则再等待属于自己的时间片的到来,直到任务完成。 
1  基于优先级的抢占式调度 
采用基于优先级的抢 占式调度,系统中每个任务都有一个介于最高0到最低 255之间的优先级。任一时刻,系统内核一旦发现一个优先级更高的任务转变为就绪态,内核就保存当前任务的上下文并把 当前任务状态转换为阻塞态,同时切换到这个高优先级任务的上下文执行。
2 轮转调度算法 
采用轮转调度算法,系统让处于就绪态的优先级相同的一组任务依次轮流执行预先确定长度的时间片。这是一种处理机平均分配的方法。如果不使用轮转调度算法,优先级相同的一组任务中第一个获得处理机的任务将不会被阻塞而独占处理机,如果没有阻塞或其他情况发生,它不会放弃处理机的使用权。
3 基于优先级的抢占式调度与轮转调度相结合 
有时 ,基于优先级的抢占式调度可与轮转调度相结合。当优先级相同的一组任务依次轮流平均分配处理机时,若有高优先级的任务转变为就绪态则可抢占该组任务。直到再一次符合执行条件时,该组任务才可再次共享处理机。 为了任务控制的灵活性 ,Wind内核还提供了动态优先级机制,任务的优先级在运行期间可动态地变化。同时,为了防止优先级反转,还具有优先级继承机制,通过使用互斥信号量可以防止高优先级的任务被迫等待一段不确定时间,直到一个低优先级任务完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】c#数字图像处理(一)Bitmap类、 Bitmapdata类和 Graphics类

转自:https://www.cnblogs.com/dearzhoubi/p/8553763.html Bitmap类、 Bitmapdata类和 Graphics类是C#图像处理中最重要的3个类,如果要用C# 进行图像处理,就一定要掌握它们。 1.1 Bitmap类 Bitmap对象封装了GDI中的一个位图,此位图由图形图像及其属性的像素数据组成…

单片机与PC机一样都是计算机,51单片机与PC机通信资料

《51单片机与PC机通信资料》由会员分享,可在线阅读,更多相关《51单片机与PC机通信资料(14页珍藏版)》请在人人文库网上搜索。1、专业综合实习报告专 业: 电子信息工程 年 级: 2013级 指导教师: 学 生: 目录…

VB6:通过ADO访问Oracle存储过程返回的结果集

微软的MDAC中oledb for oracle 驱动——对过程参数:估计:位置绑定 该驱动最新支持到Oracle8i的水平,且不再更新了使用该驱动。只能使用ODBC的存储过程调用方式: "{call procename (?,?,....)}"只能支持返回一个记录集…

【转】c#数字图像处理(二)彩色图像灰度化,灰度图像二值化

转自:https://www.cnblogs.com/dearzhoubi/p/8571652.html 为加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像,在灰度图像上得到验证的算法,很容易移 植到彩色图像上。 24位彩色图像每个像素用3个字节表示,每个字节对应着R、G、B分量的亮度(红、绿…

400呼叫中心服务器,400电话呼叫中心服务新模式

呼叫中心模式也很多种,但是以400电话呼叫中心的新服务模式受到了各行各业的关注。现在企业为了提升自己的形象以及办事效率,纷纷办理400电话,对于400电话呼叫中心这一模式也开始积极采用。采用400电话呼叫中心模式也是有其道理的,…

ASP.NET开发安全问题

ASP.NET开发安全问题 前言:之所以想到要写ASP.NET安全问题的文章,是有感于自己的一些经历。想当初自己学习ASP.NET的时候,到处找有关安全方面的文章,当时发现很多文章指示蜻蜓点水的告诉我怎么用,如安全的主要问题有哪…

互斥信号量和二进制信号量

互斥信号量和二进制信号量的区别 互斥型信号量必须是同一个任务申请,同一个任务释放,其他任务释放无效。同一个任务可以递归申请。 二进制信号量,一个任务申请成功后,可以由另一个任务释放。 二进制信号量实现任务互斥&am…

【转】c#数字图像处理(三)灰度直方图

转自:https://www.cnblogs.com/dearzhoubi/p/8621804.html 灰度直方图是灰度的函数,描述的是图像中具有该灰度级的像素的个数。如果用直角坐标系来表示,则它的横坐标是灰度级,纵坐标是该灰度出现的概率(像素的个数)。 using System; using System.Collections.Gener…

电梯门禁系统服务器一般在哪,别被吓住了,电梯门禁(梯控)安装其实并不难...

电梯门禁又称梯控,主要用于对电梯的出入权限进入控制,只有授权卡在读卡器刷过后,才能到达指定楼层。梯控的使用越来越普遍了,很多人觉得梯控很神秘,很高不可攀,其实说到底它不过是门禁的一种,只…

调用Microsoft.Jet.OLEDB.4.0需要MDAC2.7支持

asp.net进行Excel导入时需要调用Microsoft.Jet.OLEDB.4.0 strConn "ProviderMicrosoft.Jet.OLEDB.4.0;Data Source" AimFile ";Extended PropertiesExcel 8.0;"; 需要MDAC (Microsoft Data Access Components) 2.7 或更高版本才能支持. 转载于:https://…

获得系统中某个进程的cpu使用率

列举所有进程的CPU占用率) typedef struct _THREAD_INFO { LARGE_INTEGER CreateTime; DWORD dwUnknown1; DWORD dwStartAddress; DWORD StartEIP; DWORD dwOwnerPID; DWORD dwThreadId; DWORD dwC…

【转】c#数字图像处理(四)线性点运算

转自:https://www.cnblogs.com/dearzhoubi/p/8622325.html 灰度图像的点运算可分为线性点运算和非线性点运算两种。 4.1线性点运算定义 线性点运算就是输出灰度级与输入灰度级呈线性关系的点运算。在这种情况下,灰度变换函数的形式为: g(x, y)pf(x,y)L 其中 f(x,…

工作人员做好项目协调服务器,项目团队协作做好三件事

原标题: 项目团队协作做好三件事大家也许在小时候就听过三个和尚的故事:当庙里有一个和尚时,他一切自己做主,做得很自在;当庙里有两个和尚时,他们通过协商可以自觉地进行分工合作,同样做的不错;可当庙里来了…

给vc6插上翅膀

最重要的当然是VC助手了。。我比较喜欢低版本的Visual.Assist.v6.0.0.1079.zip,环保类型的 但无奈我的vs2005也想使用这个插件,所以我选择了VisualAssistXv10,目前装的是Visual.Assist.X.10.4.1626.0 以前还用过一些版本很奇怪的,…

vxworks 调式

1,boot操作相关 串口命令行重启回车进入boot: 查看boot版本:v 更新: c 升级设备: w 运行: g 2, 代码: 2.1添加命令行: DEFUN, install_element 2.2 VxWorks使用 i:查看任务; memShow:查看内存情况; tt&#…

【转】[程序集清单定义与程序集引用不匹配]分析及解决

转自:https://www.cnblogs.com/shuangzimuchangzhu/p/8572817.html 什么是程序集清单(Assembly Manifest)? 我们知道,在.net中。程序是以程序集为单位进行打包的,通常一个.exe文件或一个.dll文件就是一个程序集。程序集一般包含了以下几个部…

dos如何修改远程服务器的密码,dos命令登入远程服务器

dos命令登入远程服务器 内容精选换一换远程桌面链接Windows云服务器报错:连接被拒绝,因为没有授权此用户账户进行远程登录。Windows远程桌面相关权限配置异常。在运行窗口输入secpol.msc,打开组策略编辑器打开"本地策略 > 用户权限分…

第二届(2009年)中国信息技术应用学术研讨会征文延期通知

第二届(2009年)中国信息技术应用学术研讨会征文延期通知 中国信息技术应用学术研讨会征文活动自开展以来,因其征文范围广、贴近科技需求,EI及ISTP检索率高(第一届英文稿件达到100%),且正式出版论…

设计模式C++实现 ——状态模式

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书&#xff0…

Apache在windows的设置

本节主要考虑windows的安装和配置使用,Linux 参考:http://httpd.apache.org/docs/2.2/stopping.html 一 Apache在windows的安装主要支持windows NT 86系统,安装文件或源代码下载页:http://httpd.apache.org/download.cgi。安装过程…