程序首先申请一整块空闲区,其首址为0,大小为;然后,提示用户使用哪种分配算法,再提示是分配还是回收;分配时要求输入申请区的大小,回收时要求输入释放区的首址,并进行合理合并。程序需要保证以每次都能以最快的速度找到分配空间,即保证空闲空间链表始终按对应的分配算法进行合理排序存储。待释放区保存所有的被占用node节点,排序方法根据待释放结点的查找策略进行合理排序。
(四)输出
要求每执行一次,输出一次空闲区队列情况和待释放区队列,内容包括:
空闲区: 编号 首址 终址 大小
待释放区: 编号 首址
注:输出空闲区队列的排序,应符合所用分配算法的要求。待释放区也应该按释放输入要求项进行排序,偏于快速定位。
B. 综合实验
(一)实验目的
合并实验一和实验二基础实验,形成一个相对完成的进程执行过程,以理解进程执行过程中为什么会发生死锁现象。
(二)实验过程提示
1.输入:(1)进行全局设置:内存的最大容量、处理机分配算法、内存分配算法(2)修改进程控制块内存运行需求相关参数,在出现新进程创建进程控制块时一次性输入一个进程的处理机和内存需求。
2.执行:首次从就绪态进入执行态时分配内存空间,若满足则该进程进入执行态并始终占有此空间,即在PCB中记录该空间首地址,同时修改存储器空闲队列,若不满足则回到就绪态的末尾,等待下次进入执行态。当进程从执行态转为就绪态时,保持已分配空间记录,不做存储器相关参数修改。当进程进入完成状态时才释放存储器空间,修改空闲队列,其他处理器相关参数的设定不变。