- 1、本文档共114页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
存储组织 =存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积。 =存储组织是指在存储技术和CPU寻址技术许可的范围内组织合理的存储结构。 v其依据是访问速度匹配关系、容量要求和价格; v“寄存器-内存-外存”结构; v“寄存器-缓存-内存-外存”结构; 内存 由存储单元(字节或字)组成的一维连续的地址空间,简称内存空间。用来存放当前正在运行程序的代码及数据,是程序中指令本身地址所指的、亦即程序计数器所指的存储器 分为: 系统区:用于存放操作系统 用户区:用于装入并存放用户程序和数据 存储管理的功能 =存储分配和回收:分配和回收算法及相应的数据结构。 =地址变换: v可执行文件生成中的链接技术 v程序加载(装入)时的重定位技术 v进程运行时硬件和软件的地址变换技术和机构 =存储共享和保护: v代码和数据共享 v地址空间访问权限(读、写、执行) =存储器扩充:存储器的逻辑组织和物理组织; v由应用程序控制:覆盖; v由OS控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间) 逻辑地址、物理地址和地址映射 =逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。 v其首地址为0,其余指令中的地址都相对于首地址来编址。 v不能用逻辑地址在内存中读取信息。 =物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。 =地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。 v当程序装入内存时, 操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致, 而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。 1. 分区分配算法 最坏适应法 要求空闲区按大小递减的顺序组织空闲区表(或队列)。 分配:进程申请一个大小为SIZE的存储区时,总是检查空闲区表的第一个空闲区的大小是否大于或等于SIZE。若空闲区小于SIZE,则分配失败;否则从空闲区中分配SIZE的存储区给用户,然后修改和调整空闲区表。 回收:按释放区的首址,查询空闲区表(队列) ,若有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首址,否则,把释放区作为一个空闲区插入空闲区表(队列) 。 分配和回收后要对空闲区表(队列)重新排序。 分析 最坏适应法看起来公似乎有些荒唐,但在更加严密地考察后,还是有它的优点: 当程序装入内存中最大的空闲区后,剩下的空闲区还可能相当大,还能装下较大的程序。 另一方面每次仅作一次查询工作。 几种策略比较 上述几种放置策略各有利弊,到底哪种最好不能一概而论,而应针对具体作业序列来分析。 对于某一作业序列来说,某种算法能将该作业序列中所有作业安置完毕,那么我们说该算法对这一作业序列是合适的。 对于某一算法而言,如它不能立即满足某一要求,而其它算法却可以满足此要求,则这一算法对该作业序列是不合适的。 动态分配算法 · 举例 例1:有作业序列:作业A要求18K;作业B要求25K,作业C要求30K。系统中空闲区按三种算法组成的空闲区队列 经分析可知:最佳适应法对这个作业序列是合适的,而其它两种对该作业序列是不合适的。 练习 有作业序列:作业A要求21K;作业B要求30K,作业C要求25K。 作业 1.??? 已知主存有256KB的容量,其中OS占有顶端的20KB, 假如有如下作业序列:作业1要求140KB, 作业2要求16KB, 作业3要求80KB, 作业1完成;作业3完成,作业4要求80KB, 作业5要求120KB。试用首次适应分配算法和最佳适应分配算法来处理上述作业序列,并完成: (1) 画出作业1,2,3进入主存后,主存的分配情况。 (2) 画出作业1,3完成后,主存的分配情况。 (3)作业4,5是否能够同时投入运行时,若能,画出主存的分配情况。 某基于动态分区存储管理的计算机,其主存容量为55Mb(初始为空),采用最佳适配(Best Fit)算法,分配和释放的顺序为:分配15Mb,分配30Mb,释放15Mb,分配8Mb,分配6Mb,此时主存中最大空闲分区的大小是() A、7Mb B、9Mb C、10Mb D、15Mb 碎片问题 由于空闲区的大小与申请内存的大小相等的情况是很少的,绝大多数情况是从一个空闲区中切去一块,剩下的部分作为一个空闲区仍留在空闲区表中,随着时间的推移,空闲区的发展趋势是越来越小,直至不能满足任何用户要求。 这种不能被任何用户使用的极小的空闲区称为碎片/零头。碎片的出现造成了存储空间的浪费。 在分区存储管理中解决碎片的办法 规定门限值(由操作系统规定,如1K),分割空闲区时,若剩余部分小于门限值,则不再分
文档评论(0)