- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
kkk
kkk
-k-k-k
-k-k-k
一、 试验目的
理解操作系统内存管理的原理及分页内存管理方案
二、 试验要求
1、 实现分页内存管理方案,假定页和帧的大小均为 4KB,物理内存为128MB
2、 输入为进程ID,所需内存大小等,输出为页表。
3、 请按要求撰写实验报告,并和源程序一起打包上传
4、 实验平台不限,linux和windows均可
5、 与第一次实验的程序整合成一个程序
三、 试验环境
Win dows XP Visual C++ 6.0
四、试验内容
为了与上一个实验结合,并且考虑到可能需要兼容以后的实验, 所以本次实验不但重写
了 PCB,而且按照自己对操作系统的理解构造出了一虚拟的 I/O设备和两套调度程序 (作业
调度程序和CPU调度程序)
、
首先从与内存分配相关的作业调度函数说起,程序中为 Jobs_scheduler。
Job_scheduler的作用如下图所示;
就绪队列
p6
p6
作业调度程序
(Jobsscheduler)
Job_scheduler从大容量存储设备上的缓冲池中载入新生成的进程到内存, 同时生成新的
PCB到就绪队列中。
这里涉及到了两个数据结构 class Program, class PCB。
Program :
进程编号
number
需要页的数冃 int page_numbers
貝体内容.
51理解为就码
vectorint v
PCB:
编号 number
进程状态 int ate
程序计数器 int pc[2]
记账信息 这里是运行时间run_time
PageTabie
PCB 中的 state包含五个状态 NEW、READY、RUN、WAITING、TERMINA TED,加 入到ReadyQueue中等待运行的 PCB均为READY状态的,运行中会被置为 RUN,
WAITNG状态为等待I/O设备的进程,如果进程状态为 TERMINA TED,将会被移出作
业队列。
Job_scheduler函数在将program装入内存前,会查看帧表内空闲的帧的数目是否大于等 于program所需的页数目,如果成立才装入,并且为 PCB构造页表。构造时,先按照帧表 通过顺序查找找到可用的帧,然后就将页的内容加载上去。
接下来是CPU调度程序,也成为短期调度程序。
CPU_scheduler所做的工作如下图所示,其操作的队列是就绪队列 RedayQueue
如果terminated就删除
本程序采用的调度算法为分时调度,时间片大小 TimeSlice取为1 (当然这个随时都可
用改动),
里面执行程序的函数 Run是模拟CPU功能的,它会返回一个值,Normal表示执行正常, 若是返回了 INTERRUPT中断;ERROR出错就会中断此次运行,并且将所指 PCB从
ReadyQueue 中移除。
这里的Run函数其实模拟了 CPU的取指令和翻译指令的功能,本程序只有一个有实际 作用的指令,’0,如果内存中的内容为0(十进制ASC n码值),则代表需要利用I/O设备 输出该地址内容。如上图所示, PCB会加入到 Wait in gQueue中等待I/O,并判断此时I/O设
备是否开启,如果未开启则开启设备。 Run函数也因此返回一个interrupt值。
kkk
kkk
kkk
kkk
运行结果
C 二 \ s
C 二 \ s
and Sett incsXAdMimist rat or面 *i岸 1T系统宾螫二%皿日?ADebueX-
■ BBB
Si
run
t ±nte 1
m2
run
t Ime 1
V3
run
t Ine 1
run
t Ine 1
run
£ Ine 1
而1:11
run
C Ine 1
run
t Ine 2
run
t ±nte 2
run
t Ime 2
run
t Ine 2
run
t Ine 3
run
t Ine 3
run
£ Ine 4
inni
run
t Ine 4
run
t Ine 5
run
t ±nte 5
run
t Ime 6
P丄
IZO-
-O
u丄
run
t Ine 2
p丄
run
£ Ine 3
p1
run
£ Ine 4
p丄
run
t Ine 5
p丄
run
t ±nte 6
p丄
run
t Ime 7
p丄
run
t Ime 8
p丄
run
t Ine 9
p丄
run
tIne IO
在编号为1的进程中的第一个内存单位设置了一条 I/O指令,可以看出其发生中断后等
待I/O完成才重新回到 ReadyQueue中并执行完毕。
以上结果是在内存足够大的情况,下面再看一组内存不能同时满足需求的情况
andl SgttihjE基lAdivti手七卞越;茧、桌面耳提作垂统实
您可能关注的文档
最近下载
- GBT5680-2023 奥氏体锰钢铸件.pdf VIP
- 从课堂到奥数7年级.pdf VIP
- 2025年南通市第一人民医院医护人员招聘参考题库含答案解析.docx VIP
- 2025年西湖区专职社区工作者及两新专职党务工作者招聘62人笔试备考试题及答案解析.docx VIP
- CECS69-2011 拔出法检测混凝土强度技术规程.pdf VIP
- 广东省水利水电工程设计概(估)算编制规定_广东省水利厅 发布_2017_1.pdf
- SN_T 5417-2024 进口再生铜合金原料检验规程.docx
- 一汽丰田爱车养护课堂-空调滤芯-3.14.pptx VIP
- 消防安全培训记录.doc VIP
- 高级钳工技师实操试题.docx VIP
文档评论(0)