打印

qnx实现分布式

[复制链接]
5744|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 keer_zu 于 2021-6-2 17:06 编辑








如前所述,网络管理器(Net)是直接连接到微内核中。当微内核被调用来将一个消息从本地进程传递到另一个节点上的进程时,它会通过这个私有接口将指向这个消息的指针排队到Net中。


类似地,Net可以接收来自其它微内核的消息,并将这些消息发送给本地微内核。

本质上,网络上的网络管理器将许多远程的微内核整合到一个微内核中。由于所有系统服务(包括进程创建、调试、文件和设备I/O)都是通过微内核传递的消息来完成的,所以结果是一个计算机网络的行为类似于一台计算机。


在操作系统的更高架构层级上提供的任何服务都可以被网络上的所有进程透明地访问。这与TCP/IP服务套件形成了鲜明的对比,后者只提供非常明确的服务集——通常是终端会话和文件访问。相比之下,这种连接的微内核架构允许以下命令:

ls /usr/danh | grep abc | wc

使每个进程在网络上的不同处理器上运行,而Proc提供网络继承的文件描述符使得管道可以通过网络连接和转发数据。这种环境的透明性也促进了分布式应用程序的实现。例如,从传统的非分布式版make开始,一个网络分布式团队版make实用程序的开发仅用了一周的时间就完成了。






使用特权

评论回复

相关帖子

沙发
keer_zu|  楼主 | 2021-6-2 17:10 | 只看该作者

就像Fsys和Dev可以从命令行启动和停止一样,这两个驱动程序都有一组驱动程序族,Net也有一组驱动程序族,支持多个网络驱动程序到Net的连接。如果Net发现不止一个网络驱动程序提供到相同节点的连接,它将在驱动程序之间负载平衡流量。负载均衡使用基于媒体传输速率和队列深度的算法。也可以根据提供的命令行选项,手动控制网络流量。

通过在网络节点之间添加额外的网络链接,节点之间使用多个网络路径可以提供更好的吞吐量和容错能力。不需要在应用程序级进行更改就能利用这种容错性,因为这种支持是在网络管理器内部本地存在的。


图4:多个物理网络通过逻辑网络愉快地共存

如果主LAN发生故障,廉价的串行链路可以用作备用(fall-back)网络链路。通过以高波特率(Dev可以达到115 K波特率)运行串行链路、进行数据压缩和启用客户端文件系统缓存,串行网络的性能也可以非常快。


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1314

主题

12271

帖子

53

粉丝