Solaris 系统核心功能初探
作者 佚名技术
来源 操作系统
浏览
发布时间 2012-06-28
Solaris 10 中的 FireEngine 方法将所有协议层合并为一个完全多线程的 STREAMS 模块。在合并的模块内,没有使用针对每个数据结构的锁,而是使用针对每个 CPU 的同步机制,即垂直边界。垂直边界是使用名为 squeue 的序列化队列抽象实现的。每个 squeue 绑定到 CPU,而每个连接又绑定到提供特定于连接的数据结构所需的任何同步和互斥的 squeue。 由于栈是完全多线程的(除非垂直边界强制实现针对每个 CPU 的串行化),因此它使用基于引用的方案来确保连接实例在需要时可用。对于建立的 TCP 连接,可确保对其进行三种引用。每个协议层具有对实例的引用(TCP 和 IP 各有一个引用),分类器本身也具有引用,因为它是建立的连接。每次数据包到达连接并且分类器查找连接实例时,都会设置一个额外的引用;当协议层处理完该数据包后,将会删除此引用。 Solaris 10 提供了与以前发行版相同的 TCP 视图,即 TCP 显示为克隆设备,但它实际上是一个复合设备,将 TCP 和 IP 代码合并为单个 D_MP STREAMS 模块。TCP 的操作部分由通过 squeue 原语输入的垂直边界充分保护。在控制和数据路径上,FireEngine 将 TCP 和 IP 之间的接口由基于 STREAMS 的现有消息传送接口更改为基于函数调用的接口。 Solaris 10 引入了名为 GLDv3 的新设备驱动程序框架以及新栈。大多数主要设备驱动程序都移植到此框架上,所有将来的设备驱动程序和 10Gb 设备驱动程序均基于此框架。此框架还提供了一个基于 STREAMS 的 DLPI 层以保持向后兼容性(以允许外部非 IP 模块能够继续正常使用)。GLDv3 体系结构虚拟化网络栈的第二层。网络接口和设备之间的一一对应关系不复存在。 Crossbow 通过任何服务(HTTP、HTTPS、FTP、NFS等)、协议(TCP、UDP、SCTP等)或 Solaris 容器技术创建虚拟栈。虚拟栈通过 H/W 分类引擎进行分隔,以便一个栈的通信不会影响其他虚拟栈。可以在共享 NIC 上为每个虚拟栈分配它自己的优先级和带宽,而不会导致系统或服务/容器的性能下降。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Solaris 系统核心功能初探的所有评论