QNX系统网络进程通信程序开发.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
QNX系统网络进程通信程序开发

QNX系统网络进程通信程序开发摘要:QNX系统作为优秀的嵌入式实时操作系统之一,在各个关键领域得到了广泛应用,如我国引进的某型水下设备的信号记录仪即采用此操作系统。本文基于QNX自带的FLEET协议,构建了多台运行QNX的PC机之间进行网络进程通信的模式,有效的提高了QNX系统间的信息交换效率,对QNX系统程序的开发调试具有较好的借鉴意义。通信测试结果表明,通过对FLEET Network进行解析并合理配置,不同PC机上的QNX可方便地进行网络通信,证明了模式的正确性和可行性。 关键词: QNX;Windows;FLEET协议;网络通信 中图分类号:TP316 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02 一、前言 由加拿大QSSL公司推出的QNX操作系统作为应用日益广泛的嵌入式实时操作系统,建立在微内核和完全地址空间保护基础之上,其由一个体积很小的微内核和一组合作模块组成,微内核为模块组提供最基本的服务,如进程间通信、底层的网络通信、进程调度和第一级中断处理等。 QNX自带的高性能、容错性网络—FLEET Networking,通过透明的分布式处理使得所有连入网络的计算机变成一个逻辑上的超级计算机。FLEET网络处理与消息传递和进程管理原语的集成,将本地和网络进程间通信(IPC, Inter-process communication)统一起来,使得网络对IPC而言是透明的。该协议框架可以将跨接于不同网络(如Ethernet + Token)的节点直接链接起来,用户程序只需要使用msg_send即可跟网络上的任意QNX节点通信。 二、FLEET协议概述 Fleet协议是QNX自带的多台相同或不同类型的计算机进行信息交换的一套通信协议,报文结构为四项内容,分别是地址头、版本段、协议头段和数据段。地址头包含目标MAC地址(6字节)和源MAC地址(6字节),总长度为12字节;版本段为2字节,标识FLEET协议版本,如在QNX 4操作系统下使用0x8203表示FLEET协议格式;协议头段定长为22字节,包含所发送数据协议的具体内容如版本、接受者、发送者、数据包大小、发送方式等,组成了FLEET协议数据包的传输状态;数据段为不定长数据,由协议头段内的数据长度字段控制。 FLEET协议中最基本的进程间通信方式是消息,消息实际发送数据过程需要由一个Attach过程、一个Send过程和一个Reply过程实现。 图1 基于消息的进程间通信 如图1所示,进程间在进行消息传递时使用三个基本函数:Send()(发送消息)、Receive ()(接收消息)、Reply()(回答发送进程)。相应的,进程存在三个基本状态: Send阻塞、Receive阻塞和Reply阻塞。 三、网络节点 为有效的传送信息,QNX提供了网络管理器(Net)对网络硬件的使用进行管理。网络管理器不必建立在微内核映像中,能够独立于网络硬件而存在,可以根据需要随时提供或撤销网络驱动能力。由于应用程序通过消息访问所有的服务,以及网络管理器允许消息在网上透明地流动,通过对网络中的计算机进行节点安排可形成一个完整的逻辑计算机。 任何节点都可使用两个数值来标识,物理节点ID和逻辑节点ID。物理节点ID是通过硬件来识别的,在硬件生产时即以确定,是一个十分庞大的数据,人或程序处理起来很困难,且有些物理ID又有差别很大的规定;逻辑节点ID是从1开始顺序分配的自然数,其最大值为该网络中的节点总数,所有QNX进程都与逻辑节点ID打交道,物理节点ID隐蔽在QNX进程上,当需要向另一个节点传输数据时,网络管理器将把对方的物理节点ID告诉驱动程序。 四、测试方案 (一)网络配置 QNX操作系统与Windows操作系统不同,为实现网络通讯,在系统启动时,需要通过加载系统映像文件,注册网络硬件资源、配置驱动程序参数。映像文件是一个包含操作系统,可执行程序以及任何与程序有关的数据文件的文件,在对控制系统的硬件资源的操作上,把硬件资源虚拟成文件,通过虚拟设备文件统一管理硬件设备。 1.创建启动镜像 (1)cd /boot;//打开/boot文件夹 (2)make b=install.1;//编译启动镜像的配置文件install.1 (3)copy /boot/install.1 /.boot;//拷贝install.1至/.boot文件夹 2.配置节点号 (1)cd /boot/build;//打开/boot/build文件夹 (2)mv install.1 install.x;//修改文件名为install.x (3)修改install.x中的$ /boot/sys/Pro

您可能关注的文档

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档