-
大小: 194KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-27
- 語言: C/C++
- 標(biāo)簽: 操作系統(tǒng)??
資源簡(jiǎn)介
操作系統(tǒng)試驗(yàn)中 用C語言編寫的模擬基本分頁存儲(chǔ)系統(tǒng)

代碼片段和文件信息
#include
#include
#include
#define?SIZE?100
#define?ROW?10
#define?COLUMN?10
#define?PROGRESS?10
#define?NUMBER?10
int?available;
int?init(int?memery[ROW][COLUMN])
{
int?number=0;
srand(time(0));
int?ij;
for(i=0;i
{
for(j=0;j {
memery[i][j]=rand()%2;
if(memery[i][j]==0)
{
number++;
}
}
}
return?number;
}
void?allocation(int?memery[ROW][COLUMN]int?sive[PROGRESS][NUMBER]int?sizeint?number)
{
int?ij;
????int?blockflag=0;
available=available-size;
????for(i=0;i
{
for(j=0;j {
if(memery[i][j]==0)
{
if(flag {
memery[i][j]=1;
block=i*COLUMN+j;
sive[number][flag]=block;
flag++;
}
else
{
return;
}
}
}
}
}
void?recover(int?memery[ROW][COLUMN]int?sive[PROGRESS][NUMBER]int?number)
{
int?iflag=0;
int?blockrowcolumn;
for(i=0;i {
if(sive[number][i]!=-1)
{
block=sive[number][i];
row=block/ROW;
column=block%COLUMN;
memery[row][column]=0;
sive[number][i]=-1;
flag++;
}
}
if(flag==0)
{
printf(“作業(yè)號(hào)不存在!“);
}
else
{
available+=flag;
}
}
void?main()
{
int?ij;
int?numbersize;
int?memery[ROW][COLUMN]={0};
int?sive[PROGRESS][NUMBER];
for(i=0;i {
for(j=0;j {
sive[i][j]=-1;
}
}
available=init(memery);
printf(“顯示初始化后的內(nèi)存塊(0:可分配??1:不可分配):\n“);
for(i=0;i
{
for(j=0;j {
printf(“%d??“memery[i][j]);
}
printf(“\n“);
}
while(1)
{
printf(“請(qǐng)輸入分配的作業(yè)號(hào)(0~9):“);
scanf(“%d“&number);
if(number>=10)
{
break;
}
printf(“請(qǐng)輸入作業(yè)的頁面數(shù)(1~10):“);
scanf(“%d“&size);
if(available>=size&&size>0)
{
allocation(memerysivesizenumber);
printf(“作業(yè)分配表:\n“);
printf(“\n“);
for(i=0;i {
for(j=0;j {
printf(“%d??“sive[i][j]);
}
printf(“\n“);
}
printf(“\n“);
printf(“作業(yè)分配后的內(nèi)存:\n“);
for(i=0;i
{
for(j=0;j {
printf(“%d??“memery[i][j]);
}
printf(“\n“);
}
}
else
{
printf(“所分配的作業(yè)頁面數(shù)太大,內(nèi)存不足\n“);
}
}
while(1)
{
printf(“請(qǐng)輸入回收作業(yè)號(hào):“);
scanf(“%d“&number);
if(number>=10)
{
break;
}
recover(memerysivenumber);
printf(“作業(yè)分配表:\n“);
for(i=0;i {
for(j=0;j {
printf(“%d??“sive[i][j]);
}
printf(“\n“);
}
printf(“作業(yè)回收后的內(nèi)存:\n“);
for(i=0;i
{
for(j=0;j {
printf(“%d??“memery[i][j]);
}
printf(“\n“);
}
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????2819??2011-05-24?15:33??基本分頁存儲(chǔ)系統(tǒng)\001.cpp
?????文件???????4391??2011-05-20?11:35??基本分頁存儲(chǔ)系統(tǒng)\基本分頁存儲(chǔ)系統(tǒng).dsp
?????文件????????557??2011-05-20?10:55??基本分頁存儲(chǔ)系統(tǒng)\基本分頁存儲(chǔ)系統(tǒng).dsw
?????文件??????50176??2011-05-24?15:37??基本分頁存儲(chǔ)系統(tǒng)\基本分頁存儲(chǔ)系統(tǒng).ncb
?????文件????????995??2011-05-24?15:36??基本分頁存儲(chǔ)系統(tǒng)\基本分頁存儲(chǔ)系統(tǒng).plg
?????文件???????9302??2011-05-24?15:36??基本分頁存儲(chǔ)系統(tǒng)\Debug\001.obj
?????文件??????41984??2011-05-24?15:36??基本分頁存儲(chǔ)系統(tǒng)\Debug\vc60.idb
?????文件??????45056??2011-05-24?15:33??基本分頁存儲(chǔ)系統(tǒng)\Debug\vc60.pdb
?????文件?????196704??2011-05-24?15:33??基本分頁存儲(chǔ)系統(tǒng)\Debug\基本分頁存儲(chǔ)系統(tǒng).exe
?????文件?????206972??2011-05-24?15:36??基本分頁存儲(chǔ)系統(tǒng)\Debug\基本分頁存儲(chǔ)系統(tǒng).ilk
?????文件?????226636??2011-05-24?14:29??基本分頁存儲(chǔ)系統(tǒng)\Debug\基本分頁存儲(chǔ)系統(tǒng).pch
?????文件?????500736??2011-05-24?15:33??基本分頁存儲(chǔ)系統(tǒng)\Debug\基本分頁存儲(chǔ)系統(tǒng).pdb
?????文件??????53760??2011-05-24?15:37??基本分頁存儲(chǔ)系統(tǒng)\基本分頁存儲(chǔ)系統(tǒng).opt
?????目錄??????????0??2011-05-24?13:08??基本分頁存儲(chǔ)系統(tǒng)\Debug
?????目錄??????????0??2011-05-24?13:08??基本分頁存儲(chǔ)系統(tǒng)
-----------?---------??----------?-----??----
??????????????1340088????????????????????15
評(píng)論
共有 條評(píng)論