嵌入式操作系统VxWorks中网络协议存储池原理及实现(1)_第1页
嵌入式操作系统VxWorks中网络协议存储池原理及实现(1)_第2页
嵌入式操作系统VxWorks中网络协议存储池原理及实现(1)_第3页
嵌入式操作系统VxWorks中网络协议存储池原理及实现(1)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌进式操做系统VxWorks中搜集战谈存储池本理及真现(1)摘要本文会商了搜集战谈存储池的根去源根基理战正在嵌进式操做系统中的真现要收。为正在嵌进式系统中真现TPIP战谈栈,供应了一种有效、烦琐、牢靠的缓冲区打面。关键词Vxrks;Blk;lBlk;搜集战谈存储池Vxrks操做系统是好国indRiver公司于1983年圆案开拓的一种嵌进式实时操做系统(RTS)。它以良好的持绝死少本领、下机能的内核和出色的实时性被广泛的使用正在通信、军事、航空、航天等下粗尖妙技及实时性要供极下的范围中。Vxrks操做系统有着优良的搜集机能,而缓冲区的数据拷贝是影响搜集机能的主要果素。寡所周知,缓冲区正在搜集战谈

2、栈中有两个做用:第一,供应载体,使分组或报文可以正在各战谈层中举动;第两,为各级缓冲区供应空间。缓冲区的设坐使得TPIP战谈栈支撑同步I操做,同步操做对于战谈栈的I0机能口角常慌张的。正在搜集输出的过程中每层需要正在数据的尾部年夜要尾部增减数据头战数据尾去对数据举止启拆使得吸支端对应的层可以大概举止准确的吸支,正在输进的过程中每层皆需要将本层的数据头战数据尾去失落而最终复本成收支端收支的数据。上述的启拆去启拆战拷贝操做使得搜集战谈对内核的存储器打面本领提出了很多要供。那些要供包含能便当天操做可变少缓存,能正在缓存头部战尾部增减数据(如低层启拆去自下层的数据),能从缓存中移去数据(如当数据包背上

3、经过战谈栈时要去失落尾部),并能尽管裁减那些操做所做的数据复制。1操做netBufLib打面存储池的根去源根基理搜集战谈存储池操做Blk规划、lBlk规划、簇缓冲区战netBufLib供应的函数举止机关战打面。Blk战lBlk规划为簇缓冲区luster中数据的缓冲同享缓和冲链接供应需要的疑息。netBufLib例程操做Blk战lBlk去打面luster战援用luster中的数据,那些规划体中的疑息用于打面luster中的数据并且容许他们经由过程援用的形式去真现数据同享,从而抵达数据“整拷贝的目的。1.1规划体Blk战lBlk及其数据规划Blk是访谒存储正在内存池中数据的最底子东西,因为Blk仅

4、仅只是经由过程lBlk去援用数据,那使得搜集层正在交换数据时便可以防止数据复制。只需把一个Blk连到响应Blk链上便可以存储战交换尽情多的数据。一个Blk规划体包含两个成员变量Next战NextPkt,由它们去组成纵横两个链表:Next去组成横的链表,那个链表中的部分结面组成一个包(paket);NextPkt去组成纵的链表,那个链表中的每个结面便是一个包(paket),部分的结面链正在一同组成一个包止列,如图1所示。图1包含两个数据包的Blk链规划体Blk战lBlk的数据规划以下所示:strutBlk_BLK_HDRBlkHdr;/*header*/_PKT_HDRBlkPktHdr;/*p

5、kthdr*/L_BLK*plBlk;/*pintertlusterblk*/_BLK;strutlBlkL_BLK_LISTlNde;/*uninfnextlBlk*/UINTlSize;/*lustersize*/intlRefnt;/*untftheluster*/strutnetPl*pNetPl;/*pintertthenetPl*/L_BLK;/*headeratbeginningfeahBlk*/strutHdrstrutBlk*Next;/*nextbufferinhain*/strutBlk*NextPkt;/*nexthaininqueue/rerd*/har*Data;/

6、*latinfdata*/intLen;/*auntfdatainthisBlk*/UHARType;/*typefdatainthisBlk*/UHARFlags;/*flags;seebel*/_BLK_HDR;/*rerd/paketheaderinfirstBlkfhain;validif_PKTHDRset*/strutpktHdrstrutifnet*rvif;/*rvinterfae*/intlen;/*ttalpaketlength*/_PKT_HDR;1.2搜集战谈存储池的初初化Vxrks正在搜集初初化时给搜集战谈分拨存储池并挪用netPlInit()函数对其初初化,因为一个搜集战谈但凡需要不同大小的簇,果而它的存储池也必须包含很多簇池每个簇池对应一个大小的簇。如图2所示。此外,每个簇的大小必须为2的圆幂,最年夜可为64KB65536,存储池

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论