- 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
您可能关注的文档
最近下载
- 学生退学家长知情同意书.docx VIP
- 计算机应用基础教程(Windows10+Office2016)PPT全套完整教学课件.pptx VIP
- 2024年江苏农牧科技职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析.docx
- Unit 2 课时2 Section A (2a-2e) 教学设计-八年级英语上册.docx VIP
- 慢阻肺病标准化筛查问卷、Borg CR10 评分表.docx VIP
- 招标代理服务方案.docx VIP
- AD832I机台操作指引.pdf VIP
- 2019版《普速铁路线路修理规则》(可编辑修改word版).pdf VIP
- KK_Mixly_V3四轴飞行器教程——算法篇.docx VIP
- 河南大学研究生学位论文基本要求与书写格式的.docx VIP
原创力文档

文档评论(0)