- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3单元 主存管理 第2节 分段存储管理 什么是段? 段如何放入内存 地址映射 虚存 碎片问题 举例 举例 若段式存储管理提供用户使用的逻辑地址占24位,其中段内地址占16位,那么用户程序最多分多少段?当把程序转入主存时,每段占用主存的最大连续区域是多少? 考虑段表如下,计算逻辑地址对应的物理地址(0,430)(2,88) 段号 基址 段长 0 256 600 1 2300 128 2 112 100 某基于动态分区存储管理的计算机,其主存容量为55mb(初始空间),采用最佳适配(Best fit)算法,分配和释放的顺序为:分配15mb,分配30mb,释放15mb,分配8mb,此时主存中最大空闲分区的大小是( ) A 7mb B 9mb C 10mb D 15mb 模拟试卷1的第四题 作业 6-11 6-12 * * * 单击此处编辑母版标题样式 第3单元 主存管理 第2节 分段存储管理 什么是段? 段如何放入内存 地址映射 碎片问题 举例 程序员眼中的程序 由若干部分(段)组成,每个段有各自的特点、用途:代码段只读,代码/数据段不会动态增长… 主程序 main 函数库 sin 栈 stack 动态数组 array 变量集 data 程序员眼中的一个程序 程序员怎么定位具体指令(数据): 段号, 段内偏移 如mov [es:bx], ax 0 0 0 0 0 第3单元 主存管理 第2节 分段存储管理 什么是段? 段如何放入内存 地址映射 碎片问题 举例 不是将整个程序,是将各段分别放入内存 0 2 1 3 0 1 2 3 0K 70K 180K 330K 360K 420K 460K 500K 基址 长度 保护 段号 180K 150K R 0 360K 60K R/W 1 70K 110K R/W 2 460K 40K R 3 进程段表 接下来的问题是内存怎么分割? 这样就可以将程序的各个段载入到相应的内存分区中了 划分成一个个区 固定分区 与 可变分区 分区1 操作系统 分区2 分区3 段请求 段1 操作系统 段2 段请求 空闲 固定分区:初始化的时候划分好分区 可变分区:依据段的大小,每次从空闲区中划一块 数据结构 Seg1 操作系统 Seg2 空闲 空闲分区表 每个进程都有一个段表 始址 长度 250K 250K 始址 长度 标志 100K 100K Seg1 200K 50K Seg2 0K 100K 200K 250K 500K 为一个段分配分区 始址 长度 350K 150K Seg1 操作系统 Seg2 空闲 空闲分区表 进程段表 始址 长度 250K 250K 始址 长度 标志 100K 100K Seg1 200K 50K Seg2 0K 100K 200K 250K 500K Seg3 空闲 段内存请求: reqSize = 100K 始址 长度 标志 100K 100K Seg1 200K 50K Seg2 250K 350K Seg3 350K 释放一个内存分区 始址 长度 350K 150K Seg1 操作系统 Seg2 空闲分区表 段表 始址 长度 350K 150K 200K 50K 始址 长度 标志 100K 100K Seg1 250K 100K Seg3 0K 100K 200K 250K 500K Seg3 空闲 段2不再需要,释放内存 始址 长度 标志 100K 100K Seg1 200K 50K Seg2 250K 100K Seg3 350K 空闲 分区的分配思路 依申请者所要求的主存区的大小,分区分配程序在空闲主存中找一个满足用户需要的空闲块; 若找到了所需的空闲区,有两种情况 空闲区与要求的大小相等,将该空闲区分配并从空闲区管理数据中摘除; 空闲区大于所要求的的大小,将空闲区分为两部分:一部分成 为已分配区,建立相应数据;剩下部分仍为空闲区。 返回所分配区域的首址; 否则,告之不能满足要求或者交换或者整理碎片。 检查释放分区(即为回收分区)在主存中的邻接情况 ; 若上、下邻接空闲区,则合并,成为一个连续的空 闲区; 若回收分区不与任何空闲区相邻接,建立一个新的空 闲区, 修改空闲区数据结构。 分区回收思路 放置策略:多个空闲区选哪个? Seg1 操作系统 空闲分区表 始址 长度 350K 150K 200K 50K 0K 100K 200K 250K 500K Seg3 空闲 350K 空闲 又一个段提出内存请求: reqSize=40K,怎么办? 首次适配: (200,50) 最佳适配: (200,50) 最差适配: (3
文档评论(0)