当前位置:首页 >> 小学教育 >>

实验4操作系统上机实验


实验四、操作系统上机实验
——存储管理

操作系统上机实验
一、实验题目
动态分区存储管理

——采用首次匹配算法

二、目的与要求
通过消化理解模拟管理程序,了解存 储器的分配与回收过程,体会相关数据结 构在实现管理算法中的重要性。 输入一到两组实验数据,观察分配与 回收的处

理结果,特别是回收时邻接空闲 分区的合并处理,检测其算法的正确性。

三、数据结构
? 空闲分区链表

结点结构:

分区首地址 分区大小 链接指针 addr size next

struct linkk { int size; int addr; struct linkk * next; } struct linkk *PL;

三、数据结构(续)
? 作业表(记录作业情况)
jno 作业号 addr 内存地址 size flag 作业长度 标志

静态数组实现


struct jobtab { int jno; int size; int addr; int flag; }







struct jobtab tab[20];

例:内存分配情况 (假定总容量为640k)

空闲分区链表情况

作业表情况
0 1 2 3 4 5 6 7 8 9 80k 450k 160k 500k 350k 300k 30k 50k 140k 80k 90k 50k 0 0 0 1 1 1 0 1 1 1





四、算法思想
? 算法实现
? ? 分配:查空闲分区链表 回收:考虑邻接合并

? 实验过程:输入操作命令代码
1. 分配:输入作业号及作业长度(已建立作业不重复建 立)

2. 回收:输入作业号(不存在作业不释放空间)
3. 可查看空闲链表情况(检测分配、回收正确性) 4. 可查看作业表情况(检测分配、回收正确性)

五、算法流程
? 主程序(main()函数)
? 分配程序(allocm()函数)

? 回收程序(freem()函数)
? 显示空闲分区链表及作业表程序 (printlink()及printtab()函数)

? 主 程 序 ( ( ) 函 数 ) main

?
分 配 程 序 ( allocm ( ) 函 数



例:新建作业8,长度为90k,(输入8 => n,90 => l) 查链表,分区3够分配,一分为二。
空闲链表修改情况如下:

内存及作业表情况见前图(红线所示)

?回收程序(freem()函数)
有四种情形(假定回收区首地址 => addr,长 度 => length)

1.

空闲分区链表空,或不与任何空闲区邻接 => 分配新结点空间,写入回收作业首地 址及长度 插入空闲分区链(链首,链中,链尾)

2.

回收分区与后一空闲分区相邻接 => 进行后邻接合并 例:回收作业7空间(addr+length = 分区 4首地址) 修改分区4首地址及分区大小 (q?addr = addr; q?size = q?size+length;) 合并后空闲分区链表情况如下:

?回收程序(续)

3.

回收分区与前一空闲分区相邻接 例:作业4释放空间,与分区3合并 合并后空闲分区链情况如下:

4.

回收分区与前同时又与后空闲分区相 邻接 => 需进行三个分区合并,并删除一 个空闲分区结点 例:回收作业7后再回收作业4空间

注:除了修改空闲分区链表,还要修 改作业表(清除flag标志)

?显示空闲分区链表及作业表程序(printlink()及 printtab()函数)

=>上述三函数,同学们自己画出流程图

六、实验步骤
? 消化实验算法程序
? 组织上机实验数据
第一组:指定(见下页) 第二组:自定(要求能测试各种情形)

? 输入上机程序,编译,运行,记录各操作步骤的 运行结果(通过显示空闲分区链表及作业表)

指定操作数据
1.

(设内存总空闲容量为640K)

分配作业1(80k),作业3(30k),作业8(50k),作 业5(140k),作业9(50k),作业6(100k),作业4
(50k)

2.
3. 4.

观察(记录)空闲表及作业表情况
回收作业8,观察结果 分配作业7(80k),观察结果

5.
6. 7.

回收作业6, 回收作业1, 观察结果
分配作业10(120k),观察运行情况 回收作业7,作业3,作业5,观察各次结果

七、书写实验报告
1) 2) 3) 4) 实验题目 实验算法思想 算法流程 实验运行情况分析 (至少针对两组输入数据) 5) 实验体会(总结)


相关文章:
操作系统实验报告4
操作系统实验报告实验序号: 学号 4 1207122219 1-418 姓 实验项目名称:进程控制 名 邝沃佳 李远敏 专业、班 实验时间软金二班 2014/10/21 实验地点 一...
操作系统 实验四
实验四 银行家算法 (一)教学要求 掌握处理死锁的方法,掌握银行家算法的实现 (...操作系统 实验四 - 实验... 5页 免费 实验4操作系统上机实验 19页 1下载...
操作系统实验指导4
操作系统实验指导4_计算机软件及应用_IT/计算机_专业资料。西农操作系统实验四 带优先级的时间片轮换的进程调度算法的实现实验学时:2 实验类型:设计 实验要求:必修...
操作系统实验四
操作系统实验四_IT/计算机_专业资料。操作系统实验——虚存管理 重庆大学学生实验报告 实验课程名称操作系统原理 开课实验室 学院 DS1501 软件学院 号 2015 至 ...
操作系统实验报告4
实验四 LINUX 进程调度与系统监视一 .实验要求 (1)熟练掌握手工启动前后台作业的方法; (2)熟练掌握进程与作业管理的相关 Shell 命令; (3)掌握 at 调度和 cron...
操作系统实验4(含代码)
操作系统实验4(含代码)_计算机软件及应用_IT/计算机_专业资料。操作系统实验4(含代码) 《操作系统实验指导(四)内存管理算法模拟 (验证性 2 学时) 一、实验...
苏州大学操作系统实验4
苏州大学操作系统实验4_工学_高等教育_教育专区。实验四进程的内存使用情况 实验目的:初步了解 windows 环境下内存的使用情况,通过使用 win32 下的 API 函数编写 ...
操作系统实验四
青岛理工大学 课程实验报告课程名称 姓名 实验名称 实验 目的 及 要求 实验环境操作系统 班级 学号 软件 114 201107286 实验日期 实验成绩 2013/10/28 李晓菲 实验...
计算机操作系统实验四
计算机操作系统实验四_IT/计算机_专业资料。实验四:文件系统< 实验四:文件系统<一> [背景知识 背景知识] 背景知识 1. 选择文件系统 文件系统决定了操作系统能够对...
操作系统实验四
实验四 多线程通讯实验报告实验题目:多线程通讯 实验目的(1)加深对线程和多线程要领的理解; (2)掌握多线程程序设计的基本方法; (3)学习同一进程内线程间交换...
更多相关标签:
操作系统上机实验报告 | 操作系统上机实验 | 操作系统上机实验代码 | 操作系统上机实验总结 | 哈工大操作系统实验4 | 信号与系统上机实验 | 管理信息系统上机实验 | 操作系统上机 |