SHAOXIAOJ正在加载中...

2700: 【操作系统】实验四 - 存储器管理模拟程序(Easy)

金币值:10 定数:8 时间限制:1.000 s 内存限制:128 M
正确:1 提交:2 正确率:50.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 结构体 操作系统

题目描述

此题与 $Hard$ 的区别是不采用最优存储策略,按分区编号逐个分配。

实验目标

设计一个程序,模拟存储器的存储过程。


一、程序思想

现规定总共有 $1024MB$ 的空间大小,有 $10$ 个分区共同占有这些空间。我想通过为某一进程申请空间,使得该进程被分往哪个分区。或者释放分区从而重新获得所有空间。

二、实验过程

首先,输入每个分区的大小。(分区号从 $0$ 开始)
当每个分区都获得空间后,给出 $4$ 个操作选项:
$1$.为某个进程申请内存空间;
$2$.释放某个分区的空间;
$3$.显示当前的分区表;
$4$.退出程序。

结构体示例:
typedef struct sp{
	int id;
	int address;
	int size;
	int status;
} ZHT;

输入样例    复制

200
10
150
50
20
30
100
200
10
254
1
10
3
2
0
3
0

输出样例    复制

剩余分区为:1024
请输入第0个分区的大小:剩余分区为:824
请输入第1个分区的大小:剩余分区为:814
请输入第2个分区的大小:剩余分区为:664
请输入第3个分区的大小:剩余分区为:614
请输入第4个分区的大小:剩余分区为:594
请输入第5个分区的大小:剩余分区为:564
请输入第6个分区的大小:剩余分区为:464
请输入第7个分区的大小:剩余分区为:264
请输入第8个分区的大小:剩余分区为:254
请输入第9个分区的大小:请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序
输入选择:请输入所需的内存大小:内存分配成功!

请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序
输入选择:分区号 地址 大小 状态
0 0 190 已分配
1 200 10 未分配
2 210 150 未分配
3 360 50 未分配
4 410 20 未分配
5 430 30 未分配
6 460 100 未分配
7 560 200 未分配
8 760 10 未分配
9 770 254 未分配

请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序
输入选择:请输入释放的分区号:第0个分区释放成功!

请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序
输入选择:分区号 地址 大小 状态
0 0 200 未分配
1 200 10 未分配
2 210 150 未分配
3 360 50 未分配
4 410 20 未分配
5 430 30 未分配
6 460 100 未分配
7 560 200 未分配
8 760 10 未分配
9 770 254 未分配

请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序
输入选择:

提示

温馨提示

你的运行窗口的运行信息依照样例数据应该是这样的,不必查看样例输入输出的内容:
剩余分区为:1024
请输入第0个分区的大小:200
剩余分区为:824
请输入第1个分区的大小:10
剩余分区为:814
请输入第2个分区的大小:150
剩余分区为:664
请输入第3个分区的大小:50
剩余分区为:614
请输入第4个分区的大小:20
剩余分区为:594
请输入第5个分区的大小:30
剩余分区为:564
请输入第6个分区的大小:100
剩余分区为:464
请输入第7个分区的大小:200
剩余分区为:264
请输入第8个分区的大小:10
剩余分区为:254
请输入第9个分区的大小:254
请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序
输入选择:1
请输入所需的内存大小:10
内存分配成功!

请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序
输入选择:3
分区号 地址 大小 状态
0 0 190 已分配
1 200 10 未分配
2 210 150 未分配
3 360 50 未分配
4 410 20 未分配
5 430 30 未分配
6 460 100 未分配
7 560 200 未分配
8 760 10 未分配
9 770 254 未分配

请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序
输入选择:2
请输入释放的分区号:1
第1个分区释放成功!

请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序
输入选择:3
分区号 地址 大小 状态
0 0 200 未分配
1 200 10 未分配
2 210 150 未分配
3 360 50 未分配
4 410 20 未分配
5 430 30 未分配
6 460 100 未分配
7 560 200 未分配
8 760 10 未分配
9 770 254 未分配

请输入操作选项:
1:申请内存空间
2:释放内存空间
3:显示当前内存空间表
0:退出程序