5 0 0 023
6 0 0 121
2.指令序列:
可假设该作业依次执行的指令序列如表 9—4 所示。
表 9—4:
操作 页号 页内地址 操作 页号 页内地址
+
0 070 移位 4 053
+
1 050
+
5 023
× 2 015
存
1 037
存
3 021
取
2 078
取
0 056
+
4 001
-
6 040
存
6 084
3.地址转换和缺页中断:
设计一个地址转换程序来模拟硬件的地址转换和缺页中断。如果访问的页在主存,
则形成绝对地址,但不去模拟指令的执行,可用输出转换后的绝对地址来表示一条指令
已完成。如果访问的饿页不在主存,则输出“*该页页号”,来表示硬件产生了一个缺页中
断。
4.模拟页面调度:
编制一个 FIFO 页面调度程序。因为 FIFO 页面调度算法总是先调出最先进入主存的
那一页,因此可以用一个数组来构成页号序列。数组的元素是在主存的页面号。根据上
例中的假定,允许使用的主存块数为 4,且开始的 4 页已装入主存,则数组可由 4 个元
素 组 成 : P[0] , P[1] , P[2] , P[3] 。 它 们 的 初 值 为 : P[0] : =0 , P[1] : =1 , P[2] :
=2,P[3]:=3 用一指针 K 指示:当要装入新页时,应调出的页在数组中的位置,K 的
初值为 0。
当产生缺页中断后,操作系统总是选择 P[K]所指的页面调出,然后执行 P[K]:=要
装入的新一页页号 K:=(K+1)mod 4。在实验中,不必实际地启动磁盘去执行调出一页
和装入一页的工作,而用输出“OUT 调出的页号”和“要装入的新页页号”来模拟一次调出
和装入的过程。
流 程 图
模拟地址转换,缺页中断及页面调度的流程如图 9—3 所示。可根据该流程图编制
源程序,然后按假设的页表和指令序列来调试你所编制的程序。
评论0
最新资源