首页 段页式虚拟存储管理

段页式虚拟存储管理

举报
开通vip

段页式虚拟存储管理     学 号:       课 程 设 计 题 目 段页式虚拟存储管理 学 院 计算机科学与技术 专 业   班 级   姓 名   指导教师 吴利军     2013 年 1 月 16 日             课程设计任务书 学生姓名:        指导教师:  吴利军      工作单位: 计算机科学与技术学院  题  目:  模拟设计段页式虚拟存储管理中地址转换 初始条件: 1.预备内容:阅读操作系统...

段页式虚拟存储管理
    学 号:       课 程 设 计 题 目 段页式虚拟存储管理 学 院 计算机科学与技术 专 业   班 级   姓 名   指导教师 吴利军     2013 年 1 月 16 日             课程设计任务书 学生姓名:        指导教师:  吴利军      工作单位: 计算机科学与技术学院  题  目:  模拟设计段页式虚拟存储管理中地址转换 初始条件: 1.预备 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 :阅读操作系统的内存管理章节内容,理解段页式存储管理的思想及相应的分配主存的过程。 2.实践准备:掌握一种计算机高级语言的使用。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 书撰写等具体要求) 1.实现段页式存储管理中逻辑地址到物理地址的转换。能够处理以下的情形: ⑴ 能指定内存的大小,内存块的大小,进程的个数,每个进程的段数及段内页的个数; ⑵ 能检查地址的合法性,如果合法进行转换,否则显示地址非法的原因。 2.设计报告内容应说明: ⑴ 需求 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 ; ⑵ 功能设计(数据结构及模块说明); ⑶ 开发平台及源程序的主要部分; ⑷ 测试用例,运行结果与运行情况分析; ⑸ 自我评价与总结: )你认为你完成的设计哪些地方做得比较好或比较出色; )什么地方做得不太好,以后如何改正; )从本设计得到的收获(在编写,调试,执行过程中的经验和教训); )完成本题是否有其他方法(如果有,简要说明该方法); 时间安排: 设计安排一周:周1、周2:完成程序分析及设计。 周2、周3:完成程序调试及测试。 周4、周5:验收、撰写课程设计报告。 (注意事项:严禁抄袭,一旦发现,一律按0分记) 指导教师签名:                      年    月  日 系主任(或责任教师)签名:          年    月  日 一、需求分析: 页式管理基本原理: 各个进程的虚拟空间被划分成若干个长度相等的页。页长的划分和内存与外存之间的数据传输速度及内存大小等有关。一般每个页长大约为1----4K,经过页划分之后,进程的虚拟地址变为页号p与页内地址w所组成。 除了将进程的虚拟空间划分为大小相等的页之外,页式管理还把内存空间也按页的大小划分为片或者页面。这些页面为系统中的任一进程所共享。从而与分区管理不一样,分页管理时,用户进程在内存空间内除了在每个页面内地址连续之外,每个页面之间不再连续。第一是实现了内存中碎片的减少,因为任意碎片都会小于一个页面。第二是实现了由连续存储到非连续存储的这个飞跃,为在内存中局部地、动态地存储那些反复执行或即将执行的程序和数据段打下了基础。 怎样由页式虚拟地址转变为内存页面物理地址?页式管理把页式虚拟地址与内存页面物理地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。 静态页面管理: 静态页面管理方法是在作业或进程开始执行之前,把该作业或进程的程序段和数据全部装入内存的各个页面,并通过页表和硬件地址变换机构实现虚拟地址到内存物理地址的地址映射。 1、内存页面的分配与回收 静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统依靠存储页面表、请求页面表以及页表来完成内存的分配。 (1)页表 最简单的页表由页号与页面号组成,页表在内存中占有一块固定的存储区。页表的大小有进程或作业的长度决定。 每个进程至少要拥有一个页表。 (2)请求表 用来确定作业或进程的虚拟空间的各页在内存中的实际对应位置。系统必须知道每个作业或进程的页表起始地址和长度,以进行内存的分配和地址变换,另外请求表中还应包括每个作业或进程所要求的页面数。 (3)存储页面 存储页面表也是整个系统一张,存储页面表指出内存各个页面是否已被分配出去,以及未被分配页面总数。存储页面表也有两种构成方法,一种是在内存中划分一块固定区域,每个单元的每个比特代表一个页面,如果该页面已被分配,则对应比特位置置1,否则置0。 另一种方法空闲页面链,不占内存空间。 2、分配算法 3、地址变换 在程序执行过程中,执行的是虚拟空间中的代码,代码中的指令是相对于虚拟空间的,需要到内存的实际空间中寻找对应的要执行的指令。 静态页式管理的缺陷: 虽然解决了分区管理时的碎片问题,但是由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,改作业或进程只好等待。而且,作业或进程的大小仍受内存可用空间的限制。 动态页式管理: 动态页式管理是在静态页式管理的基础上发展起来的。它分为请求页式管理和与调入页式管理(调入方式上)。 请求页式管理和预调入页式管理在作业或进程开始执行之前都不把作业或进程的程序段和数据段一次性的调入内存,而是只装入被认为是经常反复执行和调用的工作区部分。其他部分都在执行过程中动态的装入。 请求式页式管理:当需要执行某条指令或某些数据时而又发现他不在内存中时,从而发生缺页中断,系统将相应的页面调入内存。 预调入:系统对于那些在外存中的页进行调入顺序计算,估计出这些页中指令和数据的执行和被访问的顺序,并按此顺序将他们顺次调入和调出内存。 请求页式管理的地址变换与静态页式相同,也是通过页表查出相应的页面号,由页面号与页内相对地址相加而得到实际物理地址。由于只有进程或程序的部分存在内存中因此怎样发现这些不在内存中的虚页以及怎样处理这种情况是必须解决的两个基本问题。 怎样发现这些不在内存中的虚页:扩充页表的方法。 即与每个虚页号相对应,除了页面号之外,再增设该页是否在内存中的中断位以及该页在外存中的副本起始地址。 (1)采用何种方法将所缺的页调入内存。 (2)如果内存中没有空闲页面时,把调进来的页面放在什么地方。即采用什么策略淘汰已占据内存的页。还有就是如果内存中的也被淘汰,但该页被修改过,显然该页应当被重新写到外存加以保存。所以还要增加一项记录是否该页已经被改变。 常见的置换算法: (1)随机淘汰 (2)轮转法和先进先出法 (3)最近最久未使用 内存保护: 页式管理提供两种方式的内存保护:一是:地址越界保护。二是:通过页表控制对内存信息的存取操作方式以提供保护。 地址越界保护:由地址变换机构中的控制存储器的值——页表长度和所要访问的虚地址相比较来完成。 存取控制保护的实现则是在页表中增加相应的保护位即可。 段式管理: 分区式管理和页式管理时的进程的地址空间结构都是线性的,这要求对源程序进行编译连接时,把源程序中的主程序、子程序、数据区等按线性空间的一维地址顺序排列起来。共享子程序和数据变得很困难,再者从链接的角度来看,分区管理和页式管理只能采用静态链接。 段式存储管理是基于为用户提供一个方便的灵活的程序设计环境而提出来的。段式管理的基本思想是:把程序按内容或过程(函数)关系分成段,每段都有自己的名字。一个用户进程或作业所包含的段对应于一个二维线性虚拟空间,也就是二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换成实际的内存物理地址。和页式管理一样,段式管理也采用只把那些经常访问的段驻留内存,而把那些在将来一段时间内不被访问的段放在外存,待需要时自动调入的方法实现二维虚拟存储器。 段式管理把一个进程的虚拟空间设计成二维结构,即段号s与段内相对地址w。与页式管理不一样的是,页式管理中,被划分的页号按顺序编号递增排列,属一维空间,而段式管理中段号与段号之间无顺序关系。另外段的划分也不像页的划分那样具有相同的页长,段的长度是不固定的。每个段定义一组逻辑上完整的程序或数据。例如,一个进程中的程序和数据可划分为主程序段、子程序段、数据段与工作区段。 每个段是一个首地址为零的、连续的一维线性空间。根据需要段长可以动态的增长。对端式虚拟空间地址的访问包括两个部分:段名和段内地址。 段式管理中以端为单位分配内存,每段分配一个连续的内存区,由于各段长度不等,所以这些存储区的大小不一,而且统一进程所包含的各段之间不要求连续。 段式管理的内存分配与释放在作业或进程的执行过程中动态进行。首先,段式管理程序为一个准备进入内存准备执行的进程或作业分配部分内存,以作为该进程的工作区和放置即将执行的程序段。随着进程的执行,进程根据需要随时申请调入新段和释放老段。进程对于内存区的申请和释放可分为两种情况。一种是当进程要求调入某一段时,内存中有足够的空闲区满足该段的内存要求。另一种是内存中没有足够的空闲区。对于第一种情况,系统要用相应的 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 或数据结构来管理内存空闲区,以便对用户进程或作业的有关程序段进行内存分配和回收。事实上,可以采用和动态分区式管理相同的空闲区管理方式。即把内存各空闲区按物理地址从低到高排列或按空闲区的大小从小到大或从大到小排列。与这几种空闲区自由链相对应,分区式管理时所用的几种分配算法:最先适应算法、最佳适应算法、最坏适应法都可以用来进行空闲区分配。当然分区式内存管理时用到的内存回收方法也可以用在段式管理中。 另一种内存管理的分配与回收方法是在内存中没有足够的空闲区满足调入段的内存时使用的。这时段式管理程序根据给定的置换算法淘汰内存中在今后一段时间内不再被CPU访问的段,也就是淘汰那些访问率最低的段。不过任何一个段的长度都不允许超过内存的可用区长度。 除了段的初始分配之外,段的动态分配是在CPU所要访问的指令和数据不在内存时产生缺页中断的情况下发生的。因此段的淘汰或置换算法实际上是缺页中断处理过程的一部分。 段式管理的地址变换: 由于段式管理只存放部分用户信息副本在内存,而大部分信息在外存中,这必然引起CPU访问内存时发成所访问的段不在内存中的情况,CPU如何感知所要访问的段不在内存中而启动中断处理程序呢?还有,段式虚拟地址属于一个二维的虚拟空间。一个二维空间虚拟地址怎样变为一个一维的线性物理地址呢。 (1)段表 (2)段式管理程序在进行初始内存分配之前,首先根据用户要求的内存大小为一个作业或一个进程建立一个段表,以实现动态地址变换和缺页中断处理及存储保护等。段式管理是通过段表来进行内存管理的。 (3)段号与用户指定的段名一一对应,始址和长度分别表示该段在内存或外存的物理地址和实际长度。存取方式是用来对该段进行存取保护的。只有处理机状态字中的存取控制位与段表中的存取方式一致时才能访问该段。内外栏是指该段现在存储在外存还是内存中。如果如果该栏目指出所访问段在外存的话,则发生缺页中断。而访问位则是根据淘汰算法的需要而设的。 (4) (5)动态地址变换 一般在内存中给出一块固定的区域放置段表。当某进程开始执行的时候,管理程序首先把该进程的段表始址放入段表地址寄存器。通过访问段表寄存器,管理程序得到该进程段表始址从而可以开始访问段表。然后由虚拟地址中的段号s为索引,查段表。若该段在内存中,则判断其存取方式是否有错。如果存取方式正确,则从段表相应表目中查出该段在内存中的起始地址,并将其和段内相对地址w相加,从而得到实际内存地址。 如果该段不在内存,则产生缺页中断将CPU控制权交给内存分配程序。内存分配程序首先检查空闲区链,以找到足够长度的空闲区来装入所需要的段。如果可用的空闲区总数小于所要求的段长,检查段表中的访问位,以淘汰那些访问概率低的段并将所需要的段调入。
本文档为【段页式虚拟存储管理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_153723
暂无简介~
格式:doc
大小:37KB
软件:Word
页数:10
分类:金融/投资/证券
上传时间:2019-04-19
浏览量:47