xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 9KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-12
  • 語(yǔ)言: C/C++
  • 標(biāo)簽:

資源簡(jiǎn)介

操作系統(tǒng)中的實(shí)驗(yàn),用C語(yǔ)言實(shí)現(xiàn)循環(huán)首次適應(yīng)算法的功能

資源截圖

代碼片段和文件信息

	#include?
#include?
#define?MAX_SIZE?128?//系統(tǒng)分配給用戶的最大內(nèi)存
typedef?struct?MCB{//內(nèi)存控制塊
int?add;???????//分區(qū)起始地址
int?sta;???????//分區(qū)狀態(tài),0為可用
int?size;??????//分區(qū)大小
int?jno;???????//分區(qū)裝入作業(yè)號(hào)作業(yè)號(hào)從1開始

struct?MCB*?next;?//鏈連指針8

}MCB;

MCB?*free_table*ft;??//可用分區(qū)的頭指針,尾指針
MCB?*used_table*ut;??//已分配分區(qū)的頭指針,尾指針
MCB?*next_ft=NULL;????//??********************?added?下一個(gè)可用分區(qū)的頭指針



/*?函數(shù)聲明?*/
void?initFree_table();
void?initUsed_table();
void?add_ut(MCB?*pfint?sizeint?jno);
int?Is_Jno_Exists(int?jno);?//??********************??added???判斷改作業(yè)是否存在
void?allot(int?jnoint?size);
void?reclaim(int?jno);
void?displayUt(MCB?*pMCB);
void?displayFt(MCB?*pMCB);

/*?函數(shù)定義?*/
void?initFree_table()//初始化可用區(qū)鏈表初始大小為整個(gè)用戶分區(qū)
{
if(!(free_table=(MCB*)malloc(sizeof(struct?MCB))))
exit(1);
free_table->add?=?0;
free_table->size?=?MAX_SIZE;
free_table->sta?=?0;
free_table->jno?=?0;
free_table->next?=?NULL;
ft=free_table;
}

void?initUsed_table()//初始化已分配分區(qū)鏈表
{
if(!(used_table=(MCB*)malloc(sizeof(struct?MCB))))
exit(1);
used_table->add?=?0;
used_table->size?=?0;
used_table->sta?=?1;
used_table->jno?=?0;
used_table->next?=?NULL;

ut=used_table;
}

void?add_ut(MCB?*pfint?sizeint?jno)
{
//修改已分配鏈表
if(used_table->next?==?NULL?&&?used_table->size?==?0)
{//已用分區(qū)表的第一塊
used_table->add?=?pf->add;
used_table->size?=?size;
used_table->jno?=?jno;
}else{//將新增分區(qū)加到已分配鏈表末尾
//pt為臨時(shí)MCB
MCB?*pt;
if(!(pt=(MCB*)malloc(sizeof(struct?MCB))))
exit(1);
pt->size?=?size;
pt->add?=?pf->add;
pt->jno?=?jno;
pt->sta?=?1;
pt->next?=?NULL;

ut->next?=?pt;
ut?=?ut->next;
}
}

int?Is_Jno_Exists(int?jno)//??********************??added?
{
int?Is_Exists?=?0;
MCB?*tmp_usedtable=used_table;
while(NULL?!=?tmp_usedtable)
{
if?(jno?==?tmp_usedtable->jno)
{
Is_Exists?=1;
break;
}
tmp_usedtable?=?tmp_usedtable->next;
}

return?Is_Exists;
}

void?allot(int?jnoint?size)//首次適應(yīng)法為作業(yè)分配存儲(chǔ)空間
{

????????MCB?*pf?=?NULL;
???? MCB?*p?=?NULL;?

MCB?*q?=?free_table;///

if((jno?<=?0?)||(1?==?Is_Jno_Exists(jno)))??/*?jno小于0或jno有重復(fù)?*/
{
printf(“輸入作業(yè)號(hào)有誤請(qǐng)重新輸入!\n“);
return;
}

if(size?>?MAX_SIZE)
{
printf(“作業(yè)太大,無(wú)法分配!\n“);
return;
}
if(size?<=?0)
{
printf(“作業(yè)大小不合法!\n“);
}
/*********************??startadded??*/
if?(NULL?==?next_ft)??//?下一個(gè)空閑列表節(jié)點(diǎn)為空,表明已到末尾,則回到空閑列表開頭開始掃描?
{
????pf?=?free_table;
????p?=?pf;
}
else
{
????pf?=?next_ft;
????p?=?pf;?
}

while?(q->next?!=next_ft)?//new
????????????????????{
??????????????????????next_ft?=?q->next?;
????????????????????}


????????????
//查空白分區(qū)鏈表
while(pf?!=?NULL?&&?pf->size? {
p?=?pf;
pf?=?pf->next;
}

????????????????/*********************??endadded??*/???
if(?(pf?==?NULL)?&&?(?NULL?!=?ne

評(píng)論

共有 條評(píng)論