操作系统实验三:主存空间的分配与回收

实验三:主存空间的分配与回收

一、实验目的

通过本次实验,帮助学生理解在可变式分区管理方式下,如何实现主存空间的分配与回收。

二、实验内容

主存是中央处理机能直接存取指令和数据的存储器。能否合理而有效地使用主存,在很大程度上将影响到整个计算机系统的性能。本实验采用可变式分区管理,使用首次或最佳适应算法实现主存空间的分配与回收。要求采用分区说明表进行。
请按首次(或最佳)适应算法设计主存分配和回收程序。以图1作为主存当前使用的基础,初始化空闲区和已分配区说明表的值。学生自己设计一个作业申请队列以及作业完成后的释放顺序,实现主存的分配与回收。把空闲区说明表的变化情况以及各作业的申请、释放情况显示或打印出来。

三、代码及运行结果分析

(3)程序源代码如下所示:

#include <stdio.h>
#include <string.h>
#define MAX 600  //设置总内存大小为512k
 
struct partition {
   
   
    char    pn[10];//分区名字
    int     begin;//起始地址
    int     size;//分区大小
    int     end;//结束地址
    char    status;//分区状态
};
struct partition    part[MAX];
int    p = 0; //标记上次扫描结束处
 
void Init()//初始化分区地址、大小以及状态
{
   
   
    int i;
    for ( i = 0; i < MAX; i++ )
        part[i].status = '-';
     strcpy( part[0].pn, "SYSTEM" );
     part[0].begin    = 0;
     part[0].size    = 100;
     part[0].status    = 'u';
 
     strcpy( part[1].pn, "-----" );
     part[1].begin    = 100;
     part[1].size    = 100;
     part[1].status    = 'f';
     
     strcpy( part[2].pn, "作业1" );
     part[2].begin    = 200;
     part[2].size    = 50;
     part[2].status    = 'u';
     
     strcpy( part[3].pn, "-----" );
     part[3].begin    = 250;
     part[3].size    = 50;
     part[3].status    = 'f';
     
     strcpy( part[4].pn, "作业2" );
     part[4].begin    = 300;
     part[4].size    = 100;
     part[4].status    = 'u';
     
     strcpy( part[5].pn, "-----" );
     part[5].begin    = 400;
     part[5].size    = 200;
     part[5
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值