计算机科学系操作系统课程组李才伟凌应标制作@2016年2月.ppt

计算机科学系操作系统课程组李才伟凌应标制作@2016年2月.ppt

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

* * * * * * * 多中断的时序 1.5 存储器层次结构 存储器的设计目标——大容量、高速度、低价格 存储器的容量、速度与价格三者之间的关系 速度快→价格高 容量大→价格低 容量大→速度慢 解决办法——使用分级存储器体系(memory hierarchy,存储器层次[结构]) 存储器的层次结构(从上往下) 价格递减 容量递增 速度递减(存取时间递增) 访问频率递减(局部性原理) 存储器的 层次结构图 各级存储器的特点 寄存器位于处理器内,与CPU的运算器和控制器同速。 高速缓存(cache)也位于(多核)CPU内,还可分成多个级别,一般一级和二级位于单个核内,三级由所有核共享。高速缓存对处理器和程序员都是不可见的。 内存是计算机的主存储器,每个存储单元有唯一地址,可被处理器和程序代码访问。 上面这三种存储器都是采用半导体技术制成,所存储的内容是易失的。 外存(板外和离线存储器)是非易失的,也叫辅助存储器(secondary memory / auxiliary memory)。 硬盘一般还用作主存的扩展——虚拟存储器(virtual memory)。 两级存储器的性能 命中(hit)——在快速的第一级存储器中找到了要存取的字。未找到被定义为未命中(miss)。 性能曲线——两级存储器的平均存取时间(average access time) T是命中率(hit ratio) H的线性函数。 局部性原理(principle of locality of reference)——在程序执行期间,处理器的指令访存和数据访存往往呈簇状。即位于被访问字附近的指令或数据,在近期被访问到的概率较大。 根据局部性原理,处理器的访存的命中率一般相当高。所以平均起来,大多数存储访问都是对第一级存储器的访问。即处理器的访存时间,接近于对高速的第一级存储器访问所需的时间。 性能曲线 1.6 高速缓存 高速缓存 (cache [memory]) 对操作系统不可见。 高速缓存与其他存储管理硬件相互影响。 虚拟存储的原理与高速缓存的类似。 处理器每执行一条指令至少需要访问一次存储器(取指令),一般还会多次访问存储器(取操作数和保存操作结果)。 内存的速度远远低于处理器的速度,速度的不匹配已经成为很严重的问题。 解决办法——利用局部性原理,在处理器和内存之间,提供一种小容量的快速存储器——高速缓存。 高速缓存 与主存 高速缓存与 内存的结构 高速缓存 读操作 高速缓存的设计因素 大小——相当小的高速缓存,就会对性能产生显著影响。 块大小——块是高速缓存与内存间的数据交换单位。块在开始增大时,命中率会增加;但是,当块变得很大时,由于块交换的概率大增,使得命中率反而下降。 映射函数——决定读入高速缓存的新块,要放到哪个行号的单元中。其设计得越灵活,则越有利于替换算法的设计,但是也使得搜索块所需的逻辑电路越复杂。 替换算法——选择在不久的将来会被访问到的可能性最小的块。一般采用LRU(Least-Recently-Used,最近最少使用)算法,需要硬件机制支持。 写策略——高速缓存的块内容被修改后,需要在其被换出前写回内存。一修改就写回太低效;到替换时才写回,会使内存过时,可能妨碍多处理器操作和I/O模块的DMI。 1.7 直接内存存取 I/O操作的三种可能技术: 编程I/O(programmed I/O)= 无中断I/O 中断驱动I/O(interrupt-driven I/O) = 有中断I/O DMA(Direct Memory Access,直接内存存取) 数据块输入的三种技术 编程I/O 在处理器遇到与I/O相关的指令时,通过向对应的I/O模块发送命令来执行该指令。 I/O模块执行请求动作,并设置I/O状态寄存器的相应位。 I/O模块不会通知处理器,也不会中断处理器。 处理器在执行I/O指令后,还需定期检查I/O模块的状态,以确定I/O操作是否完成。 处理器负责从内存中取数据用于输出,并在内存中保存数据用于输入。 需I/O指令类型:控制(外设)、(检查)状态、传送(数据)。 主要缺点——耗时(处理器需长时等待I/O操作的准备和完成)、低效(处理器需不断询问I/O模块的状态)。 中断驱动I/O 处理器在给I/O模块发送I/O命令后,继续作其他有用的工作。 I/O模块在准备好与处理器交换数据后,就打断处理器的执行,并请求服务。 处理器执行数据传送,然后恢复以前执行的处理。 中断驱动I/O虽较编程I/O更有效,但是处理器仍需主动干预存储器与I/O模块之间的数据传送,且所有数据的传送都必须通过处理器。 编程I/O和中断驱动I/O的固有缺陷: I/O传送的速度受限于处理器测试设备和为设备提供服务的速度。 处理器被管理I/O传送的工作所占用,对

文档评论(0)

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

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

1亿VIP精品文档

相关文档