操作系统内存管理课件.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文档。上传文档
查看更多
操作系统内存管理课件.ppt

内存管理 目的 详细描述内存硬件的各种组织方法 讨论各种内存管理技术,包括分页和分段 详细描述 Intel Pentium 芯片,它支持纯分段和带分页的分段 背景 为了运行程序必须把程序从磁盘载入到内存 内存和寄存器是CPU唯一能直接访问的存储器 寄存器的访问时间 vs 内存的访问时间 缓存 为了确保正常运行必须保护内存 首先讨论: 符号内存地址到实际物理地址的绑定 逻辑地址与物理地址的区别 动态装载、动态链接代码及共享库 在计算机科学中,库是用于开发软件的子程序集合。库和可执行文件的区别是,库不是独立程序,他们是向其他程序提供服务的代码。 库链接是指把一个或多个库包括到程序中,有两种链接形式:静态链接和动态链接,相应的,前者链接的库叫做静态库后者的叫做动态库。 静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。 静态链接的最大缺点是生成的可执行文件太大,需要更多的系统资源,在装入内存时也会消耗更多的时间。 动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载库。大多数操作系统将解析外部引用(比如库)作为加载过程的一部分。 基地址寄存器和界限地址寄存器 一个进程使用的内存地址范围是由一对基地址寄存器和界限地址寄存器来定义 一个用户程序的多步骤处理 地址绑定 地址绑定是从一个地址空间到另一个地址空间的映射 将指令与数据绑定到内存,有以下几种情况 逻辑地址空间和物理地址空间 逻辑地址:CPU所生成的地址 –(虚拟地址) 物理地址:从内存单元所看到的地址 内存管理单元(MMU) 映射虚拟地址为物理地址的硬件设备 用户进程所生成的地址在送交内存之前,都将加上重定位寄存器(基地址寄存器)的值 用户程序决不会看到真正的物理地址 库的链接及加载 静态链接 动态链接 (dynamic link) 动态加载 (dynamic loading) 动态加载 直到被调用之前,程序不会被载入到内存,即加载延迟到运行时 优点 不使用的程序不会载入到内存, 既而内存使用率高 适合用户用大量代码来操作不常发生事件时 不需要操作系统的特别支持,由程序员来设计 动态链接 链接延迟到执行时 小程序, stub(存根), 用来定位适当的内存驻留库程序,或如果该程序不在内存时应如何装入库 存根会用子程序地址来替换自己,并开始子程序 存根首先检查所需子程序是否在内存中,如果不在,就将子程序装入内存。 动态链接通常适用于系统库 需要操作系统的帮助 2. 交换(swapping) 进程可以暂时从内存中交换到备份存储(backing store)上,当需要再次执行时再调回到内存 backing store –通常是快速磁盘 优先级调度算法中使用 滚出(roll out), 滚入(roll in) 交换时间 转移时间,而转移时间与交换内存空间量成正比 问:将交换出的进程再交换(调回)回来的时候,应调回哪个内存空间(编译时,加载时,执行时) 连续分配 内存通常分为两个区域: 一个用于驻留操作系统,常与中断向量一起放在低内存 另一个用于用户进程,常放在高内存。 单分区分配方法(Single-partition allocation) 重定位寄存器方案用来保护用户进程之间,用户进程与操作系统之间不会相互修改代码与数据 重定位寄存器包含了最小的物理地址;界限寄存器包含了逻辑地址的范围,每个逻辑地址必须小于界限寄存器 重定位和界限寄存器的硬件支持 多分区分配方法 孔(Hole):一块可用内存称为孔。不同大小的孔分布在内存的不同地方。 当有新进程需要内存时,为该进程查找足够大的孔。 操作系统维护的信息包括: 已分配分区 空闲分区(hole) 动态存储分配问题 根据一组空闲孔来分配大小为n的请求。 首次适应(First-fit) 最佳适应(Best-fit) 最差适应(Worst-fit) First-fit和best-fit在分配速度及存储效率上优于Worst-fit 碎片(Fragmentation) 外部碎片 内部碎片 紧缩(compaction):用来降低外部碎片 移动内存内容,以便所有空闲空间合并成一整块。 如果重定位是动态的,是在运行时进行的,那么就能采用紧缩 另一种可能解决外部碎片问题的方法是允许物理地址空间为非连续,这样只要有物理内存就可为进程分配。 分页 分段 分页(Paging) 一个进程的物理地址可以是非连续的 将物理内存分成固定大小的块,称为帧(frame) 将逻辑内存分为同样大小的块,称为页(page) 跟踪所有的空闲帧 建

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档