操作系统分区内存管理参照.pdfVIP

  • 12
  • 0
  • 约1.01万字
  • 约 11页
  • 2021-10-24 发布于福建
  • 举报
洛阳理工学院实验报告 系别 计算机系 班级 学号 姓名 课程名称 计算机操作系统 实验日期 2015/10/26 实验名称 分区内存管理 成绩 实验目的: 过本次实验,加深对进程概念的理解,进一步掌握进程状态的转变及进程调 度策略。 实验条件: 计算机一台,软件 vc++6.0 一、实验目的 通过这次实验,加深对内存管理的认识,进一步掌握内存的分配、回收算法 的思想。 二、实验原理 设计程序模拟内存的动态分区内存管理方法。内存分区使用分区(说明)表 进行管理,采用最先适应算法从分区表中寻找空闲区进行分配,内存回收时不考 虑与相邻空闲区的合并。 假定系统的内存共 640K,初始状态为操作系统本身占用 40K 。t1 时刻,为作 业 A、 B、C 分配 80K、60K、 100K、的内存空间; t2 时刻作业 B 完成; t3 时刻为 作业 D分配 50K 的内存空间; t4 时刻作业 C、A 完成; t5 时刻作业 D完成。要求 编程序分别输出 t1 、t2 、t3 、t4 、t5 时刻内存的空闲分区。 三、实验内容 #includestdio.h #includemalloc.h #includestdlib.h #includeconio.h #define maxPCB 10 #define maxPart 10 #define TRUE 1 #define FALSE 0 typedef struct PCB_type 1 / 11 { char name; // 进程名 int address, len, valid; // 进程所占分区起止、长度、该 PCB有效标 识( 1 有效, 0 无效) }PCB; typedef struct seqlist { PCB PCBelem[maxPCB]; // maxPCB 为系统中允许的最多进程数 int total; // 系统中实际的进程数 } PCBseql; typedef struct Partition { int address, len, valid; // 分区起址、长度、有效标识( 1 空 闲, 0 已分配) }Part; typedef struct Partlist { Part Partelem[maxPart]; // maxPart 为系统中可能的最多分区数 int sum; // 系统中实际的分区数 }Partseql; int length = 640 ;// 系统有 640 的空闲 PCBseql *pcbl; Partseql *partl; void initpcb(PCBseql *vpcbl,int adr); // 初始化进程表 vpcbl void getprint(); void initpart(); // 初始化分区表 vpartl void request (char name, int len); // 进程 name 请求 l

文档评论(0)

1亿VIP精品文档

相关文档