- 1、本文档共85页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章????存储器管理
;4.1 存储器的层次结构;4.1.2 主存储器与寄存器(引导阅读)
1.主存储器
2. 寄存器
4.1.3 高速缓存和磁盘缓存(引导阅读)
1. 高速缓存
2. 磁盘缓存;高速缓存Cache:
少量的、非常快速、昂贵、易变的
内存RAM:
若干兆字节、中等速度、中等价格、易变的
磁盘:
数百兆或数千兆字节、低速、价廉、不易变的
由操作系统协调这些存储器的使用;4.2 程序的装入和链接; 对用户程序的处理步骤;4.2.1 程序的装入; 2. 可重定位装入方式;3. 动态运行时装入方式; 4.2.2 程序的链接;2. 装入时动态链接;3. 运行时动态链接; 4.2.3 重定位;;用户程序
位于RAM中的
操作系统;工作流程 :;;单用户系统缺点 :; 4.3.2 固定分区分配; 预先把可分配的主存储器空间分割成若干个连续区域,称为一个分区。每个分区的大小可以相同也可以不同。但分区大每个分区装一个且只能装一个作业小固定不变。
(1) 分区大小相等,即使所有的内存分区大小相等,其缺点是缺乏灵活性。
(2) 分区大小不等。为了克服分区大小相等而缺乏灵活性的这个缺点,可把内存区划分成含有多个较小的分区、适量的中等分区及少量的大分区。;分区4
分区3
分区2
分区1
操作系统; 2.内存分配; 4.3.3 动态分区分配;1. 分区分配中的数据结构;;;3. 分区分配操作 ; 内存分配流程 ; 2) 回收内存
当进程运行完毕释放内存时,系统根据回收区的首址,从空闲区链(表)中找到相应的插入点,此时可能出现以下四种情况之一:
(1) 回收区与插入点的前一个空闲分区F1相邻接,见图(a)。此时应将回收区与插入点的前一分区合并,不必为回收分区分配新表项,而只需修改其前一分区F1的大小。
(2) 回收分区与插入点的后一空闲分区F2相邻接,见图(b)。此时也可将两分区合并,形成新的空闲分区,但用回收区的首址作为新空闲区的首址,大小为两者之和。 ; (3) 回收区同时与插入点的前、后两个分区邻接,见图(c)。此时将三个分区合并,使用F1的表项和F1的首址,取??F2的表项,大小为三者之和。
(4) 回收区既不与F1邻接,又不与F2邻接。这时应为回收区单独建立一新表项,填写回收区的首址和大小,并根据其首址插入到空闲链中的适当位置。 ; 内存回收时的情况 ; 4.3.4 基于顺序搜索的动态分区分配算法;1)首次适应法:
为作业选择分区时总是按地址从高到低搜索,只要找到可以容纳该作业的空白块,就把该空白块分配给该作业。
2)下次适应法
类似首次适应法每次分区时,总是从上次查找结束的地方开始,找到一个足够大的空白区分配。;3)最佳适应算法;4)最坏适应算法;4.3.5 基于索引搜索的动态分区算法
1)快速适应算法(quick fit)
2)伙伴系统(buddy system)
3)哈希算法;1. 快速适应算法
2. 伙伴系统
固定分区和动态分区方式都有不足之处。固定分区方式限制了活动进程的数目,当进程大小与空闲分区大小不匹配时,内存空间利用率很低。动态分区方式算法复杂,回收空闲分区时需要进行分区合并等,系统开销较大。伙伴系统方式是对以上两种内存方式的一种折衷方案。
伙伴系统规定,无论已分配分区或空闲分区,其大小均为2的k次幂,k为整数,l≤k≤m,其中:21表示分配的最小分区的大小,2m表示分配的最大分区的大小,通常2m是整个可分配内存的大小。 ; 假设系统的可利用空间容量为2m个字,则系统开始运行时,整个内存区是一个大小为2m的空闲分区。在系统运行过程中,由于不断的划分,可能会形成若干个不连续的空闲分区,将这些空闲分区根据分区的大小进行分类,对于每一类具有相同大小的所有空闲分区,单独设立一个空闲分区双向链表。这样,不同大小的空闲分区形成了k(0≤k≤m)个空闲分区链表。 ; 当需要为进程分配一个长度为n的存储空间时,首先计算一个i值,使2i-1n≤2i,然后在空闲分区大小为2i的空闲分区链表中查找。若找到,即把该空闲分区分配给进程。否则,表明长度为2i的空闲分区已经耗尽,则在分区大小为2i+1的空闲分区链表中寻找。若存在2i+1的一个空闲分区,则把该空闲分区分为相等的两个分区,这两个分区称为一对伙伴,其中的一个分区用于分配,而把另一个加入分区大小为2i的空闲分区链表中。若大小为2i+1的空闲分区也不存在,则需要查找大小为2i+2的空闲分区,若找到则对其进行两次分割:第一次,将其分割为大小为2i+1的两个分区,一个用于分配,一个加入到大小为2i+1的
您可能关注的文档
最近下载
- GBZ188-2014 职业健康监护技术规范(代替GBZ188-2007).pdf
- 劳务报酬合同.docx VIP
- 标牌、标线、波形护栏 等配套交通安全设施采购服务方案.docx
- 医院感染预防和控制评价规范.pptx
- 装修隔断工程施工方案(3篇).docx VIP
- 机箱用连接器的介绍.doc VIP
- 毕业设计论文_基于单片机STC89C52为控制器的LED点阵显示屏系统的设计.doc
- 名著导读《经典常谈》系列之《诗》第十二、《文》第十三-八年级语文下册课件.pptx VIP
- 2024年(高级)政工师理论考试题库及答案(含各题型) .docx
- 深入贯彻中央八项规定精神学习教育党课(ppt).pptx VIP
文档评论(0)