1 / 15
文档名称:

空闲磁盘存储空间的管理-OS课程设计(共15页).docx

格式:docx   大小:56KB   页数:15页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

空闲磁盘存储空间的管理-OS课程设计(共15页).docx

上传人:wwlgqnh 2022/4/17 文件大小:56 KB

下载得到文件列表

空闲磁盘存储空间的管理-OS课程设计(共15页).docx

文档介绍

文档介绍:精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
OS课程设计
空闲磁盘存储空间的管理
cstring>
#include <>
using namespace std;
const int cylinder=3,track=2,sector=4;//柱面、磁道、物理块 号
#define SIZE 100//最大块数
const int M=cylinder,N=track*sector;
struct process//process顺序表数据结构,存储申请的物理块信息
{
char name[20];
int c[SIZE],t[SIZE],s[SIZE];
int n;
};
process processtable[SIZE];//process格式表
int ppointer=-1;//process指针
class bitmap//位示图 结构体
{
public:
int bitmap[M][N];
void Initbitmap();//初始化位示图
bool spaceisok(int n);//位示图符合判断
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
void displaybitmap();//打印
};
bitmap bm;//全局位示图,为所有进程共享
void bitmap::Initbitmap()
{
int i,j;
cout<<"**********************************************\n";
cout<<" 位示图初始化\n";
cout<<"**********************************************\n";
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
bitmap[i][j]=0;
}
}
// getchar();
displaybitmap();//初始化后位示图
getchar();
//system("cls");
}
bool bitmap::spaceisok(int n)//判断位示图空闲物理块是否足够
{
int count=0;
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{
if(bitmap[i][j]==0)
{
count++;
}
}
}
if(count<n)
return false;
else
return true;
}
void bitmap::displaybitmap()//打印位示图
{
int i,j;
cout<<"\n当前位示图信息如下:\n";
cout<<"\n***********************************************************************\n";
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
cout<<"\t"<<bitmap[i][j];
}
cout<<endl;
}
cout<<"\n***********************************************************************\n";
if(ppointer<0)
{
cout<<"\n尚未分配磁盘空间\n";
return;
}

else
{
cout<<"\n当前分配信息如下:\n";
cout<<"\n#######################################################";
cout<<"\n进程名\t\t分配的物理块数\