没有合适的资源?快使用搜索试试~ 我知道了~
首页基于分页管理存储(符合老师要求,你懂得!)
1、 内存空间的初始化——可以由用户输入初始内存空间各个物理块情况。(用二维矩阵的方式按物理块号,逐行给出每个物理块的状态,1——表示已分配,0——表示未分配,并能够将行标、列标转换为对应的物理块号,以查看或修改每一个块的状态,要求:初始时部分物理块已分配) 2、 基本分页的分配过程:由用户输入作业号和作业的大小(这里的大小是逻辑页面数),实现分配过程:空间充足,分配,修改状态矩阵的相应位置的值(值由0转变为1),并用专门的数据记录下该作业占用的物理块的块号,以备删除作业时回收空间。 3、 作业空间的的回收:用户输入作业号,实现分区回收(通过相应的数据结构找到该作业占有的物理块号,将块号转变成对应的行标、列标,将对应位置的值由1转变成0就完成了回收) 4、 分区的显示:任何时刻,可以查看当前内存的情况(显示记录内存情况的矩阵的值)
资源详情
资源评论
资源推荐

#include <stdio.h>
#include <stdlib.h>
int Block[10][10];
int EachBlock[100][100];
int AvailCount=0;
typedef struct Page
{
int IDnum;
int BlockSum;
struct Page *next;
}Page;
Page *page=NULL;
//初始化二维矩阵表示的物理块号
void init()
{
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
{
Block[i][j]=(int)rand()%2;
if(Block[i][j]==0)
AvailCount++;
}
for(int m=0;m<100;m++)
for(int n=0;n<100;n++)
EachBlock[m][n]=0;
}
//为进程分配内存(当进程号重复时能提示错误信息)
void Create()
{
int num,blockcount;
Page *p,*q;
p=page;
printf("输入进程号:");
scanf("%d",&num);
while(p!=NULL)
{
if(p->IDnum!=num)
p=p->next;
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0