- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UNIX存储器管理.ppt
动态分区的实现 UNIX V6 for PDP-11 PDP-11的内存管理机构(1) 支持一维线性逻辑地址 字长16bit 程序地址空间为64K,0字节处存放第一条指令,最后一个字节是堆栈的栈底。程序运行之前,空栈时,SP=0; 注:程序地址空间就是进程的虚地址空间,即逻辑地址空间。右图为用户态下的逻辑地址空间 PDP-11的内存管理机构(2)——程序空间分页 MMU将用户态空间按8K字节分页,整个用户空间长8K。 共享正文段、数据段和堆栈段均在虚空间中占整数页。 每一页可以分配至内存中从任何地址开始的8K连续存储区域 地址映射 例 下图是CPU正在运行的程序的虚空间结构 指令 mov ax,[9k] 执行时需要访问数 据,问: 1、数据的虚地址=? 2、数据的物理地址=? 3、代码段指令在内存中 占据的物理地址区间? 4、数据段、堆栈段中的 变量在内存中占据的物 理地址区间? Unix 连续存储管理方式 正文段占据连续的存储空间 进程的可交换部分也占据连续的存储空间 user+核心栈+数据段+堆栈段 1024字节 现运行进程x-caddr = 1000;p-addr=1600时代码段指令和数据段、堆栈段中的变量在内存中占据的物理地址区间? 在内存中所有页面最后一个字节与第一个字节之间地址相差 8k-1,堆栈段亦不例外,所以: 本程序堆栈页的起始块号为: p-addr+16+数据段长度+堆栈的长度-128=1840 页地址寄存器PDR 描述每一页的属性: PLF:页长(内存块为 单位) ACF:存取控制 W:Dirty 位,Unix没用到 ED:页的增长方向。ED为1的页属于栈 PDP-11的内存管理机构(3)——内核空间分页 核心空间也按8K字节分页,每页8K。 UNIX代码6页,放在内存低地址端 UISA, UISD, KISA, KISD, PS寄存器和所有的外设端口只允许内核访问,故形成内核中的第7页以保证操作系统特权 操作系统需要频繁访问现运行进程的user结构,核心栈 操作系统第6页 核心态地址映射 内存中进程的分布情况 Unix利用KISA6寻找现运行进程 u-uisa,u-uisd 进程user结构中又 一个重要的分量 UISA中的大部分 内容和UISD中的 全部内容与进程在 内存中存放的位置无关,是由应用程序的结构决定的。将它们抽取出来形成进程的u-uisa,u-uisd,便于系统为上台进程构造UISA,UISD 进程执行系统调用EXEC ,欲运行新的程序时UNIX执行子程序estabur为进程建立 u-uisa,u-uisd 系统为上台进程建立UISA,UISD 存储资源管理---数据结构 存储资源管理---算法 标准的连续空间空闲内存管理算法 malloc,mfree 四、碎片问题 在分区存储管理方式中,必须把作业装入到一片连续的内存空间。如果系统中有若干个小的分区,其总容量大于要装入的作业,但由于它们不相邻接,也将致使作业不能装入内存。 例 :如图所示系统中有四个小空闲分区,不相邻,但总容量为90KB,如果现有一作业要求分配40KB的内存空间,由于系统中所有空闲分区的容量均小于40KB,故此作业无法装入内存。 这种内存中无法被利用的存储空间称为“零头”或“碎片”.根据碎片出现的情况分为以下两种: 系统中的碎片 2、碎片问题的解决方法 拼接或紧凑或紧缩技术 将内存中所有作业移到内存一端,使本来分散的多个小空闲分区连成一个大的空闲区。如图所示。这种通过移动作业从把多个分散的小分区拼接成一个大分区的方法称为拼接或紧凑或紧缩。 连续存储管理方式的缺点 碎片导致内存空间的浪费,虽有拼接技术对此进行弥补,但该操作耗时巨大。且需要执行拼接,操作时并非每个进程都能够被移动。 * * STACK Empty DATA CODE PAR:PDP-11的页基地址寄存器。 PAR [i] =程序第i页在内存中的起始地址,内存块号 PLF W ED ACF KISA 07600 (u.u_procp -p_addr)/16 01
文档评论(0)