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

实验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) 实验体会(总结)


相关文章:
201304220213+宋巧玲+操作系统实验四
201304220213+宋巧玲+操作系统实验四_天文/地理_自然科学_专业资料。宁夏师范学院数学与计算机科学学院 《操作系统实验报告实验序号:四学号 201304220213 姓 文科楼 ...
山东大学操作系统实验报告4进程同步实验
计算机科学与技术学院实验报告实验题目:实验四、进程同步实验 日期:20120409 班级:计基地 12 学号: 姓名: 实验目的: 加深对并发协作进程同步与互斥概念的理解,观察...
苏州大学操作系统实验4
苏州大学操作系统实验4_工学_高等教育_教育专区。实验四进程的内存使用情况 实验目的:初步了解 windows 环境下内存的使用情况,通过使用 win32 下的 API 函数编写 ...
东北大学 操作系统实验四报告
东北大学 操作系统实验四报告_计算机软件及应用_IT/计算机_专业资料。操作系统实验报告 班学姓 级号名 物联网 1302 班 实验 4 1. 1) 2) 3) 4) 5) 进程...
福建农林大学操作系统实验报告四
福建农林大学操作系统实验报告四_工学_高等教育_教育专区。《操作系统实验报告(四)内存管理算法模拟 (验证性 2 学时) 一、实验目的: 1) 掌握内存管理的主要...
操作系统实验四
操作系统实验四_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 操作系统实验四_计算机软件及应用_IT/计算机_专业资料。贵州大学实验报告...
操作系统实验四
青岛理工大学 课程实验报告课程名称 姓名 实验名称 实验 目的 及 要求 实验环境操作系统 班级 学号 软件 114 201107286 实验日期 实验成绩 2013/10/28 李晓菲 实验...
操作系统实验4文件系统
操作系统实验4文件系统_计算机软件及应用_IT/计算机_专业资料。一、目的要求 1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对 各种文件...
操作系统实验四 进程的同步
操作系统实验四 进程的同步_计算机软件及应用_IT/计算机_专业资料。操作系统 实课程名称 实验项目名称 学号 姓名 学生所在学院 软件学院 验操作系统实验 操作系统的...
操作系统上实验报告4
实验四 LINUX 进程调度与系统监视姓名:** 学号:** 实验环境:Linux 操作系统 ...在 5 分钟后向所有用户发送系统即将重启的消息,并在 2 分钟后 重新启动计算机...
更多相关标签: