- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统PPT电子课件教案-第四章 存贮器管理
第四章 存 贮 器 管 理;§1 引 言;§2 基 本 概 念;1.内存分配;2. 地址映射; 逻辑地址是一个“虚”的概念,处理机不能直接访问逻辑地址,而物理地址则是“实”的。因而,操作系统必须提供这样的功能,把程序执行时要访问的地址空间中的逻辑地址变换成内存空间中对应的物理地址。这种把虚地址变换成实地址的过程称作地址映射。若用A表示地址空间,用M表示内存空间,则地址映射可表示成:
f:A→M; (1)静态映射:地址映射是在程序装入时一次性进行,由软机构一重定位装入程序完成。它把分配给二进制目标程序的内存区的起始地址B作为基地址,在把该程序装入指定内存区的同时,将程序中的所有逻辑地址翻译成相对于基地址B的物理地址,即
f(a)=B+a
这里a是地址空间中的任一逻辑地址,f(a)为a相应的物理地址。经静态映射后的程序便可在内存空间f(A)=M中执行了。;(2)动态映射:; 3内存保护
保护为多个程序共存内存提供保证,有共存才需要保护,有保护才能正确地实现共存。内存保护就是为各程序的内存空间提供保护,以防他人侵犯。内存分配和地址映射不能完全解决保护问题,必须在程序执行时随机检查对内存的所有访问,以保证各个程序都在自己所属的内存空间里工作,互不干扰,特别是要防止用户程序侵犯操作系统的内存区。; 4内存扩充
内存容量总是有限的。为了既满足大作业的存贮需求,又能实现在内存中存放尽可能多的用户程序,给它们分配得以有效运行的足够的内存空间,从而充分发挥整个系统的效率,比较高级的计算机系统,特别是中、大型的通用计算机系统通常都需要扩充内存。这种扩充不是物理的增大内存容量,而是对内存空间的逻辑扩充,即通过软件方法将内存空间扩充成比实际容量更大的逻辑存贮空间。虚拟存贮器是广泛采用且有效的内存扩充技术。;§3 分 区 管 理;3.1 固定分区管理;3.2 可变分区概念;3.3 可变分区分配; 1.分配程序
本程序的调用参数是请求容量n(字节数),返回参数a为所分配的分区起始地址,若a=NIL,则表示分配失???。常量smallest为规定的空闲区最小容量值,如果所选择的空闲区的容量大于请求容量,且剩余空间大于smallest,则该剩余部分作为较小的空闲区仍留在空区链中,否则一起分配之。;;;2. 回收程序;;;;;3.4 地址映射与保护;§4 覆 盖 与 交 换;图4-6 覆盖示例;图4-7 分页管理的地址映射及保护; 我们用PDP-11的RSX-2M提供的覆盖描述语言ODL来描述图4-7给出的覆盖结 构,它可表示为;4.2 交换; 对于采用交换技术的分时系统,交换时间是影响时间片设置的因素之一。为了有效利用CPU,时间片值一般应大于交换时间。例如 ,若外存是标准的硬磁盘,其传输率为1兆字节/秒,平均寻址定位时间是8ms,又假定用户进程实体的平均大小为50 K字节,则换进或换出一个进程 的平均时间为:;§5 分 页 管 理; 同样,系统将内存空间也分成大小与页相等的若干块,称为内存块,简称“块”。通常,页长总是取2的整数次幂,例如为210或211等等 。设内存空间的容量为2s,页长为2r,则内存共划分成m块,m=2s-r,这m块从低地址开始依次编号为0、1、2、…、m-1,称之为块号,这是绝对块号。
假定机器地址部分有219位,若规定页长为29,则地址的高10位为页号,低9位为位移量,;图4-8 利用快表的分页地址映射;5.2 数据结构与存贮分配; (2)页表PMT 每个用户进程一个,用以记录进程实体的地址空间与内存空间的映射关系。地址空间中的各页按序对应页表中的一个表目,表目号等于页号,表长等于页数。在一些分页系统中,为了便于管理,每个页表的长度是相等的,于是全部页表被构成一个二维数组PMT[n][limit],n为页表个数,它等于用户进程的最大个数,limit是规定的页表最大长度。若有PMTi][0]=NIL,表示第i号页表为空闲。进程的PCB中记录着相应页表的起始地址和表长。当进程调度程序启动某个进程执行时,将该进程PCB中的页表始址和表长装入页表控制器。; (3)计数变量freeblocks 它记录当前空闲块的数目。
MBT、PMT及freeblocks均放在系统区。
分配程序的调用参数为申请者名name和申请长度x(以字节计);返回参数是页表的起始地址p和实际长度s(实际表目数),若分配失败,则p=NIL;常量pagesize是规定页长(字节数)。回收程序的调用参数是页表的始址p
文档评论(0)