网站开发语言学习C 吗,传奇手游下载,免费动漫软件app下载大全,p2p网站怎么做VxWorks操作系统的集成环境叫Tornado。Tornado集成环境提供了高效明晰的图形化的实时应用开发平台#xff0c;它包括一套完整的面向嵌入式系统的开发和调测工具。Tornado环境采用主机#xff0d;目标机交*开发模型#xff0c;应用程序在主机的Windows环境下编译链接生成可执…
VxWorks操作系统的集成环境叫Tornado。Tornado集成环境提供了高效明晰的图形化的实时应用开发平台它包括一套完整的面向嵌入式系统的开发和调测工具。Tornado环境采用主机目标机交*开发模型应用程序在主机的Windows环境下编译链接生成可执行文件下载到目标机通过主机上的目标服务器Target Server与目标机上的目标代理Target Agent的通信完成对应用程序的调试、分析。它主要由以下几部分组成 VxWorks高性能的实时操作系统 * 应用编译工具 * 交互开发工具 下面对Tornado集成环境的各组件功能分别介绍 * Tornado开发环境 Tornado是集成了编辑器、编译器、调试器于一体的高度集成的窗口环境同样也可以从Shell窗口下发命令和浏览。 * WindConfigTornado系统配置 通过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内核还提供了动态优先级机制任务的优先级在运行期间可动态地变化。同时为了防止优先级反转还具有优先级继承机制通过使用互斥信号量可以防止高优先级的任务被迫等待一段不确定时间直到一个低优先级任务完成。