段页式存储管理设计文档.doc

段页式存储管理设计文档.doc

ID:58654796

大小:140.00 KB

页数:23页

时间:2020-10-16

段页式存储管理设计文档.doc_第1页
段页式存储管理设计文档.doc_第2页
段页式存储管理设计文档.doc_第3页
段页式存储管理设计文档.doc_第4页
段页式存储管理设计文档.doc_第5页
资源描述:

《段页式存储管理设计文档.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《操作系统》综合实训项目设计文档一、基本信息项目名称:段页式虚拟存储管理完成人姓名:余凡学号:完成日期:2014年5月29日二、实验内容与目的编写程序完成段页式虚拟存储管理存储分配、地址重定位和缺段,缺页中断处理。(1)为一个进程的内存申请(多少个段,每个段多大)分配内存,当一个进程(完成)结束时回收内存;(2)对一个给定逻辑地址,判断其是否缺段、缺页,若不缺段、不缺页,则映射出其物理地址;(3)若缺段则进行缺段中断处理,若缺页则进行缺页中断处理。(4)由用户确定输入内存块数量和块大小,进程逻辑地址空间最多4个段,每个段最大16K,进程驻留集大小为8页。假设进程运行前未预先装入任何地

2、址空间,页面淘汰策略采用局部(驻留集内)置换策略。输出每次存储分配/回收时,内存自由块分布情况、相关进程的段表和页表信息。实验目的1、加深理解段页式虚拟存储管理的概念和原理。2、掌握段页式存储管理中存储分配(和回收)方法;3、深入了解段页式虚拟存储管理中地址重定位(即地址映射)方法。4、深入理解段页式虚拟存储管理中缺段、缺页中断处理方法。三、主要设计思路和流程图设计思路:从进程和内存两大模块出发:(1)内存初始化,提示用户输入内存块数和大小,每一块内存初值都置为0,表示内存空闲;(2)进程申请空间,用户输入进程数目,每个进程的段数,每段的页数,设置每个进程每段每页的页框号均为-1,表

3、示未被载入内存,每页的运行时间也都为0,方便之后的LRU算法或者FIFO算法置换被淘汰的页;(3)为进程分配内存,对于每个进程每段每页都先判断当前内存是否已满,若未满,则判断该进程驻留集是否已满,若驻留集未满,则为该页分配一块内存,将该块内存的值置为1,该页的页框号即为找到的空闲块号,该页和该段的页标志量均置为1,每次为当前页分配内存时,都将该进程中已载入内存中的页的runtime和accesstime加1,方便方便之后的LRU算法或者FIFO算法置换被淘汰的页,并输出系统为其分配内存后的段表和页表内容。若该进程的驻留集已满,则执行下一个进程,重复执行上述动作。若内存已满,则停止内存

4、分配,跳出该循环,询问用户是否进行地址重定位;(4)地址重定位时,提醒用户输入要访问的进程号,判断该进程是否在内存中,若在则提醒输入进程段号,判断该进程的这个段的标志量是否为1,若是则输入页号,判断页标志量是否为1,若是则输入偏移量,完成逻辑地址到物理地址的映射,若段标志量或页标志量不为1,则发生缺段或缺页中断,进行中断处理,选择LRU或者FIFO中断处理,并输出缺段或缺页中断处理后的段表和页表信息。初始化内存块,输入内存块数和内存块大小,每个内存块的初值置为0流程图:Y内存分配,修改该页相关信息N判断进程驻留集是否已满NY地址转换判断内存是否已满开始内存分配进程申请空间,确定进程数

5、目,每个进程的段数,每段的页数,初始化每页的相关信息输出页面置换后的段表页表信息YN完成逻辑地址到物理地址的映射FIFO缺页置换YLRU页面置换或者FIFO判断是否缺页输入页号判断是否缺段LRU缺页置换Y缺段中断处理N输入段号判断进程是否在内存中访问的输入要访问的进程号跳出本该进程的内存分配循环,开始下一个进程的内存分配N四、主要数据结构及其说明/*页表相关信息*/typedefstruct{intframeNumber;intpageFlag;intaccesstime;intruncount;}Page;/*段表相关信息*/typedefstruct{intsegmentleng

6、th;//段长即每一个段的页数intstartAddress;Pagepagenum[SegLength];intsegFlag;intpagereal;}Segment;/*进程相关信息*/typedefstruct{Segmentsegment[Segnumber];intisInmemory;intsegtotalnumber;intinpage;//载入内存中的页数intsegreal;}Process;intblocksize;//块大小intblocknumbers;//块数量intprocessnumber;//进程数量intAvailableBlock;//内存中可用

7、块数量intoffset;//页内偏移量Processprocess[Processcount];//进相关信息程intmemory[AssumeBlock];//内存块相关信息intoccupied;//已被占用的内存块数量五、程序运行时的初值和运行结果测试用例如下:确定内存块数为23;块大小为1K;进程个数2;(1)0号进程有3个段0号段的页数21号段的页数32号段的页数4(2)1号进程有3个段0号段的页数31号段的页数42号段的页数5(3)需要进行地

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。