分页系统课程设计计算说明书.doc
《分页系统课程设计计算说明书.doc》由会员分享,可在线阅读,更多相关《分页系统课程设计计算说明书.doc(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、提供全套,各专业毕业设计摘 要在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间,而用来选择淘汰哪一页的规则叫做页面置换算法。在进程运行过程中,若其所要访问的页面不在内存需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据,送磁盘的对换区中。但应将哪个页面调出,所以需要根据一定的算法来确定。常用的算法有先进先出置换算法(FIFO),最近最久未使用置换算法(LRU)和最佳置换算法(OPT),该设计是在VC+6.0环境下分别用LRU和FIF
2、O来实现页面置换算法的模拟程序,并测试。关键字:页面;中断;置换算法目 录1.概述11.1需求分析21.2原理分析31.3设计相关知识42.总体设计43.详细设计53.1地址转换63.2先进先出算法83.3最近最久未使用算法104.系统调试125.总结17参考文献18致 谢19附录201.概述分页式虚拟存储系统将作业信息的副本存放在磁盘中,不把作业的程序和数据全部装入主存,仅装入立即使用的页面,在执行过程中访问到不在主存的页面时,产生缺页中断,再把它们动态地装入。虚拟存储的基本思想是基于程序的局部性原理,仅把目前需要的部分程序加载到内存,其余暂时不用的程序及数据还保留在辅存中。在进程运行过程中
3、,如果所要执行的程序不在内存,系统要将要执行的程序段自动调入内存。此时如果内存已满,则要通过置换操作将暂时不用的程序段先调出到辅存,然后将所需的程序段调入内存,继续执行该进程。虚拟存储器的引入,实际上是利用了存储管理中逻辑地址空间和物理地址空间的关系,将计算机的内存和辅存结合起来,使得用户感觉具有大容量的内存,虚拟内存在虚拟内存在将逻辑地址转换成物理地址时,必须通过一个内存管理单元MMU(MemoryManagementUnit)来完成。存储管理一直是操作系统中的重要组成部分,因为冯诺依曼体系结构就是建立在存储程序概念上的,访问存储器的操作占CPU时间的70%左右。计算机系统中的存储器一般分为
4、主存储器(简称主存、内存)和辅助存储器(简称辅存)。由于CPU只能直接与内存进行通信,因此计算机系统的程序以及与该程序相关的数据,只有被装入到内存中才能有效地执行。计算机系统能否高效地管理内存空间,不仅直接反映存储器的利用率,还会影响整个操作系统的性能。1.1需求分析由于纯页式存储管理提高了内存的利用效率,但并不为用户提供虚存,并且会产生磁盘碎片问题。用户程序将受到物理内存大小的限制。而虚存的存储管理技术请求分页存储管理技术和请求分段技术,则很好的解决了这个问题。该设计虚拟实现请求分页管理。请求分页系统是在分页系统的基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。它允许只装入
5、部分页面的程序和数据,便启动运行。以后,再通过调页功能和页面置换功能,陆续把即将要运行的页面调入内存,同时把暂时不运行的页面换出到外存上,置换时以页面为单位。实现将程序正在运行时所需的但尚未在内存的页面调入内存,再将内存中暂时不用的页面从内存置换到外存磁盘上。为了实现请求分页技术,页表应增加相应的内容,反映该页是否在内存,在外存的位置,和在内存的时间的长短。各字段说明如下: (1)状态位:指示该页是否已调入内存。 (2)访问字段:记录本页在被访问的次数,或记录最近已有多长时间未被访问。修 改位:表示该页面在调入内存后是否被修改过。若未被修改,在替换该页时就不需要再将该页写回到外存上,以减少系统
6、的开销和启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新副本。 (3)外存地址:指出该页在外存上的地址,通常是物理块号。1.2原理分析分页虚拟系统存储管理方式是在分页系统的基础上,增加了请求调页功能和页面置换功能所形成的虚拟存储器系统。在进程装入内存时,并不是装入全部页面,而是装入若干页(一个或零个页面)之后根据进程运行的需要,动态装入其他页面。当内存空间已满,而又需要装入新的内存时,则根据某种算法淘汰某个页面,以便腾出空间,装入新的页面。在分页虚拟存储管理时使用的页表,是在原来页表的基础上发展起来的,包括以下内容:页号,物理块号,状态位,外存地址。其中状态
7、位表示该页是否已经调入内存:外存地址用于指出该页在外存上的地址,通常是物理块号,供调入该页时使用。在分页虚拟存储管理系统中,每当要访问的页面不在内存时,便产生一缺页中断,请求操作系统把所缺页面调入内存。如果内存空间已被装满而又要装入新页时,必须按某种算法将内存中的一些页淘汰出去,以便调入新页,这个工作称为“页面置换”。选择被淘汰页的方法称为页面置换算法。页面置换算法的好坏,直接影响到系统的性能。一个好的页面置换算法,应具有较低的页面更换频率。先进先出算法:这是最早出现的置换算法,该算法每次淘汰最先进入内存的页。这种置换算法的优点是:简单,易于实现。缺点是:效率不高,因为在内存中驻留时间最长的页
8、不一定是最长时间后才使用的页。并且这种置换算法可能产生“抖动”现象。最近最久未使用算法:该算法淘汰那些在一段时间最少使用的页。LRU算法是较好的一个算法,但是开销太大,要求系统有较多的支持硬件,因而在实际应用中,大多只采用LRU的近似算法。1.3设计相关知识1虚拟存储器的引入:局部性原理:程序在执行时在一较短时间内仅限于某个部分;相应的,它所访问的存储空间也局限于某个区域,它主要表现在以下两个方面:时间局限性和空间局限性。2虚拟存储器的定义: 虚拟存储器是只具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。3虚拟存储器的实现方式:分页请求系统,它是在分页系统的基础上,增
9、加了请求调页功能、页面置换功能所形成的页面形式虚拟存储系统。请求分段系统,它是在分段系统的基础上,增加了请求调段及分段置换功能后,所形成的段式虚拟存储系统。4. 页面:是将一个进程的逻辑地址空间分成若干个大小相等的区,称为页面或页,并为各页加以编号,从0开始。 页框(页帧):把主存空间分成与页面相同大小的若干个存储区,称为物理块或页框, 也同样从0开始依次编号。页表:将页号和页内地址转换成内存地址,必须要有一个数据结构,用来登记页号和块的对应关系和有关信息,这样的数据结构称为页表。5页面置换算法:常用的页面置换算法有OPT、FIFO、LRU、Clock、LFU、PBA等。2.总体设计分页存储管
10、理方式提高了内存的利用率,分段存储管理方式方便了用户的使用。结合两者的优点,将分页存储管理和分段存储管理方式组合在一起,形成了段页式存储管理方式。在段页式存储管理方式中内存分为大小相同的块,每个作业地址空间按照逻辑关系分成若干段,并为每个段赋予一个段名,每段可以独立从0编址,每段按内存块大小分成页,每段分配与其页数相同的内存块,内存块可以连续也可以不连续。系统为每段建立页表记录每页对应的块,同时还为该程序建立段表记录每段对应的页表。由段页式存储管理方式的基本原理可以知道,为了访问段页式的地址空间,逻辑地址由三部分组成:段号S,段内页号P和页内地址d。(1)硬件地址变换在段页式存储管理系统中,为
11、了实现地址变换,配置一段表寄存器,在该寄存器中存放段表的始址和段长。地址变换时,首先利用段号和段长进行比较,如果段号小于段长,则没有越界,于是利用段表寄存器中的段表始址和段号求出该段的段表中的位置,从中得到该段的页表始址,并利用逻辑地址中的段内页号得到该页对应的页表的位置,从中读出该页所对应的物理块,把物理块号和页内地址送物理地址寄存器,构成物理地址。作业业执行时,指令中的逻辑地址指出参加运算的操作数(或指令)地址中的页号和页内偏移量。硬件地址转换机构按页号查页表。若该页的标志为1,则表示该页已在主存,从而找到该页对应的主存块号。根据关系式:绝对地址=块号*块的长度+页内偏移量计算出欲访问的主
12、存地址。由于页号为2的整次幂,所以只要将块号与页内偏移量相拼接,放入主存地址寄存器即可。按照该地址取指令或取操作数,完成指定的操作。设计一个”地址变换”程序,模拟硬件地址变化过程。当访问的页在主存时,则形成绝对地址后,不去模拟指令的执行,而是输出被转换的地址。当访问的页不在主存时,输出”该页不在主存,产生缺页中断”,以表示产生一次缺页中断。(2)页面置换算法a先进先出置换算法(FIFO):是最简单的页面置换算法。这种算法的基本思想是:当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。b最近最久未使用(LR
13、U)算法:这种算法的基本思想是:利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰。开 始进入硬件地址变换算法进入页面置换算法输入指令输入指令的逻辑地址退出产生随机序列LRU算法FIFO算法进程序列号总体设计模块图如下图2.1图2.1总体设计模块图3.详细设计3.1地址转换(1)分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时
14、,应说明哪些页已在主存,哪些页尚未装入主存,其中,标志-用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。主存块号-用来表示已经装入主存的页所占的块号,在磁盘上的位置-用来指出作业副本的每一页被存放在磁盘上的位置。(2)作业执行时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式: 绝对地址=块号块长+单元号。计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。若访问的页对应标志
15、为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。(3)设计一个“地址转换”程序来模拟硬件的地址转换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主存时,则输出“产生缺页”,表示产生了一次缺页中断。(4)地址变换过程:当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动将逻辑地址分为页号和页内地址两部分,再以页号为索引去检索页表,查找操作由硬件执行。在执行检索之前,先将页号与页表寄存器中的页表长度进行比较,如果页号大于或等于页
16、表长度,则表示本次所访问的地址已超越进程的地址空间。于是,这一错误将被系统发现并产生一地址越界中断。若没有出现越界错误,则将页表始址与页号和页表项长度的乘积相加,便得到该表项在页表中的位置,于是可从中得到该页的物理块号,将之装入物理地址寄存器中。与此同时,再将逻辑地址寄存器中的页内地址直接送入物理地址寄存器的块内地址字段中,这样便完成了从逻辑地址到物理地址的转换。开始取一条指令取指令中访问的页号查页表该页标志=1?形成绝对地址输出绝对地址输出“该页不在主存”发生缺页中断有后续指令?结束取下一条指令YYNN图3.1地址变换图3.2先进先出算法该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时
17、间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按照先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总指向最老的页面。但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如,含有全局变量、常用函数、例程等的页面,FIFO算法并不能保证这些页面不被淘汰。(1)在分页式虚拟存储系统中,当硬件发出“缺页中断”后,引出操作系统来处理这个中断事件。如果主存中已经没有空闲块,则可用FIFO页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上,然后再把当前要访问的页装入该块。调出和装入后都要修改页表中对应页的标志。(2)FIFO页面调度算法总是淘汰
18、该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时,把开始的m个页面装入主存,则数组的元素可定为m个。例如: P0,P1,.,Pm-1其中每一个Pi(i=0,1,.,m-1)表示一个在主存中的页面号。它们的初值为:P0:=0,P1:=1,.,Pm-1:=m-1用一指针k指示当要装入新页时,应淘汰的页在数组中的位置,k的初值为“0”。当产生缺页中断后,操作系统选择Pk所指出的页面调出,然后执行:Pk:=要装入页的页号 k:=(k+1) mod m再由装入程序把要访问的一页信息装入到主存中。重新启动刚才那条指令执行。(3)FIFO 页面调度算法总是淘汰该作
19、业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时,把开始的m 个页面装入主存,则数组的元素可定为m 个。(4)优点:对每个进程来说都是公平的。对于长作业来说比较有利,但对于短作业来说需要等待很长的时间。缺点:FIFO算法从表面上看对所有作业都是公平的,但实际上当一个长作业排在就绪队列前面时,就会使排在其后的许多短作业等待很长的时间。所以,这种算法不利于短作业,致使短作业的等待时间可能要远远超出它运行的时间入口初始化数据i指向下一个页面页面是否存在物理块是否有空闲先进先出的页面作为淘汰页i页面长度计算缺页率,并输出数据结束将页面放空到空闲的物理块处YY图3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分页 系统 课程设计 计算 说明书 doc
限制150内