第二篇网络实现模型.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Cache的使用效果与时空局部性 当指令和数据呈现时间局部性或空间局部性时,cache的使用效果非常好: 时间局部性:一个存储位置在短时间内被再次访问 空间局部性:一个存储位置被访问后,其邻近位置在短时间内被访问 X86处理器基于空间局部性假设实现预取: 每当读取一个32比特字时,处理器预取连续的128比特到cache中 网络应用的特点: 高速数据包流基本不呈现时间局部性 提高算法及数据结构的空间局部性非常重要! * 提高算法及数据结构的空间局部性 设计紧凑的数据结构,使其能够常驻cache不被换出 将随机访问(如链表)变为顺序访问(如数组) 对相同/相近位置的操作尽可能放在一起 将经常要被一起访问的数据放在连续位置,且与cache行对齐 …… 2.4 操作系统 操作系统是为解决在裸机上编程困难而设计的 与裸机打交道最主要的三个难题是:处理中断,管理内存,控制I/O设备 为处理这些困难,操作系统提供了三种抽象:不间断计算,无限存储,简单I/O 抽象在提高程序员生产效率的同时,带来了两个代价: 实现抽象的机制是有代价的 抽象阻碍了程序员对资源的充分利用 * (1) 依靠进程实现不间断计算的抽象 操作系统通过进程提供给程序员不间断、顺序计算的抽象 进程抽象通过三个机制实现:上下文切换,调度,保护 进程抽象带来的开销: 上下文切换(状态保存及恢复),调度器运行,API * 进程的三种类型 中断处理程序: 仅用于处理紧急请求的短小程序 只使用少量的状态(如几个寄存器),开销(上下文)最小 线程: 轻量级的进程,只需要较少的状态(较小的上下文) 同一个进程中的线程切换比进程切换开销小(内存不需要重新映射) 用户进程: 使用计算机的全部状态,比如内存和寄存器(上下文最大) 用户进程之间切换的代价很高(重新映射内存) * 举例:接收端活锁(Receiver Livelock) 正常过程: 数据包到来产生一个硬件中断 CPU执行中断处理程序,将数据包拷贝到内核IP队列,调用一个软中断后返回 调度器调度CPU执行软中断(协议处理),将包放入socket队列 调度器调度相应的应用进程执行 接收端活锁: 当包大量到来时,计算机将全部时间用来执行较高优先级的任务,却因为没有时间运行低优先级的应用程序而导致数据包最终被丢弃,系统吞吐量为零。 * 进程启动时间 在Pentiem IV计算机上,一个空的中断调用,中断延迟大约为2微秒。 在一个具有两个进程的Linux机器上,进程上下文切换约用时10微秒;Windows和Solaris用时更多。 在10Gbps以太网链路上,10微秒时间内可能会有接近200个最小长度的包到来。 在端节点上,应尽可能减少中断和进程切换的发生。 * (2)依靠虚拟内存实现无限存储的抽象 在虚拟内存系统中,程序员使用的内存抽象是一个线性存储空间,存储空间大小只受指令地址长度的限制。 现代计算机系统使用页表映射和请求调页两个机制实现虚拟内存抽象: 一个虚拟页为4KB,用虚拟地址的高20位构成页号,低12位构成页内偏移量。 物理内存划分为物理页,每个物理页的大小为4KB。 虚拟页到物理页的映射关系被保存到一个页表中,以虚拟页号作为索引。 (页表映射) 虚拟页也可以不在内存中,当需要时从磁盘读入到内存的一个物理页中。(请求调页) * 虚拟内存抽象带来的开销 到虚拟地址X的一个读操作可能需要访问主存两次: 第一次访问页表,将虚拟地址X转换成物理地址P 第二次访问物理地址P 现代处理器将最近使用过的地址映射缓存在TLB中,实际的地址转换由MMU硬件完成。 极其影响内存访问速度的两个因素: TLB miss 请求调页 * (3)通过系统调用实现简单I/O的抽象 操作系统提供给程序员的设备抽象是可以进行读写的一块内存 * 设备访问和系统调用 设备驱动程序: 将一个I/O接口调用映射到对设备进行实际操作的代码 为安全考虑,设备驱动程序运行在内核空间 应用程序必须通过系统调用来访问设备 系统调用: 函数调用的一种保护形式,它使处理器进入内核模式,从而可以执行I/O操作 系统调用比函数调用的开销大,一个简单的系统调用可能需要几个微秒 * 2.5 小结 本章介绍了影响系统性能的四个抽象等级,以及各个抽象等级的主要开销来源: 协议:如查表、定时器 硬件:如存储器 体系结构:如总线速度、cache容量 操作系统:如进程切换、虚拟内存、系统调用 理解这些抽象等级,对于改进系统性能有很大的帮助 * 作业 阅读“DHash: A Cache-Friendly TCP Lookup Algorithm for Fast Network Processing”,并介绍其要点: 该论文做了什么事 为什么做:背景,现状 怎么做:主要思路,关

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档