




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3单元主存管理第2节分段存储管理什么是段?段如何放入内存地址映射碎片问题举例程序员眼中的程序由若干部分(段)组成,每个段有各自的特点、用途:代码段只读,代码/数据段不会动态增长…主程序main函数库sin栈stack动态数组array变量集data程序员眼中的一个程序程序员怎么定位具体指令(数据):<段号,段内偏移>如mov[es:bx],ax00000第3单元主存管理第2节分段存储管理什么是段?段如何放入内存地址映射碎片问题举例不是将整个程序,是将各段分别放入内存021301230K70K180K330K360K420K460K500K基址长度保护段号180K150KR0360K60KR/W170K110KR/W2460K40KR3进程段表接下来的问题是内存怎么分割?
这样就可以将程序的各个段载入到相应的内存分区中了划分成一个个区固定分区与
可变分区分区1操作系统分区2分区3段请求段1操作系统段2段请求空闲固定分区:初始化的时候划分好分区可变分区:依据段的大小,每次从空闲区中划一块数据结构Seg1操作系统Seg2空闲
空闲分区表每个进程都有一个段表始址长度250K250K始址长度标志100K100KSeg1200K50KSeg20K100K200K250K500K为一个段分配分区始址长度350K150KSeg1操作系统Seg2空闲
空闲分区表进程段表始址长度250K250K始址长度标志100K100KSeg1200K50KSeg20K100K200K250K500KSeg3空闲
段内存请求:reqSize=100K始址长度标志100K100KSeg1200K50KSeg2250K350KSeg3350K释放一个内存分区始址长度350K150KSeg1操作系统Seg2空闲分区表段表始址长度350K150K200K50K始址长度标志100K100KSeg1250K100KSeg30K100K200K250K500KSeg3空闲
段2不再需要,释放内存始址长度标志100K100KSeg1200K50KSeg2250K100KSeg3350K空闲
分区的分配思路依申请者所要求的主存区的大小,分区分配程序在空闲主存中找一个满足用户需要的空闲块;若找到了所需的空闲区,有两种情况空闲区与要求的大小相等,将该空闲区分配并从空闲区管理数据中摘除;空闲区大于所要求的的大小,将空闲区分为两部分:一部分成为已分配区,建立相应数据;剩下部分仍为空闲区。返回所分配区域的首址;否则,告之不能满足要求或者交换或者整理碎片。检查释放分区(即为回收分区)在主存中的邻接情况;若上、下邻接空闲区,则合并,成为一个连续的空闲区;若回收分区不与任何空闲区相邻接,建立一个新的空闲区,修改空闲区数据结构。分区回收思路放置策略:多个空闲区选哪个?Seg1操作系统空闲分区表始址长度350K150K200K50K0K100K200K250K500KSeg3空闲
350K空闲
又一个段提出内存请求:reqSize=40K,怎么办?首次适配:(200,50)最佳适配:(200,50)最差适配:(350,150)第3单元主存管理第2节分段存储管理什么是段?段如何放入内存地址映射碎片问题举例分段的地址映射分段系统的地址变换过程
每个进程一个,段表放在PCB中逻辑地址没得分区了怎么办?第3单元主存管理第2节分段存储管理什么是段?段如何放入内存地址映射虚存碎片问题举例分段的方案不太好提供虚存虚存实现:部分放入,换出换入换入换出比较困难!第3单元主存管理第2节分段存储管理什么是段?段如何放入内存地址映射虚存碎片问题举例可变分区造成的问题seg1操作系统空闲分区表始址长度350K150K200K50K0K100K200K250K500Kseg3空闲
350K空闲
发起请求reqSize=160K怎么办?总空闲空间>160,但没有一个空闲分区>160,怎么办?将空闲分区合并:内存拼接技术
这就是内存碎片问题
20KB
54KB58KB135KB254KB256KB1主存138KB作业20os作业3作业1拼接前20KB0
54KB131KB247KB256KB1主存os作业1作业2作业3拼接后拼接、碎片整理拼接分段方案特性:1.将用户程序空间按逻辑划分为几段(segment),每个段内连续编址,段间是不一定连续编址的2.分段采用动态分区方案分配内存,将段放到分区里3.用动态地址映射方式将逻辑地址变为物理
地址4逻辑地址是二维的5内存不够的解决方法可以是内存拼接和虚存的方法,但是都不够高效总结21第3单元主存管理第2节分段存储管理什么是段?段如何放入内存地址映射虚存碎片问题举例举例若段式存储管理提供用户使用的逻辑地址占24位,其中段内地址占16位,那么用户程序最多分多少段?当把程序转入主存时,每段占用主存的最大连续区域是多少?考虑段表如下,计算逻辑地址对应的物理地址(0,430)(2,88)
段号基址段长0256600123001282112100某基于动态分区存储管理的计算机,其主存容量为55mb(初始空间),采用最佳适配(Bestfit)算法,分配和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度环保工程雇工合同协议书
- 2025年智慧城市建设公司合并协议
- 二零二五年度资质借用及投标技术合作合同
- 2025年度驿站转让及后续经营管理合同范本
- 二零二五年度企业品牌赞助协议范本
- 2025年度科技研发资金托盘支持协议书
- 二零二五年度商业地产商铺出售合同
- 2025年度车辆抵押权争议执行合同
- 肝叶切除术护理手术配合
- 静脉化疗护理常规课件
- 气管镜科室讲课ppt课件(PPT 69页)
- 小学生心理健康讲座-(精)
- 蝴蝶豌豆花(课堂PPT)
- 无创呼吸机的应用(飞利浦伟康V60)课件
- 口腔修复学-第七章-牙列缺失的全口义齿修复
- Y-Y2系列电机绕组标准数据汇总
- 对于二氧化碳传感器的现状及发展趋势的浅分析
- 麦语言函数手册参考模板
- 知情同意书-北京大学肿瘤医院
- 建筑材料碳排放因子查询表
- 观音神课三十二卦
评论
0/150
提交评论