- 1、本文档共167页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 可重定位装入方式 在装入时对目标程序中指令和数据的修改过程称为重定位。 因地址变换是在装入时一次完成的,以后不再改变,故称为静态重定位。 程序的链接 这种先进行链接所形成的一个完整的装入模块称为可执行文件 通常不再拆开它,要运行时可直接装入内存 若要修改或更新其中的某个目标模块,则要求重新打开装入模块 单用户存储管理 在单道环境下,不管是单用户系统还是单道批处理系统,进程(作业)执行时除了系统占用一部分主存外,剩下的主存区域全部归它占用。主存可以划分为三部分:?系统区、用户区、空闲区。用户占用区是一个连续的存储区所以又称单一连续区存储管理。 单用户系统在一段时间内,只有一个进程在内存,故内存分配管理十分简单,内存利用率低。内存分为两个区域,一个供操作系统使用,一个供用户使用 工作流程 单一连续区分配采用静态分配和静态重定位方式,亦即作业或进程一旦进入主存,就一直等到它运行结束后才能释放主存。如下图所示的主存分配与回收法。并且由装入程序检查其绝对地址是否超越,即可达到保护系统的目的。 工作流程(续) 分时系统中可用对换方式让多个用户的作业轮流进入主存储器执行 按时间片方式轮流地被换出和换入。 由于单用户连续存储管理每次只允许一个作业进入主存储器,因此不必考虑作业在主存的移动问题,可用静态重定位 硬件不必有地址转换机构 单用户系统缺点 不支持多道。 主存利用率不高。 程序的运行受主存容量限制。 存储保护 自动地址修改 例如,存储器的地址空间为12K,而操作系统位于低址端的4K内。对于这样的系统,我们给用户一个13位的地址空间,并对其每个存储器访问自动加上4K。如果操作系统占用高址端的4K,则我们取每一个存储访问R,而实际上,其地址为(R mod 8K)。从而实现了对操作系统的保护。 存储保护(续) 0页、1页寻址 通过对每个用户生成的地址左端拼接上一位1来实现OS区与用户区。把操作系统确定在0页,而把用户作业放在1页。 界限寄存器 通过增加界限寄存器,划分OS区与用户区。 分区存储管理方案 系统把内存用户区划分为若干分区,分区大小可以相等,也可以不等。一个进程占据一个分区 固定分区 可变分区 5.4 固定分区存储管理 预先把可分配的内存空间分割成若干个连续区域,每一区域称为分区 每个分区的大小可以相同也可以不同,分区大小固定不变,每个分区装一个且只能装一个作业 存储分配:如果有一个空闲区,则分配给进程 5.4.2 地址转换和存储保护 作业执行过程中不会改变存放区域,可采用静态重定位方式 存储保护:一对寄存器,“下限寄存器”、“上限寄存器” 5.4.3 如何提高主存空间的利用率 根据经常出现作业的大小和数量来划分分区,尽可能使每个分区被充分利用 分区按大小排列 按作业对主存空间的需求量排成多个作业队列(防止小作业装入大分区,减少闲置的主存空间量) 5.5 可变分区存储管理方案 基本思想 内存不是预先划分好的 作业装入时,根据作业的需求和内存空间的使用情况来决定是否分配 系统生成后,操作系统占用内存的一部分,一般在物理内存的开始处,比如,一个操作系统占20KB,装入系统后占用0~20KB的内存空间,剩下的部分作为一个空闲区,当一个用户程序(作业、进程)调入内存时,把这个空闲区的低地址部分的区域分配给它,如图所示。 当有作业完成后释放所占用的存储区。 在系统运行的过程中,系统中形成多个空闲的不连续的存储区。 分区存储管理技术的实现: 1、地址映射 2、动态存储管理的机构(数据结构) 3、分区的分配和回收 4、三种基本的主存分配方法 1、 用基地址寄存器实现动态地址映射 在这种存储管理技术中,系现设置一个专用寄存器,称为基地址寄存器,当一个进程(或程序、作业)被调度运行时,系统首先从PCB中取出该进程的首地址装入基地址寄存器中,在该进程运行的过程中实现动态地址映射。 2、分区分配机构 分区存储管理使用的数据结构主要是空闲区表、空闲区队列两种。其形式如图所示。 分区的分配与回收 一、分配算法 介绍空闲区表数据结构的分配算法。 注: 1、分配算法中切割空闲区是从低地址开始的,例如,一个空闲区大小是100KB,首址是230KB,一申请者要求80KB,分配时将从230KB开始的80KB分配给申请者,剩下的部分仍作为一个空闲区,其首址是310KB,大小是20KB。 2、门限值是切割空闲区后剩下的区域若小于门限值,就不切割该空闲区,统统分给申请者。 分区分配操作 分区的分配与回收 二、回收算法 当一个进程(或程序)释放某内存区时,要调用存储区释放算法release,它将首先检查释放区是否与空闲区表(队列)中的其它空闲区相邻,若相
文档评论(0)