- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
页面虚拟管理系统
7
实验 设计文档
第一部分:程序实现功能简介
1、随机产生新进程及其属性
2、进程之间存在并发,进程执行时间有限,进程调度采用时间片轮
转算法
3、物理块分配策略采用固定分配局部置换
4、调页采用请求调页方式
5、置换采用LRU算法
第二部分:数据结构介绍
1、每个进程运行轨迹最大数目一样,都为20
#defineEXE_NUM 12
2、所有未完成执行轨迹的进程大小总和不能大于70
#defineMAX_SIZE70
3 30 30
、规定最大可用内存,为 ,即 个页框可用
#defineMEMORY30
4、规定时间片长度为3
#defineTIME3
5、记录系统现有的可用的用于存储进程的容量初始化为, MAX_SIZE
intnow_size=MAX_SIZE;
6、记录最近一次用到的进程标识符,初始化为0
intLast_ID=0
7、记录系统当前可用的内存数量
intMemory=MEMORY
8 Page_Frame[][], [] [][0]
、记录页框属性, 前面 代表页框号, 的值代
[][0] 0 [][0] 1
表该页框是否可用,若 为 则表示该页框可用, 为 表示
该页框已被占用;[][1]记录占用该页框的进程标识符;[][2]记录占
据该页框的某个进程的页号;[][3]记录该页号在内存中的计数值,
即存在时间的长短
intPage_Frame[MEMORY][4]={0}
9、记录最近用到的页框号的下一个页框号
intLast_Frame=0
10、记录当前系统拥有的完成进程的数目
intFinish_Num=0
11、记录当前系统拥有的就绪进程的数目
intReady_Num=0
12、记录当前系统拥有的阻塞进程的数目
intBlock_Num=0
13、记录当前进程的可用时间片的长短
intTime=3
14、进程控制块结构体
1):进程标识符
2):进程大小
3):进程内存大小
4):进程状态,”ready”,”block”,”finish”
5):保存分到的页框号的数组
6):保存页号的信息,根据数组标号代表页号,数组标号对应的数
组值代表该页号的信息,比如形成执行轨迹时代表该页号是否已被装
入过执行轨迹
7):存放执行轨迹的数组
8):记录上一次访问到的执行轨迹页号的下一个页号
9):记录当前该进程可用的空闲页框数目
10):记录缺页中断数目
11):执行下一个进程
15 intFork() 1
、 :产生新进程,返回 表示创建新进程成功
16 intEXE() 1
、 :执行函数,如果执行成功返回
17 voidClear(structPCB*over)
、 :将执行完的进程从总进程队列和
就绪进程队列中删除
18 VoidHelp():
、 输出命令用法
19 VoidPageFrame(structPCB*new_pro):
、 为指定进程分配可用
的页框
20 VoidPrint_New(structPCB*new_pro):
、 输出新创建的进程的信
息
21 VoidPrint_All():
、 输出全部进程的信息
22 VoidPrint_Finish()
、 :输出所有已完成
文档评论(0)