全球旧事资料 分类
西北工业大学操作系统实验报告西北工业大学操作系统实验报告操作系统
班号:姓名:学号:
实验日期:201010实验日期:2010111一、实验目的
实验名称:实验名称:近似LRU算法的修改与验证
通过修改源代码,使脏页不老化,观察系统效率的变化情况,进一步掌握Wi
dows中的工作集管理算法。
二、实验要求
对近似LRU算法进行修改,并编写应用程序,对修改后的算法与原算法的性能进行对比,并对实验结果给出解释。
三、实验过程及结果
具体步骤见截图
1禁止脏页老化修改前:
修改后
延缓脏页老化2延缓脏页老化
staticBOOLEANIfDoModifiedAge0ifCurre
tE
tryLastE
tryCurre
tE
tryFirstDy
amicCurre
tE
tryFirstDy
amicIfDoModifiedAgeIfDoModifiedAge
-1-
fifMI_GET_ACCESSED_IN_PTEPoi
terPte1MI_PTE_LOG_ACCESSPoi
terPteMI_SET_ACCESSED_IN_PTEPoi
terPte0MI_RESET_WSLE_AGEPoi
terPteWsleCurre
tE
tryelseifPoi
terPteuHardDirtyIfDoModifiedAgeMI_INC_WSLE_AGEPoi
terPteWsleCurre
tE
try
源码修改步骤:3WRK源码修改步骤:
1)MihmmLi
e9291
2)MiglobalcmmLi
e845
3)Pf
listcmmLi
e393
4)ModwritecmmLi
e4293
3下面是添加系统调用的基本过程,添加的系统调用名为GetI
formatio
_sysall:_syscGetI
formatio
_syscall:1)修改文件
toskei386systableasm:①在第392行插入语句:TABLE_ENTRYGetI
formatio
_syscall12②将下面紧挨着的一条语句改为:TABLE_END296
这里296说明当前系统共实现296个系统调用,而新添加的系统调用号就是296(128H),用户态可以通过往EAX寄存器存放128E,然后执行i
t2EH即可执行新添加的系统调用。2)修改文件publicsdki
cNtexapih:从第2766行开始插入语句(其实只是一个函数声明):NTSYSCALLAPILONGNTAPINtGetI
formatio
_syscall__outPULONGoutput1__outPULONGoutput2
-2-
f3)修改文件
tosmmCreasectc,主要对进程相关结构操作,所以考虑在这里添加系统调用。文件的最后插入该函数的实现:LONGNtGetI
formatio
_syscall__outPULONGoutput1__outPULONGoutput2output1I
sertModifiedListCou
toutput2IoPageFileWriteCou
tretur
0
4)修改文件
tosi
it
toskr
lsrc:在第872行插入字符串:NtGetI
formatio
_syscall5)使用
makex86编译内核,将新生成的内核映像文件wrkx86exe替换原内核映像,并用新内核启动系统。实验验证时用老师给的memory_test的程序体现核心思想的函数是voidActPVOIDblock函数,模拟了程序的随机执行和局部访问
性的原理
voidActPVOIDblocku
sig
edlo
gfro
tbackpagerdu
sig
edlo
gcur_addressu
sig
edlo
gu
sig
edcharblocku
sig
edlo
gme
r
好听全球资料 返回顶部