原则的运用应用设备通道的缓冲区验证.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
原则的运用应用设备通道的缓冲区验证

4.1 应用设备通道的缓冲区验证应用设备通道(Application Device Channels)允许应用程序直接读写网络适配器的存储区域来进行网络收发。需要一种隔离应用程序的保护机制:内核为每个应用程序分配一组用于网络收发的内存页,并用这组内存页设置网络适配器。网络适配器必须保证每个应用程序只能从分配给它的内存页中读写。 问题功能需求:当应用程序P发出读写请求时,适配器必须验证请求中指定的页属于P的合法页集合。朴素的解决方案:将合法页组织在一个线性表中,顺序检查。验证的代价为O(n) ,n为合法页的数量。 问题:如果n很大,如何加速验证的过程?分析运用P15,设计更好的数据结构:哈希表:平均查找时间O(1),但冲突概率小的哈希函数计算复杂度高,最差性能不能保证。二分查找:可以提供lonN的最坏查找时间,但当N较大时开销也比较大(要求排序)。 分析运用P15,设计更好的数据结构:哈希表:平均查找时间O(1),但冲突概率小的哈希函数计算复杂度高,最差性能不能保证。二分查找:可以提供lonN的最坏查找时间,但当N较大时开销也比较大(要求排序)。 采用系统思维:令应用程序在请求中传递一个线索,帮助适配器快速找到指定的页。(P9,在模块接口中传递线索)解决方案适配器将不同应用的合法页号保存在不同的数组中。应用在读写请求中向适配器传递一个句柄,指出指定的页号在数组中的索引。适配器使用该句柄快速查找并验证页号。最坏情况性能:一次数组查找,一次比较操作。4.2 ATM流量控制调度器ATM是一种面向连接的网络:通信前先建立虚电路(VC),然后在VC上传输长度为53字节的信元(cell)。ATM适配器可同时支持几百条已经建立的VC。VC上的流量控制: VC每隔一定的时间获得一些credit,每个credit可以发送一个信元。VC状态表问题功能需求:从VC状态表中选择下一个要发送的VC。简单的方法:调度器依次检查每个VC,寻找一个合格的。如果有许多不合格的VC,顺序查找很低效。问题:如何避免查找不合格的VC? 分析为避免查找不合格的VC,可将合格的VC抽出来组织在一起,供调度器查找。运用P12(增加额外的状态),增加一个线性表来维护合格的VC。有效地维护合格的VC表是一个难点:合格VC的加入不合格VC的删除发送了一个信元的VC怎么处理解决方案除VC状态表外,再维护一个合格VC列表。 合格VC列表的维护:当一个VC在服务后变成了不活跃的(没有信元)或credit为0,将其从列表中删除;否则,将其添加到列表尾部(以实现公平调度);当一个VC从不合格变成合格,将其添加到列表尾部。 4.3 使用Dijkstra算法计算路由 从源节点开始,在每一轮迭代中,都从当前未包含在最小路径树的节点中选择代价最小的节点加入树中。问题算法的要求:每次迭代需要一个优先级队列,迭代的次数等于网络中的节点个数N。通用的方法:通用的、性能最好的优先级队列(如堆),找到最小单元的代价为O(logN),整个运行时间为O(NlogN)。问题:如果N很大,如何加速路由的计算?分析链路代价是一个小整数,域内路由适用的网络规模也不大,因此路径代价也是一个小整数。对于小规模问题能不能有特殊的数据结构呢?(P14)分析链路代价是一个小整数,域内路由适用的网络规模也不大,因此路径代价也是一个小整数。对于小规模问题能不能有特殊的数据结构呢?(P14)对于小整数来说,桶排序是比较有效的,因此,能不能构造一个基于桶排序的优先级队列呢? 解决方案构造一个基于桶排序的优先级队列。假定最大的链路代价为MaxLinkCost,网络直径为Diam,用一个长度为Diam*MaxLinkCost的数组C存放0~(Diam*MaxLinkCost-1) 所有可能的代价。如果节点X的当前代价为c,将X存放在数组元素C[c]指向的列表中。每当节点X的代价从c变为c’,将节点X从C[c]指向的列表中删除,并移入C[c’]指向的列表。基于桶排序的优先级队列解决方案(续)查找最小代价节点:初始化一个指针CurrentMin为0,它对应源节点S的代价。每当希望寻找下一个最小代价节点时,CurrentMin加1,直至到达一个非空元素,将该元素所指列表中的所有节点加入最小路径树。算法复杂度:O(N+Diam*MaxLinkCost),远低于O(NlogN)。思考在图示的例子中,如何在添加了节点C之后使算法终止,而不是一直扫描到数组结束?如何快速地将一个节点从一个列表中删除,然后加入到另一个列表?4.4 使用网桥硬件的以太网监视器将网桥改造成以太网流量监视器,统计每一对活跃节点A与B之间的流量PA,B 。每个包的统计工作要求在64微秒内完成。瓶颈是查找与A、B两个MAC地址相关联的PA,B。网桥有一个查找引擎,可快速查找与一个MA

文档评论(0)

peili2018 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档