




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程设计实践报告题 目: 计算机虚拟页式存储管理系统的仿真实现 姓 名: * 学 院: 信息科技学院 专 业: 计算机科学技术系 班 级: * 学 号: * 指导教师: * 职称: * 2017年3月 12 日目 录摘要3关键词3Abstract3Key words31绪论41.1选题目的41.2选题意义42设计思路与完成功能说明42.1课程设计思路42.1.1模拟多进程并发环境42.1.2页面访问请求与异常处理52.1.3过程可视化52.1.4整体思路流程图62.2完成功能说明73裸机硬件部件仿真设计83.1存储空间的设计与抽象83.2存储管理部件MMU的抽象与设计93.3中央处理器CPU的抽象与设计94通用数据结构设计94.1后备作业队列抽象设计94.1.1数据结构设计94.1.2基础操作94.2进程状态队列抽象设计104.2.1数据结构设计104.2.2基础操作104.3快表抽象设计114.3.1数据结构设计114.3.2基础操作114.4页表项抽象设计124.4.1数据结构设计124.4.2基础操作124.5外页表项抽象设计124.5.1数据结构设计124.5.2基础操作134.6页表基址寄存器抽象设计134.6.1数据结构设计134.6.2基础操作134.7程序状态字抽象设计134.7.1数据结构设计134.7.2基础操作134.8驻留集抽象设计134.8.1数据结构设计134.8.2基础操作144.9内存抽象设计144.9.1数据结构设计144.9.2基础操作154.10外存抽象设计154.10.1数据结构设计154.10.2基础操作155软件系统设计155.1系统结构155.1.1底层硬件抽象155.1.2功能模拟155.1.3模块整合165.1.4系统结构图175.2系统类图与顺序图185.2.1系统类图185.2.2系统顺序图195.3功能实现流程205.3.1实现作业生成、进程创建与资源分配205.3.2实现进程调度与进程上下文切换215.3.3实现对快表和驻留集的管理225.3.4实现快表和慢表的搜索235.3.5实现缺页异常处理与命中率的计算245.3.6实现过程可视化246关键操作256.1模拟并发环境256.1.1进程阻塞原语256.1.2进程唤醒原语256.1.3进程上下文切换256.2页面替换算法266.2.1先入先出FIFO页面替换算法266.2.2最久未被访问LRU页面替换算法276.2.3时钟CLOCK页面替换算法286.3过程可视化297技术问题分析与解决方案307.1存在问题与解决方案307.2其他设想318实践体会31参考文献32附件133附件238附件339计算机虚拟页式存储管理系统的仿真实现*专业学生 *指导教师 *摘要:任何程序和数据必须占用内存空间才能得以执行和处理,但让进程全部信息驻留于内存是对内存资源的极大浪费,因此利用“部分装入,部分替换”来实现存储空间在逻辑上的扩充是提高内存利用率的有效手段,虚拟页式存储管理是将程序信息副本存放在外存中,当它被调度投入运行时仅装入当前使用页面;进程执行过程中访问到不在内存的页面时,再由系统自动调入,根据页面替换算法选择淘汰页面。它依靠底层硬件MMU支撑来完成地址转换和存储保护的功能,从逻辑上为用户提供一个比物理内存容量大得多的、可寻址的存储器。本次课程设计目标是利用c+程序设计语言抽象硬件部件,模拟系统软件功能,完成并行环境下计算机虚拟页式存储管理系统的仿真实现。在实现过程中,采用Qt Creator集成开发环境,利用c+面向对象的思想,用对象类对硬件部件进行抽象模拟,用成员函数作为接口,模拟各部件API完成功能的集成,基本完成了预期功能;实现了并发环境下的页面访问请求,利用多种页面替换算法实现缺页异常处理中的页面替换;实现了进程调度、内外存实时占用情况及页面替换的过程可视化,并最终将过程中涉及到的数据变化保存至指定文档。关键词:虚拟页式存储管理;内存;外存;页面替换算法;MMU;c+;可视化 The Computer Simulation of Virtual Page Storage Management SystemStudent majoring in * * Tutor *Abstract:.Any program or data must occupy memory space can be implemented and processing, but let all of the information process resides in the memory is to the memory resources waste, therefore part of the load, partial substitution is used to realize the storage space on the logic of expansion is an effective method for improving memory utilization, virtual storage management page type is the program a copy of the information stored in CRT, when it is dispatching operation use only into the current page; The execution of a process to access to the page that is not in the memory, again by the system automatically transfer into, according to the page replacement algorithm selection page. It relies on the underlying hardware MMU support to complete the address translation and storage protection function, logically provides users with a much larger than physical memory capacity, addressable memory. This course was designed by using c + + program design language abstract hardware components, function of simulation system software, complete the parallel computer virtual page storage management system under the environment of the simulation implementation. In the process of implementation, using Qt Creator integrated development environment, using the ideas of object-oriented c + +, use object classes to abstract simulation of hardware components, with a member function as the interface, analog components API complete function integration, basically completed the expected function; Page access request realized concurrent environment, using a variety of page replacement algorithm implementation missing page page replacement in exception handling; Realized the real-time process scheduling, both inside and outside storage usage and page replacement process visualization, and eventually will be involved in the process of data saved to the specified document.Key words: Virtual page storage management; Memory; Peripheral storage; Page replacement algorithm. MMU. C + +; visualization1 绪论11 选题目的编写程序模拟请求分页虚存管理中的存储管理部件MMU进行虚实地址转换的过程以及缺页异常的处理,利用页面替换算法淘汰页面,并实现过程可视化。主要包括:(1)模拟作业执行与调度,进程创建与终止;(2)模拟进程调度与进程上下文切换;(3)实现硬件页表基址寄存器与快表的管理与访问;(4)仿真实现存储管理部件MMU;(5)仿真实现页表、外页表并对其进行管理与访问;(6)处理缺页异常,按照替换算法选择淘汰页面;(7)实现对内存与外存的抽象设计;(8)内存与外存占用情况的可视化;(9)进程调度与页面替换过程可视化。从而将操作系统的处理器管理与存储管理联系在一起,将理论与实践相结合,从整体上系统的了解并发环境中的地址转换机制,更深入的理解计算机虚拟页式存储管理系统的实现,在加深对理论理解的同时强化编程能力与算法思维。12 选题意义存储管理是操作系统的重要组成部分,负责管理计算机系统的重要资源内存储器。由于任何程序和数据必须占用内存空间才能得以执行和处理,因此存储管理的优劣直接影响系统性能。但是进程全部信息驻留于内存是对内存资源的极大浪费,因此利用“部分装入,部分替换”来实现存储空间在逻辑上的扩充是提高内存利用率的有效手段。操作系统是一个并发系统,所有功能都是在并发环境下实现的,因此,如何将虚拟页式存储管理和处理器管理有效的结合起来是该选题的重点也是难点,这也是意义所在。找到独立章节的理论知识之间的联系并用代码建立联系,实现相应的功能,不仅仅是对理论知识的深入理解的过程,也是实践能力、动手能力和编程能力的考验与锻炼有着重要意义。虚拟页式存储管理系统涉及到的硬件有中央处理器CPU、存储管理部件MMU、内存、外存以及页表基址寄存器、快表等相关寄存器。将这些硬件设备抽象成代码实现不仅仅需要对这些硬件的属性结构有全面的了解,还需要对他们的功能做出动态的仿真。从而在深化理论知识的同时,也对面向对象的抽象能力与对数据结构灵活运用的能力的锻炼有着重要意义。同时,虚拟页式存储管理系统所基于的“装入替换”涉及到了页面的装入、替换与淘汰,因此需要页面替换算法来实现这些功能。常见的页面替换算法诸如先入先出页面替换算法(FIFO)、最近最少使用页面替换算法(LRU)、时钟页面替换算法(LRU)等,用程序设计语言实现这些算法,也对算法思维的培养有着重要意义。2 设计思路与完成功能说明21 课程设计思路211 模拟多进程并发环境首先从高级调度开始,作业生成后从后备作业队列根据相关调度策略(以先来先服务为例)获取作业,接着动态创建作业所需一系列进程,即从PCB池中申请空白PCB,对其初始化并分配内存空间等一系列资源。如果获得所需的资源,将该PCB从新建态转换为就绪态,即加入就绪队列,同时更改进程状态位。需要注意的是,在进程的抽象设计中,为了简化设计而使PCB代表进程,进程的指令数随机生成,指令所需访问的逻辑页面随机生成,逻辑页号与物理页号的对应关系由系统为每个进程自动生成。进程访问某一页面时MMU根据CPU给出的逻辑地址获取相应的逻辑页号与页内偏移;然后以页号为索引搜索快表,如果快表中存在该页号,则获得物理页号与偏移地址拼接成物理地址;如果快表中不存在该页号,则搜索慢表,如果慢表中存在该页号(即页表项的驻留位为1),也就是该页面存在于内存,则直接获取相应物理页号,并将该项填入快表;如果慢表中不存在该页号,也就是该页面未调入内存(即页表项驻留位为0),则发出异常信号;该进程被阻塞,释放CPU资源并在保存现场信息后进入等待队列,下一个进程获得CPU资源开始回复自己的现场,也就是进程上下文切换,然后进入运行态。进程从外页表获得该缺页的信息后,如果驻留集未满则直接加入该页面对应的逻辑页号,如果驻留集满则采用页面替换策略选择淘汰相应页面对应的逻辑页号,并加入新页面对应的逻辑页号,同时将新页面的逻辑页号与物理页号的对应关系加入进程快表信息。这时进程等待事件已经结束,进程被唤醒,进入就绪队列等待CPU资源。需要注意,在页面的访问与替换过程中涉及到页表引用位、驻留位等标志位的转变。进程指令执行完毕后,需要结束进程进入终止态,从PCB池中撤销该进程PCB,并收回进程所占内存空间。212 页面访问请求与异常处理页面访问请求过程如下:(1)MMU接收CPU传送来的逻辑地址并按照页面大小把它从某位起分解成两部分:页号和页内偏移;(2)以页号为索引快速搜索快表TLB;(3)如果命中,立即送出页框号,并与页内偏移拼接成物理地址;(4)如果不命中,由硬件以页号为索引搜索页表,页表基址由硬件页表基址寄存器指出;(5)如果页表被命中,说明访问页面已经在内存中,可送出页框号,并与页内偏移拼接成物理地址,同时要把这个页面和页框信息装入快表TLB,以备再次访问。(6)如果发现页表中的对应页面失效,MMU发出缺页异常;缺页异常处理过程如下:(1)挂起请求调页的进程;(2)根据页号搜索外页表,找到存放此页的磁盘物理地址;(3)查看内存是否有空闲页框,如果有则分配一个;(4)如果内存中无空闲页框,按照替换算法选择淘汰页面;(5)将修改过的的淘汰页内容写回磁盘原先位置;(6)进行调页,把页面装入内存所分配的页框中,同时修改进程页表项。213 过程可视化(1)控制台显示作业与进程的创建、执行、调度等状态信息,并显示进程的页面访问请求、页面替换过程以及内存、外存的占用情况;(2)将作业与进程的创建、执行、调度等状态信息写入文档,并将进程的页面访问请求以及页面替换过程写入文档,将内存与外存的占用情况写入文档;(3)将进程的页面访问请求以及页面替换过程写入图形化界面,将内存与外存的占用情况以位示图的方法写入图形化界面,实现动态的过程可视化。214 整体思路流程图图2.1.4-1 整体思路流程图图2.1.4-2 整体思路流程图22 完成功能说明(1)抽象并设计CPU模块。实现进程上下文切换,模拟进程指令的执行与进程对页面访问请求的生成,实现对快表和页表基址寄存器等硬件寄存器的访问与管理,其中,快表按照FIFO算法进行表项替换;函数声明参数返回值函数功能setPCBPCB pcbvoid设置进程控制块,表示该进程正在运行setPSWPSW pswvoid设置程序状态字,用于进程上下文切换setPtbrPTBR ptbrvoid设置进程的页表基址,用于进程上下文切换setTLBTQueue ptlbvoid置快表内容,用于进程上下文切换setPCint pcvoid设置指令计数器setIRint irvoid设置当前指令getIR无int获得当前指令逻辑地址InitTlb无void初始化快表ClearTlb无void清空快表(2)抽象并设计MMU模块,实现对逻辑地址的分解、对快表与慢表的搜索、发出缺页异常信号,并调用相应异常处理模块完成对缺页异常的处理,最后输出物理地址;函数声明参数返回值函数功能setLogicAddr无void获得逻辑地址setPageNoTemp无void获得页号setOffsetAddr无void获得偏移地址setCPUCPU cpuvoid获得当前CPU状态setPhysicAddr无void获得物理地址CutLogicAddr无void分解逻辑地址,页号3位,页内偏移5位(3)抽象并设计PCB模块与PCBPOOL模块,设计后备作业队列、进程等待队列、就绪队列,实现作业的生成、调度、执行与终止,以及在作业执行过程中,进程的创建、调度与终止,作业和进程均按照先来先服务算法进行调度,在进程调度时需要保护CPU现场信息,以保证进程能够在自己的运行环境下运行;函数声明参数返回值函数功能CreatePCB无int申请一个空白PCB,分配内存并初始化FreePCBPCB fpcbint释放PCBBlockCoursePCB bpcbint进程阻塞原语WakeCoursePCB &wpcbint进程唤醒原语ReadyQueueisEmpty无int 判断就绪队列是否为空WaitQueueisEmpty无int判断等待队列是否为空EnReadyQueuePCB qpcbint进就绪队列,表示进程已获得内存等资源,进入就绪态DeReadyQueue无PCB出就绪队列,表示进程获得处理器,进入运行态ReadyQueueLength无int 获得就绪队列长度EnWaitQueuePCB qpcbint进等待队列,表示进程出现等待事件,被阻塞进入等待态DeWaitQueue无PCB出等待队列,表示等待事件结束(4)仿真实现存储空间模块,包括内存的抽象与外存的抽象,以及对页表、外页表的管理,页表中有引用位、驻留位等标志位;存储空间按块划分,块与页大小相同,用位示图法表示作业调度、进程调度过程中存储空间的占用情况;函数声明参数返回值函数功能setPCBSpaceint addr,int pidvoid为进程分配内存空间freePCBSpaceint addr,int pidvoid释放进程内存空间setPCBpageSpaceint iFvoid为进程页表分配内存空间freePCBpageSpaceint iFvoid释放进程页表内存空间setJOBSpaceint addrvoid为作业分配外存freeJOBSpaceint addrvoid释放作业外存(5)模拟存储管理程序对缺页异常进行处理,按照FIFO、LRU、CLOCK三种页面替换算法选择淘汰页面,实现页面的调入与调出,并对进程页表标志位进行相应的操作,实现进程驻留集抽象;函数声明参数返回值函数功能setRealPageNoTempLRUpcbpool,ShowProgram,ShowMemory,intint获得页框号LRU算法setRealPageNoTempFIFOpcbpool,ShowProgram,ShowMemory,intint 获得页框号FIFO算法setRealPageNoTempCLOCKpcbpool,ShowProgram,ShowMemory,intint获得页框号CLOCK算法(6)将调度信息以及页面替换信息写入文档,并完成用户界面设计,实现虚拟页式存储管理系统的过程可视化。函数声明参数返回值函数功能setPagePCB pcbvoid获得当前正在运行的PCB状态clearPage无void清空页表界面setTlbPCB pcbvoid获得当前快表的状态clearTlb无void清空快表界面setStayPagePCB pcbvoid获得当前进程LRU方法的驻留集状态clearStayPage无void清空驻留集界面setCycleStayPagePCB pcbvoid获得当前进程CLOCK方法的驻留集状态setFifoStayPagePCB pcbvoid获得当前进程FIFO方法的驻留集状态clearall无void清空全部界面(7)完成命中率的计算以评价模拟系统的优劣。3 裸机硬件部件仿真设计31 存储空间的设计与抽象 抽象并设计存储空间模块,采用将程序指令存储和数据存储分开的哈弗结构,具体分为内存抽象与外存抽象。存储空间按块划分,块与页大小相同,均为32B。内存1024B即32块,外存2048B即64块。物理地址9位,4位页号,5位页内偏移,可访问512B大小的空间;逻辑地址10位,5位页号,5位页内偏移,可访问1024B大小的空间。32 存储管理部件MMU的抽象与设计抽象并设计存储管理部件MMU模块,以对象类的形式模拟存储管理部件MMU的结构和功能。存放逻辑地址与物理地址的寄存器等结构部件以静态属性抽象模拟。地址分解、地址转换、发出异常与异常处理功能等功能以动态成员函数抽象模拟。33 中央处理器CPU的抽象与设计抽象并设计中央处理器CPU模块,以对象类的形式模拟中央处理器CPU的结构和功能。程序状态字PSW ;页表基址寄存器PTBR;指令计数器PC;指令寄存器IR;快表TLB等寄存器部件都以静态属性抽象模拟。进程调度时进行进程上下文切换以保护CPU现场信息;将逻辑地址传送给存储管理部件MMU;指令的运行等功能以动态成员函数抽象模拟。4 通用数据结构设计41 后备作业队列抽象设计411 数据结构设计typedef struct/后备作业队列,数据结构用队列表示 int base10;/队列基地址 int rear;/队列尾指针 int front;/队列头指针JQueue;412 基本操作void EnJob(int job)/进后备作业队列作业进队列;尾指针+1;int DeJob()/出后备作业队列if(队列为空,作业执行结束)返回-1;else作业出队列;头指针+1;为作业分配外存;返回0;void InitJob()/初始化后备作业队列队列指针初始化; while(作业数不为0) 作业号=生成随机数;作业数=作业数-1; 42 进程状态队列抽象设计421 数据结构设计typedef struct/进程状态队列 PCB base100;/队列元素为进程控制块 int rear;/队列尾指针 int front;/队列头指针PQueue;422 基本操作int ReadyQueueisEmpty()/判断就绪队列是否为空if(队列头指针= 队列尾指针)返回1;返回0;int WaitQueueisEmpty()/判断等待队列是否为空if(队列头指针= 队列尾指针)返回1;返回0;int EnReadyQueue(PCB qpcb)/表示进程已获得内存等资源,进入就绪态进程进入就绪队列;队列尾指针+1;PCB DeReadyQueue()/出就绪队列,表示进程获得处理器,进入运行态if(就绪队列不为空)进程出队列;队列头指针+1;else返回空; int ReadyQueueLength();/就绪队列长度 int EnWaitQueue(PCB qpcb) /表示进程出现等待事件,被阻塞进入等待态进程进入等待队列;队列尾指针+1;PCB DeWaitQueue()/出等待队列,表示等待事件结束if(等待队列不为空)进程出队列;队列头指针+1;else返回空;43 快表抽象设计431 数据结构设计typedef struct TNode/页号和页框号的对应关系的数据结构 int tpageno;/页号 int trealpageno;/页框号TNode;typedef struct/快表队列 TNode base4;/快表大小是3,数据结构为循环队列,所以空出一位 int rear;/队列尾指针 int front;/队列头指针TQueue;432 基本操作void InitTlb()/初始化快表快表头指针=快表尾指针=0;int EnTlb(int epageno,int erealpageno)/进快表生成新的快表项;快表项进快表;快表尾指针+1;int DeTlb()/出快表if(快表为空)返回-1;else返回表头快表项的物理页号;int TlbisFull()/判断快表是否满if(尾指针+1=头指针)返回1;返回0;void ClearTlb()/清空快表尾指针=头指针=0; int VisitTlb(int pageno);/遍历快表int TlbSize()/快表长度返回 尾指针-头指针;44 页表项抽象设计441 数据结构设计typedef struct Page/页表项,大小为2B int iPageNo;/页号 int iRealPageNo;/页框号 int iInMemory;/驻留标志位 int iHavenUse;/引用位 int iChange;/修改位 int iProtect;/保护位Page;442 基本操作void setPage()/进程页表 生成新页表; 设置页号; 设置驻留位、引用位、修改位、保护位;对应页框号; void setPageInMemory(int pageno,int n)/设置页面的驻留位遍历页表;if(页号相同)该页面驻留位置n;void setPageHavenUse(int pageno,int n);/设置页面的引用位int getPageInMemory(int pageno) /根据页号获得进程页表驻留位遍历页表;if(遍历未结束 & 页号相同)驻留位置n;返回0;if(遍历结束 & 不存在页号相同)返回 -1; int getPageHavenUse(int pageno);/根据页号获得进程页表引用位int getPhyPageNo(int pageno);/根据页号获得对应物理页号45 外页表项抽象设计451 数据结构设计typedef struct OutPage/外页表项,大小为2B int iOutPageNo;/页号 int iOutRealPageNo;/页框号 int phyAddr;/物理地址OutPage;452 基本操作void setOutPage()/进程外页表生成新页表; 设置页号;对应物理地址;46页表基址寄存器抽象设计461 数据结构设计typedef struct PTBR/页表基地址寄存器抽象 int iF;/页表起始地址 int iM;/页表长度PTBR;462 基本操作void setPtbr()/生成页表基地址设置页表基地址;设置页表长度;int getiF()/获得进程页表基址返回页表基址;47 程序状态字抽象设计471 数据结构设计typedef struct PSW/程序状态字抽象 int iNumber;/当前运行指令编号 int IF;/中断允许标志,为1允许响应中断,否则关中断 int iType;/此时运行状态,0表示用户态,1表示内核态PSW;472 基本操作void setPSW(PSW psw)/设置程序状态字,用于进程上下文切换设置当前运行指令编号 设置中断允许标志,为1允许响应中断,否则关中断 设置此时运行状态,0表示用户态,1表示内核态48 驻留集抽象设计481 数据结构设计typedef struct/用于CLOCK算法的驻留集,数据结构用循环队列表示 int ptr;/当前指针指向的位置 int front;/队首标志 int rear;/队尾标志 int *base;/队列元素CycleQueue;typedef struct/用于FIFO的驻留集,数据结构用顺序队列表示 int *base;/驻留集基地址 int rear;/驻留集尾指针 int front;/驻留集头指针MQueue;482 基本操作int fStaySize()/获得驻留集当前长度返回 尾指针-头指针;int enCycleQueue(int pageno)/进驻留集if(驻留集已经满)返回-1;else新页号进驻留集;尾指针+1;int deCycleQueue()/出驻留集if(驻留集已经空)返回-1;else出驻留集;头指针+1;49 内存抽象设计491 数据结构设计typedef struct Memory/内存空间抽象 Page page256;/8页大小的页表区,一页32B,共256B Mpage mpage768;/24页大小的空闲区,共768BMemory;/共32页,1024B492 基本操作void setPCBSpace(int addr, int pid) /为进程分配内存空间if(内存空间未占用)进程占用内存空间;位示图置1; void freePCBSpace(int addr,int pid)/为进程释放内存空间进程释放内存空间;位示图置0;410 外存抽象设计4101 数据结构设计typedef struct Disk/外存空间抽象 OutPage doutpage512;/16页大小的页表区,一页32B,共512B Mpage mpage1536;/48页大小的空闲区,共1536BDisk;/共64页,2048B4102 基本操作void setJOBSpace(int addr)/为作业分配外存if(外存空间未占用)作业占用外存空间;位示图法置1;void freeJOBSpace(int addr)/为作业释放外存作业释放内存空间;位示图置0;5 软件系统设计51 系统结构511底层硬件抽象抽象设计中央处理器CPU模块、存储管理部件MMU模块、内存储器与外存储器模块。512功能模拟模拟作业生成、执行与结束。在作业执行过程中由系统向PCB池申请空间,创建进程,初始化进程的指令与页表等信息,当进程获取所需资源后进入就绪队列。如果进程获得CPU资源则进入运行态,这涉及到进程上下文切换,将CPU的快表、页表基址寄存器、程序状态字等寄存器的内容都切换成当前运行进程的状态。然后模拟进程发出页面请求,CPU将页面逻辑地址传送给MMU,MMU负责将逻辑页号与偏移地址分离,并搜索快表或者慢表获得该逻辑页号与物理页号的对应关系。如果没有则发出缺页异常,进入缺页异常处理程序,如果有则给出物理页号,进行物理页号与偏移地址的拼接,返回给CPU执行指令。缺页异常处理中在从外存获取逻辑页号与物理页号的对应关系后,不仅要加入慢表,也要加入快表,还涉及到页表项的标志位的更改。如果快表已满则根据先入先出算法进行替换,如果驻留集已满则根据LRU、CLOCK、FIFO三种页面替换算法进行页面替换。513模块整合根据设计,抽象模块主要分为:CPU、PCB、MMU、PCB池、存储空间。CPU内存放当前运行的PCB的信息,以及实现对指令的操作;PCB直接代表进程,存放进程的信息;MMU进行虚存管理,包括地址转换与发出异常信息;PCB池初始化PCB分配的内存空间,以及释放PCB占用的空间。为方便整合程序,MMU模块将引用将异常处理程序,完成对页面的换入换出。作业生成模块嵌套进程创建模块,后备作业队列以及进程状态队列需要管控全局。CPU模块应获得当前执行进程的所有状态,MMU模块应获得当前CPU的状态,内存空间模块与外存空间模块应是全局变量,在作业生成时占用外存空间,在进程创建与页面调入时占用内存空间。同理,当作业执行结束或者进程执行结束时都应当释放存储空间。写入文档和图形化界面的代码应当嵌入进程调度和页面替换的代码中。在缺页异常处理过程中,相应进程应进入等待态并使就绪态的进程进入运行态,要进行进程上下文切换,保护进程信息,这也涉及到进程状态队列的进出。大多数功能需要几个模块共同完成,因此在各个模块中都有相应的函数,因此导致大量代码冗余。设计之初的思路为尽可能的将功能细化,使每个函数实现简单的功能,但实际的代码编写无法完全达到这一要求,导致在模块组合时产生混乱。因此,将相关功能整合在抽象模块中,以方便使用;对代码尽可能的实现复用,减少代码冗余的现象;划分各模块功能,并对其有清楚的认识,在整合代码时按照功能进行组合与调试。514系统结构图图5.1 系统结构图5 2系统类图与顺序图521系统类图图5.2.1 系统类图522系统顺序图图5.2.2 系统顺序图5 3功能实现流程531实现作业生成、进程创建与资源分配(1)对应类JOB、PCBPOOL、PCB、MEMORY(2)对应函数void job:InitJob()/初始化后备作业队列 /队列指针初始化 while(作业数不为0) 作业号=生成随机数;作业数=作业数-1; int pcbpool:CreatePCB()/申请一个空白PCB,分配内存并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第八节 动画基础说课稿-2025-2026学年初中信息技术河大版2016七年级下册-河大音像版2016
- 2025-2030口腔数字化诊疗设备行业技术演进与市场渗透策略研究报告
- 2025-2030即饮啤酒自动售卖终端布局策略与运营效率评估报告
- 2025-2030医药包装创新分析及安全合规要求评估报告
- 2025-2030医疗美容光电设备技术迭代路线图报告
- 2025-2030医疗影像云平台数据安全架构与区域实施差异报告
- 2025-2030医疗健康大数据应用发展趋势与商业模式创新研究报告
- 2025-2030医疗AI辅助诊断系统商业化应用伦理边界探讨报告
- 2025-2030医学影像设备市场现状分析及投资战略规划报告
- 医院感染管理控制方案制定
- 夜场员工合同协议书
- 【DAMA】2025智变-AI赋能政府与央国企智能化转型白皮书
- 新教材部编版二年级上册《4.彩虹》教学设计
- 航空宠物知识培训课件
- 护理人员在职继续教育培训与考评制度
- 综合实践活动课程设计
- 2025年法官员额考试题及答案
- 备考2025年成人高考-专升本-政治考点及必背知识点大全
- 公开课:自发性气胸病人的护理
- 教科版(2017版)科学四年上册《让小车运动起来》说课稿(附反思、板书)课件
- 经腋窝无充气腔镜甲状腺手术
评论
0/150
提交评论