欢迎来到天天文库
浏览记录
ID:34362050
大小:140.50 KB
页数:19页
时间:2019-03-05
《操作系统可变分区存储管理模拟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、操作系统实验(三)可变分区存储管理模拟实验作者:顾熙杰准考证号:022502100574报到号:177实验地点:浙工大计算机中心1)实验目的理解操作系统中可变分区管理的算法,掌握分配和回收算法掌握空闲分区的合并方法掌握不同的适应算法2)实验内容建立数据结构建立空闲分区队列根据不同的适应算法建立队列编写分配算法编写回收算法3)数据结构PrivateTypeMEM_tpfenqu_shouzhiAsInteger'分区首地址fenqu_changduAsInteger'分区长度fenqu_zhuangtaiAsInteger'分区状态-1表示不存在,0表示空闲分区,1表示已经分配的分区fenq
2、u_huodongjinchengAsInteger'该分区正在活动的进程代号EndType4)程序流程图面向对象程序设计由事件驱动,画流程图比较困难。(1)分配新的分区最先适应按地址找最优适应,找最小可以满足的最坏适应,找最大可以满足的(2)分区回收既无上邻又无下邻既有上邻又有下邻只有上邻只有下邻1)实验中需要改进的地方由于没有使用链表,程序结构比较混乱,需要大大改进,提高可阅读性。2)程序代码(VB)OptionExplicitPrivateDeclareFunctionShellExecuteLib"Shell32.dll"Alias"ShellExecuteA"(ByValhwnd
3、AsLong,ByVallpOperationAsString,ByVallpFileAsString,ByVallpParametersAsString,ByVallpDirectoryAsString,ByValnShowCmdAsLong)AsLong'表示内存分区的结构信息类型的变量类型PrivateTypeMEM_tpfenqu_shouzhiAsInteger'分区首地址fenqu_changduAsInteger'分区长度fenqu_zhuangtaiAsInteger'分区状态-1表示不存在,0表示空闲分区,1表示已经分配的分区fenqu_huodongjinchengAs
4、Integer'该分区正在活动的进程代号EndType'定义最多640个,总共640K内存数组DimMEM(1To640)AsMEM_tp'表示可以使用的进程代号Dimjincheng(1To640)AsInteger'0表示该进程号可以使用'.>=1表示该进程号不可以使用'表示分配方法DimfenPEI_fangfaAsInteger'0=最先分配'1=最优分配'2=最坏分配Functionget_jincheng()AsInteger'取可以使用的进程号DimiAsIntegerFori=1To640Ifjincheng(i)=0Thenjincheng(i)=1get_jinchen
5、g=iExitFunctionEndIfNextget_jincheng=0EndFunctionFunctionget_FENQU()AsInteger'取可以使用的为了表示分区的存储空间,模拟c语言的指针DimiAsIntegerFori=1To640IfMEM(i).fenqu_zhuangtai=-1Thenget_FENQU=iExitFunctionEndIfNextget_FENQU=0EndFunctionFunctionget_kong_FENQU(ByValkjAsInteger)AsIntegerDimiAsIntegerDimMIN_LAsIntegerDimMAX
6、_LAsIntegerDimMIN_P,MAX_PAsInteger'分配新的分区SelectCasefenPEI_fangfaCase0'最先适应按地址找Fori=1To640IfMEM(i).fenqu_zhuangtai=0ThenIfMEM(i).fenqu_changdu>=kjThenget_kong_FENQU=iExitFunctionEndIfEndIfNextiCase1'最优适应,找最小可以满足的MIN_L=10000Fori=1To640IfMEM(i).fenqu_zhuangtai=0ThenIfMEM(i).fenqu_changdu>=kjThenIfMEM
7、(i).fenqu_changdu
此文档下载收益归作者所有