第11讲_IO管理_1.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文档。上传文档
查看更多
第11讲_IO管理_1

4.7.3 物理内存管理 物理内存管理:对内存当中的一个个 的物理页面,如何来对它们进行分配、 回收和管理。 1. 物理页面的管理 Linux 定义了一个结构体类型struct page,系统在初始化的时候,根据物理内存的大小建立一个page结构体数组mem_map,作为物理页面的“仓库”,里面的每一个数组元素都描述了系统中的一个物理页面。每个物理页面的page结构在这个数组中的下标即为该物理页面的序号; 空闲的物理页面被组织成一组“空闲区间”(free_ area_t)队列,每个队列包含了不同长度的空闲物理块。队列0管理的是一些离散的物理页面,队列1管理的是连续长度为2的页面块,队列2管理的是连续长度为4的页面块,…,队列10管理的是连续长度为1024的页面块。 2. 内存的分配与回收 Linux内核中负责管理物理内存的模块主要是page allocator,它负责分配和回收所有的物理页面,并且能够根据需要,一次性地分配由若干个连续的物理页面所组成的页面块。在管理内存时,它所采用的算法是buddy算法,其基本思路如下: 把相邻的两个大小相同的内存单元两两配对,配对原则是:若两个单元的大小均为N,则第一个单元的起始地址须为2N的倍数,而第二个单元须紧邻其后。每个内存单元都会有一个与之配对的伙伴(buddy),在回收内存空间时,若两个伙伴都已空闲,则将它们合并为一块更大的单元;在分配内存空间时,若没有与之相同大小的空闲单元,则将一块更大的空闲单元一分为二,以满足此次请求。 申请 8 个页面 申请 8 个页面 申请 4 个页面 释放 8 个页面 释放 8 个页面 page allocator的分配单位是块,即2N个连续的物理页面,这样容易造成内碎片(例如,当用户请求长度为65个页面的内存块时,必须分配长度为128的空闲块)。另外,有时内核需要比较小的内存空间,如几个字节或几十个字节,而不是一整个的页面。为了处理此种情形,Linux提供了另外一种内存的分配方法:slab方法。其基本思路是:在page allocator的基础上,把分配得到的内存块根据需要切分为更小的内存单元,然后对这些单元分别进行管理。 4.7.4 页面置换算法 在Linux系统中,页面置换的基本策略是:系统努力去维持一定数量的空闲物理页面,使得当一个缺页中断发生时,直接去申请一个空闲物理页面即可,而无须将另一个页面淘汰出局。即页面置换发生的时机在于平时,而不是在发生缺页中断的时候; 在系统初始化时,会启动一个kswapd后台线程,该线程每隔1秒钟即运行一次,其功能是检查系统中是否有足够的空闲物理页面。该线程也可在需要时被紧急唤醒。 kswapd线程采用何种页面置换算法来淘汰用户进程的页面?Clock算法的一个修改版本。 Clock算法:把进程的各个页面按照FIFO的顺序组织成一个环形链表,然后逐个考察各个页面,若其访问位为0,立即淘汰;若其访问位为1,则把该位置为0,然后再去考察下一个页面; 改进版本:每个页面增加了一个属性age,来描述其“年轻度”,越“年轻”(访问频率越高)的页面其age值越大,越“年老”(访问频率越低)的页面其age值越小。在考察一个页面时,若其访问位为0,则减少其age值;若其访问位为1,则增加其age值并把该位置为0。当一个页面的age值等于0时,即被淘汰。 第五章 I/O设备管理 在计算机系统中,有大量的输入输出设备,其 种类繁多,差异大。而且随着技术的发展,新 设备也不断地出现。因此,如何管理好这些设 备,使资源得以合理的利用,是操作系统的一 个主要功能。具体来说: 它必须使这些设备能够运转起来,包括给它们发送控制命令、捕获中断、错误处理等; 它必须在这些设备与系统的其他部分之间,提供一个简单、易用的接口,并尽可能地使这个接口适用于所有的设备(设备无关性,device independence)。 I/O硬件 I/O控制方式 I/O软件的组成 磁盘 其他的I/O设备 本章的组织结构 5.1 I/O硬件 对于I/O硬件,操作系统所关心的并不是 硬件自身的设计、制造和维护,而是如何来 对它进行编程,即该硬件所接受的控制命令、 所完成的功能,以及所返回的出错报告。应 该从这个角度来理解硬件。 5.1.1 I/O设备的类型 按交互对象分类: 人机交互设备:视频显示设备、键盘、鼠标、打印机等; 与计算机或其他电子设备交互的设备:磁盘、磁带、传感器等; 计算机间的通信设备:网卡、调制解调器; 按交互方向分类: 输入设备:键盘、鼠标、扫描仪; 输出设备:显示器、打印机; 输入/输出:磁盘、网卡。 按数据组织分类: 块设备:以数据块来作为信息的存储和传输单位,每个数据块都有一个地址,如磁盘; 字符设备:以字符来作

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档