没有合适的资源?快使用搜索试试~ 我知道了~
操作系统课程设计动态分区分配存储管理.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 17 下载量 47 浏览量
2021-12-29
13:18:31
上传
评论 4
收藏 155KB DOC 举报
温馨提示
试读
26页
操作系统课程设计动态分区分配存储管理
资源推荐
资源详情
资源评论
操作系统课程设计
动态分区分配存储管理
计 算 机 班
1
设计题目
学 号
专业班级
学生姓名
号
指导教师
第一章 课程设计概述
1.1 设计任务:
动态分区分配存储管理
1.2 设计要求
建立描述内存分配状况的数据结构;
建立描述进程的数据结构;
使用两种方式产生进程:()自动产生, ()手工输入;
在屏幕上显示内存的分配状况、每个进程的执行情况;
建立分区的分配与回收算法,支持紧凑算法;
时间的流逝可用下面几种方法模拟:()按键盘,每按一次可认为过一个时间单
位; 响应 ;
将一批进程的执行情况存入磁盘文件,以后可以读出并重放;
支持算法:首次适应算法、循环首次适应算法、最佳适应算法:最坏适应算法。
1.3 设计目的
旨在让我们更好的了解动态分区管理方面的知识
第二章 原理及算法描述
2.1 动态分区分配算法原理
首次适应算法
算法概述:分配内存时,从链首开始顺序查找,找到满足的空闲分区则划出空间
分配,余下的空闲空间仍保留在空闲链表中
实现方法:分配时从数组第一个元素开始比较,若符合条件则将该元素减去对应
作业的值
循环首次适应算法
算法概述:由首次适应算法演变,只是每次分配改为由上一次找到的空闲分区开
始查找
实现方法:在首次适应算法的基础上增加一个值用于记录找到的空闲分区的位置
最佳适应算法
算法概述:每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区分
配给作业
实现方法:我们决定每次分配先把空闲分区按从小到大的顺序排列,然后将第一
个匹配分区分配给作业
最坏适应算法
算法概述:每次为作业分配内存时,总是挑选一个最大的空闲分区分割给作业使
用
实现方法:算法与最佳适应算法几乎相同,仅在排序时把空闲分区表按从大到小
的顺序排列,所以未作详细注释
回收分区
当进程运行完毕释放内存时系统根据回收区的首址从空闲区链表中找到相应的
插入点此时可能出现以下四种情况之一
回收区与插入点的前一个空闲分区 相邻接此时应将回收区与插入点的前一分
区合并不必为回收区分配新表项而只需修改其前一分区 的大小
回收分区与插入点的后一空闲分区 相邻接此时也可将两分区合并形成新的空
闲分区但用回收区的首址作为新空闲区的首址大小为两者之和
回收区同时与插入点的前后两个分区邻接此时将三个分区合并使用 的表项和
的首址取消 的表项大小为三者之和
回收区既不与 相邻接又不与 邻接这时应为回收区单独建立一新表项填写
回收区的首址和大小并根据其首址插入到空闲链中的适当位置
紧凑算法
通过移动内存中的作业的位置以把原来多个分散的小分区拼接成一个大分区的方法
第三章 开发环境
此程序是本人利用 语言在 的开发环境中实现的
第四章 程序实现--数据结构
!"#$%&"'(
!"#%&)(
!"#*%&"'(
)'"+"%!
$*%&"'%&"',,输出流对象
%&-././,,内存分配状态
%&-././,,空闲分区状态
%&-./,,进程分配状态
%&"-",,需要回收的盘块序号
%!,,算法选择号
%',,内存区数
3
%,,空闲区数
%0,,进程数
%&1,,循环首次适应算法:对应的这次查找到的空闲分区序号
,,打印输出函数
$!$
2
%
%3
*!11%&"'$+"45&%5%%6%4$77++
*!11%&"'$+"4"6%5&%5%%6%4$77++
*!11%&"'$+"4"%5%%6%4$77++
*!11%&"'$+"48$&%5%%6%4$77++
*!119%&"'$+"4$'+%%6%4$77++
*!11:%&"'$+"4; ;$ %6%4$77++
$ %##4<<<<<<<<<<<<<内存分配状态<<<<<<<<<<<<<4##"!
$ %##4分区号 大小,=>始址,=>状态4##"!
%&"'##4<<<<<<<<<<<<<内存分配状态<<<<<<<<<<<<<4##"!
%&"'##4分区号 大小,=>始址,=>状态4##"!
*$&313#'3
2
$ %##&-.3/./##44
%&"'##&-.3/./##44
$ %##&-.3/./##44
%&"'##&-.3/./##44
$ %##&-.3/./##44
%&"'##&-.3/./##44
*&-.3/./112
$ %##4已分配4
%&"'##4已分配4?
""2
$ %##4未分配4
%&"'##4未分配4
?
$ %##"!
%&"'##"!
?
$ %##"!
$ %##4<<<<<<<<空闲分区链<<<<<<<<4##"!
$ %##4分区号 大小,=>起址,=>4##"!
%&"'##4<<<<<<<<空闲分区链<<<<<<<<4##"!
%&"'##4分区号 大小,=>起址,=>4##"!
*$&1#
2
$ %##&-././##44
4
%&"'##&-././##44
$ %##&-././##44
%&"'##&-././##44
$ %##&-././
%&"'##&-././
$ %##"!
%&"'##"!
?
$ %##4<<<<<<<<<<<<<<<<<<<<<<<<<<4##"!
%&"'##4<<<<<<<<<<<<<<<<<<<<<<<<<<4##"!
$ %##"!
%&"'$"
?
,,作业信息的自动产生
$!&"%"+&$
2
%
*$&1#0
2
&-./1&!@
*&-./11
2<<?
?
&-./1
&-./1A:
$ %##4产生4##0##4个随机进程4##"!
$ %##4大小分别是74
*$&1#02
$ %##4.4##&-./##4/4##44
?
$ %##"!
?
,,作业的手动生成
$!&"%"B $-"2
%3
%;$"
%!1&!@
'1!,,内存区数量
$ %##4<<<您将创建几个进程<<<:4
5
剩余25页未读,继续阅读
文档优选
- 粉丝: 88
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页