- 1、本文档共97页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统原理-第3章-存储器管理精选
效率不高,因为它与进程实际的运行规律不相适应,比如常用的全局变量所在的页面或者循环体所在页面都可能被它选为淘汰对象。另外,它还有Belady异常现象(考虑页面访问序列为1~4,1~2,5,1~5的进程分别获得3块内存和4块内存请求装入执行时的缺页情况)。 但只是在局部来说是这样的,整体上,仍然是增加内存块数后进程的缺页率降低。 * 除了命中,其余都是缺页,命中率降低,实际意味着缺页率增加。 * 两种实现方法:计时法,和堆栈法。 * 两种实现方法:计时法,和堆栈法。 * 按照这样选择的页面,基本上是最久没有被访问过的页面。 * 这种算法也是近期最少使用算法,但这个期,指的的访问位A定期被清零的期。 * 注意:该方法是采用循环链表实现的 红色,代表要被替换的(最老的),蓝色代表新进来的 * 这是个典型的堆栈型 * 1、页面数:一般来说页面数越多,缺页率越低; 2、页面大小 1)太大:页表小,查表速度快,缺页少,但页面数少,同时运行的进程数少,页面碎片大,调一页速度慢; 2)太小:页表大,查表速度慢,缺页多,但页面较多,同时运行的进程数多,页面碎片小,调一页速度块; 3)一般是512B~4KB 3、页面淘汰算法:对命中率和缺页率影响较大。 注意和书上例子3.3的区别。 1、对于方法2,代码调入发生一次缺页中断,每个外层循环(对于i)需要调入一页,则总共128+1次缺页中断; 2、对于方法1,代码调入发生一次缺页中断,每个内层循环(对于i)需要调入一页,总共需要128*128+1次缺页中断。 * 分页:不支持虚拟页的动态增长,页的共享比较困难; 分段:支持段的动态增长,段的共享相对简单一些。但分段由于采用可变分区的方法,会导致“外碎片”,需要通过紧凑的技术来解决。 和分页一样,根据程序运行时,是否需要全部调入内存,分为实分段和虚分段两种。 * 分页虽然也是采用页号+页内偏移表示逻辑地址,但是在虚地址空间中是连续的,只是人为划分,和段式的不一样,段式是有段号+段内地址表示,地址是不连续的。 * 类似于页式管理采用页表来表示逻辑地址和物理地址的对应关系,段式管理采用段表来表示逻辑地址到物理地址的映射。 * l:段长,b:段的基址 * 1、段的共享不要求“共享段”在各个进程的虚地址空间中是一致的。 2、段表长度寄存器:段号不能超过段表长度,段表表目中的段长:段内地址不能超过该值。 * 用户需求:模块化编程的要求。 * 相比于实分段的段表,虚拟段式存储器的段表多了一些信息。 * 使用的时候链接,不用的时候,清除出内存 * 1、Multics,全名MULTiplexed Information and Computing System,是1964年由贝尔实验室、麻省理工学院及美国通用电气公司所共同参与研发的,是一套安装在大型主机上多人多任务的操作系统。 先来看一些概念: 2、段名-段号对照表:每个进程一个,所有对段名的访问,都要转换为对段号的访问,此时,需要去查段名-段号对照表。 3、符号表:段的符号名和段内地址的对应表,所有对段内符号名的访问都要转换为对段内偏移的访问。 对于静态链接,链接程序使用段名-段号表、符号表进行链接,连接完后就不用了; 对于动态链接:由OS在动态链接段时使用。 * * 1)P86页的:移动技术与内存紧缩 2)因为需要较大开销,因此,进行内存紧缩的频率不宜过高,一般在为某个作业分配分区而内存又没有足够大的连续空闲区(但空闲分区之和能满足要求),才进行内存“紧缩” * 1、伙伴系统可看作固定分区分配和可变分区分配的一种折中方案。 * 1、刚开始,可用大小为2^20 = 1M 2、A请求150K,转换成2的幂,即256K,将内存对分成两个伙伴,各为512K,然后将第一个512K再次对分成两个伙伴(各为256K),第一个256K分给A; 3、B请求100K,转换成2的幂,即128K,将第一个可用的256K对分成两个伙伴,各为128K,分配一个给B 4、C请求50K,转换成64K的请求,将一个128K对分成两个64K 5、释放B,释放内存空间 6、D请求200K,转换成256K的请求 7、E请求60K,转换成64K的请求 8、释放C时,注意原来B释放的128K空闲空间和C释放的64K空闲空间并不能合并在一起,因为他们不是伙伴。 9、释放A时,同理,A、B、C原来占有的空间也不能被合并 10、释放E时,和C原来占的空间由于是伙伴关系,首先合并成128K,然后和B原来占的空间再合并,最后和A原来占的空间合并,形成了一个大的空间512K 11、释放D,同理合并成一个最大的空间。 * 虽然伙伴系统在操作系统中现在很少采用,但伙伴系统仍不失为一种有效的内存分配和释放的方法,得到了大量的应用。 * 1、分区式存储管理的最大缺点是碎
文档评论(0)