操作系统C语言模拟内存分配算法的模拟实现

本文通过C语言实现了一个模拟操作系统内存分配的程序,利用一维数组模拟内存,使用链表记录内存分配情况。实验目的是理解动态异长存储分区管理,涉及内存分配和回收算法,适用于操作系统课程的学习。
摘要由CSDN通过智能技术生成

使用一个一维数组来模拟内存储空间,建立内存块来记录内存分配使用情况,通过随机产生进程及其所需要的内存来模拟真实的进程。通过给进程分配内存及回收来实现对动态不等长存储管理方法。
代码

#include "math.h"
#include "stdio.h"
#include "stdlib.h"
typedef struct MEMORY_BLOCK
{
   
	 int name;//进程名称 
	 int address;//地址空间 
     int length;
	 int flag;//判断是否被占用 1为被占用   ,0为空闲 
	 MEMORY_BLOCK *next;
}MEMORY_BLOCK;
int allocation(MEMORY_BLOCK *Header,int name,int time);//使用 
int reclaim(int processname, MEMORY_BLOCK *Header);//回收 
int selectRecycle(int processname, MEMORY_BLOCK *Header);//选择 
int main()
{
   	
	#define NUM 10    //定义了10个进程 
	 int time,i;
	 MEMORY_BLOCK *Header,*t;
	 Header=new MEMORY_BLOCK;  //初始化存储空间
	 Header->name=-1;
	 Header->address=0;
	 Header->length=100;
	 Header->flag=0;
	 Header->next=NULL;
	 srand(100);
	 for(i=0;i<NUM;i++)
		 {
   
		  time=rand()%20;   // 随机产生0~19的整数 
		  allocation(Header,i,time);
		 }
	 t=Header;
 	while(t!=NULL)
		 {
   
		  printf("process name %d, address=%d, length=%d,flag=%d\n",t->name,t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值