欢迎来到天天文库
浏览记录
ID:59269088
大小:975.00 KB
页数:54页
时间:2020-09-22
《操作系统概念:第九章 内存管理ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统概念第九章:内存管理1本章主要内容背景交换连续内存分配分页分段带有分页的分段29.1背景为了执行,程序应被调入内存并放在进程内。在磁盘上等待调入内存以便执行的进程形成了输入队列用户程序在运行之前需要经历若干步骤(见下一页)。在这些步骤中,地址可能有不同的表示形式符号(源程序中)可重定位的地址(目标模块)绝对地址(内存映像)3一个用户程序的多步骤处理4指令与数据绑定到内存将指令与数据捆绑到内存地址可以在以下步骤的任何一步中执行:编译时MS-DOS的COM格式程序加载时编译器生成可重定位代码执行时进程在执行时可以从一个内存段移到另一
2、内存段,那么捆绑必须延迟到执行时才进行。5逻辑地址空间与物理地址空间被绑定到物理地址空间的逻辑地址空间概念是内存管理的中心。逻辑地址:由CPU生成;也称为虚拟地址物理地址:内存单元所看到的地址在编译时和加载时的地址绑定方案中,逻辑地址与物理地址是相同的。但是,执行时的地址绑定方案导致不同的逻辑地址和物理地址。逻辑地址亦称虚拟地址6内存管理单元(MMU)运行时从虚拟地址映射到物理地址的硬件设备称为内存管理单元用户进程所生成的地址在送交内存之前,都将加上重定位寄存器的值。用户程序处理的是逻辑地址,它永远不会看到真实的物理地址。7使用重定位寄
3、存器的动态重定位8动态加载一个子程序只有在调用时才被加载更好的内存空间利用率,不用的子程序不会被装入内存。动态加载不需要操作系统提供特别的支持。利用这种方法来设计程序主要是用户的责任。不过,操作系统可以帮助程序员,如提供子程序库以实现动态加载。9动态链接与共享库链接过程推迟到执行时来进行。存根是一小段代码,用来指出如何定位适当的内存驻留程序,或如果该程序不在内存时应如何装入库存根会用子程序地址来替换自己,并开始执行子程序。OS需要检查子程序是否在进程的内存地址空间内。动态链接对于库来说是非常有用的。10覆盖(Overlays)为了能让进
4、程比它所分配到的内存空间大,可以使用覆盖。在任何时候只在内存中保留所需的指令和数据。当需要其他指令时,它们会装入到刚刚不再需要的指令所占用的内存空间内。由用户来实现,不需要OS的特别支持。但用程序实现覆盖比较复杂。11一个two-pass汇编程序的覆盖129.2交换进程可以暂时从内存中交换出来到备份存储上,当需要再执行时再调回到内存中。备份存储-通常是快速磁盘。这必须足够大,以便容纳所有用户的内存映象拷贝,它也必须提供对这些内存映象的直接访问。滚进、滚出-是交换策略的一个变种,被用于基于优先权的调度算法中。如果一个更高优先级进程来了且需
5、要服务,内存管理可以交换出低优先级的进程,以便可以装入和执行更高优先级的进程。当更高优先级进程执行完后,低优先级进程可以交换回内存以继续执行。交换时间的主要部分是转移时间。总的转移时间与所交换的内存空间直接成正比。交换的修改版本在许多系统中被采用。(如UNIX,Linux及Windows)13交换示意图149.3连续分配内存通常分为两个区域:一个用于驻留操作系统,常与中断向量一起放在低内存另一个用于用户进程,常放在高内存。单分区分配方法(Single-partitionallocation)重定位寄存器方案用来保护用户进程之间,用户进程
6、与操作系统之间不会相互修改代码与数据重定位寄存器包含了最小的物理地址;界限寄存器包含了逻辑地址的范围,每个逻辑地址必须小于界限寄存器15重定位和界限寄存器的硬件支持16多分区分配方法孔(Hole):一块可用内存称为孔。不同大小的孔分布在内存的不同地方。当有新进程需要内存时,为该进程查找足够大的孔。操作系统维护的信息包括:已分配分区空闲分区(hole)17动态存储分配问题根据一组空闲孔来分配大小为n的请求。首次适应(First-fit)最佳适应(Best-fit)最差适应(Worst-fit)First-fit和best-fit在分配速度
7、及存储效率上优于Worst-fit18碎片(Fragmentation)外部碎片内部碎片紧缩(compaction):用来降低外部碎片移动内存内容,以便所有空闲空间合并成一整块。如果重定位是动态的,是在运行时进行的,那么就能采用紧缩另一种可能解决外部碎片问题的方法是允许物理地址空间为非连续,这样只要有物理内存就可为进程分配。分页分段199.4分页(Paging)一个进程的物理地址可以是非连续的将物理内存分成固定大小的块,称为帧(frame)将逻辑内存分为同样大小的块,称为页(page)跟踪所有的空闲帧建立页表用来将逻辑地址转换为物理地址
8、。内部碎片20地址转换方法CPU生成的地址分成以下两部分页号(p):页号作为页表中的索引。页表中包含每页所在物理内存的基地址。页偏移(d):与页的基地址组合就形成了物理地址,就可送交物理单元。21地址转换体
此文档下载收益归作者所有