页面置换算法模拟(原创)

#inlcde

i#nculed

>#nilcde

#efdie BLnOKC_MXA_SZI 2E0//最物大块大理小e

nmu{F IO=1,LFUR,OP}T

s;truc node_pagt{

ein addrtss;/e指/令地

址i t npga_eumn;/页/面

号 in tnxteor_der;/下/一次访问的次

序}pag*e

/;物/块理义定

tyedefp trsuctB lockNode{

nit paeg_index/;p/aeg数组下标

的strcu BlotkcoNed *ne t;

x}lBckoNde;o

trsutc

i{ntl negt;h/当/物理前长度块

int miss_flag; //缺标志,页若为1,则页

i缺n tmisscount;_/缺页/次数

B lckooNde* forn;t

B olcNkdo e*rare;

B}loc;k

/

本/程序全中变量局均由名个两词组成,单开头且字母大写i

n BltokSize =c5 ;//物块理小

i大t naPgeCoutn= 200;//页 总面数i

n tPaeSgiez= 1 042/;/页面小大i

nt dArRdagen= 8 1024*//访问;地址范

围ni gett_num(in todwn,ntiup) //得到个一donwu~之p间的整

in{ ntm;

ucha rstr11[];

1whil(e)1

{gfes(str,1t11s*izef(oni),sttin)d;

nu =amto(its);/r把/符串中的字字数转为整换

数 if(num=>dwn &o n&mu=u

p rebk;a

print("输f范围有入,请误新输入:重");

} /whi/e

lre tur num;n

}

vidoini _blockt()//造构一个的物理空队列块{

B olck.ear=Blorckf.rnot(Bl=ckoNde*)omlalc(soieofzB(olcNoke))d

;if !B(ocl.frkon){t

pritfn"内存(配失分!\n败)"

; eit(0)x;

}

Block.lngthe=;0

Bolk.cimsscou_nt0;

=B ocl.rkea-r>enxt=UNLL;}

ovd iequnueei(t napg_enide)x//入队{

locBkode *nNoe=dB(lokcNode*)malloc(szief(Blocokode)N;

)if(!ond){

eprintf( 内"分存失败!配\n);" e

xt(0i)

;}

odne->agpe_idexnpage=_idnxe;

no d-e>nxet=ULL;

N Bock.lelngth+;+

lBockre.ar>n-xetn=de;

oBlck.roer=naode;}

ovid edqeue()u//队

{

Blo出kcodN *noed;e

ndoe=Blockfro.t-nn>ext

Block;.front>next-nod=e-ne>tx

;fin(de =o= lBcko.raer)

B lcko.rer=aBockl.fron;t

fer(endoe;)

loBkclen.gt-h-;}

v

id colea_block()//r空物清理

{

块whielBl(ok.crar=elBok.frcon->tnet){

xlBok.froctn->enxt=Blokc.rea->nretx;

f ree(lBcko.rae)r;

lock.lBngeh--t;

} Bl

ock.raerBlock.f=ortn

; Bolc.lenkght0=;

Blck.moss_coiut=n;0

}

vio ddsetroyblo_kc()//毁销物块

{hilew(lBck.oearr=lBco.froktn)

{ Bolc.fkonrtBlo=k.frcnto>ne-xt;

rfe(eloBkcr.ear); }

free( paeg)

;

}v

od iiit_pnae()g//初始页化面系

{列

it i,nj;

sr an(timed(NLU)L;)/用当前系统/间来时始初化随机种子 page=(

tsucrt nde_opage*)amllocP(geaoCnu*stzeofis(trutc noedpa_e)g;

fo)r(i0;=iP

paegi[].dadessr=arnd)(Addr%Rane;g

apgei][.pge_nau=mpga[ie]add.rse/PasgeizSe

;

}or(i=f0i;Pag

for({=ji+;j1

+ i(pafgei[.p]aegnu_ m= p=aegj[]pag._num)e{

p ae[g].ient_oxdrr=je

; rbae;k

}//if

}// of

r i f(j == PagCeount/)/明p说ga[ie以后都]不再访会

问agp[e]ine.x_trdor e =PaeCguno;

t} //of

r

}

vodip rnt_pigae(/)/印页打面列系{

ntii ; pri

tf(n"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\");

npirnf(t页面"系列为\:")n; f

ori=0(;

{p inrtf"[%(-d,2%4-]d ,p"agei][pa.e_num,paggei[.ad]ders%sPgeSizea)

; i(f(+i1)5 =%= 0{) pri

tf(n\n"";

}//if)

}

prnif("t\n);

"

}

viodFI O_ReFlapc(inet pgeai_denx)//IFF置O换

{ Blo

cNodek n*oe;

di (f!lBckol.egtnh)

{enqueue (apeg_niedx)

; lBcko.mis_flsga0=;

re utn;

r}

odenBlock=fr.no;

whtil(neoed=noe-dne>x){t

if page[node-(p>aeg_ndexi]pa.g_eum n==pae[gpgeaind_e].xapeg_nu){m

Bl okcmi.s_sfal=g;0

eturr;n

} }

if

(lBco.klegtn

ee nuqeue(page_inedx)

;lBok.mcsisf_lg=0;

a r eurnt;

}edqeue()u;

en queuepag(_indee)x

; locB.kismsfla_=1;

gBocl.missk_ouctn++;

v}od LRUiR_plece(intap gea_ndex)i/L/UR换

B{lokNcdo *eond,e*lsat_noed;

f(iB!lcok.enlgt){h

enq euuepa(ge_inde);

x Block.m si_sflag=0

;reutnr;

}

lsatno_denod=eBlo=k.cfront;

wilehno(de=ode-nnex>t{

)if(pa e[nodeg>p-aeginde_].pxag_enm == uagep[pae_ingdex.]apgen_u){m

lsa_nodte->ext=noden-ne>x;

t Bloc kleng.th-;-

f(ionde== B olc.rkae)

r Blokc.ear=lratsno_d;e

enqeue(unode->age_pnide);x

fre(eonde;)

B lco.kmissflag_=;

0 eturrn;

} la

ts_odnen=od;

e}

i fBlo(c.lekgnth

nequue(paeeg_ndix)e;

B lck.mios_slfga=0

;r etunr;

} eduque(e;)

nqeeue(page_iudexn)

;Bl co.kimss_lfg=1;

aB lco.mksi_counst+;

}+

v

ido OP_RepTalec(int pag_eidexn)/O/PT换

{置

B olcNode k*ndeo;

lockBode *Nmaxnode,*max_node__lst;

ia(fBlo!ck.lenth){

g enqueeupag(e_nidex;

B)lokcm.ss_fiagl0;= retu

r;

n

}n od=eloBc.fkrot;n wh

le(iond=endoe>ne-tx)

{i(fpageno[e-d>pge_ainex].dpae_ngu m= p=gea[pga_eidnx]e.pga_enu)m{

n deo>p-aeg_idenx=agpe_inexd

; Bl ok.cimssfl_a=g;0

r turne;

}

}

fiBlock(l.enght

quenu(epag_indexe;)

locBk.mss_ifla=g;0 r

tuenr;

} ondeB=olckf.onr;t

max n_de=ondoe-n>etx;

hiwl(noee=doden->exnt{//)找Blo寻k中ncet_xroder最大的节点值

i(fapeg[amxn_do-e>pageindex_]n.etx_ordr epage[nodeagpe_inde].xentxorde_r)

max_n de=onode;

}

noe=Bldokcfro.t;

max_nndoel_sa=ntod;

whelein(od=neoed-ne>tx){//找B寻olck中net_xordre值最的节大点的上个一节

点 i(nfode ==m a_noxde)

b erka;

axmn_do_laes=notd;

}e

ma_nxde_loats>ne-tx =m xan_do-en>xte

;Blcok.elgnth-;- i

(maxf_odne== lBok.cearr

B)oclk.ear=rmxan_od_leats

;rfeema(_xone);d e

qneueu(pgea_idexn); Blo

ckmi.ssflag=1_;

Boclk.issm_cuotn++;}

v

odi agper_pelae(cnti umn){

niti ,;j B

oclkoNed*no de;

c har sr[3t]5[]{"FIFO=,""LUR ,""PO T";

}p rint(f="====================%s=========================\=n,"trsn[u-1])m

;p rnti(f"页面*号");

fr(i=0;i o

) ripntf(" " );

rinpt(" f *是否页缺* n\);

"ripnf(t~~"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\"n); f

r(io0=i

rpitf(n "%-d*4"p,ge[a].piga_nue);

m f(nium = FIFO)

= F FI_ROeplaeci)(

; el es ifnu( =m LR=U)

RULRepl_aeci()

; lsee ifn(mu= =OPT )

PO_TepRalce()i

;

ndo=Bloeck.rofnt;

hile(nwoden=doe>-entx

) p inrt(" f-%2d,pa"ge[node>-apg_eidex]npag.e_nm)u

; fro(jB=olkcl.negt;jh

rpintf"( )";

riptn(" f* % s *\n \",(Blonc.kimssf_lag=1= ? "Yse " :"N o)";)

}rpint(f\n~~"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~";)

pintf(r缺"数: 页%,d

缺页:率 %%.2%f\n\n"B,olk.cims_sconu,(flottaBloc)km.issc_uno/PatgCouen t *01)0;

prnif(t"按车回继键!\续\n")n

;gechtar);

}

(

vido confge(i//)序设程

{

i置nt nmu;

wihe(l1){

print f"(\***n***********************************************\*"n;

) rpntif"( * 程设序置 \n*);

p"irtnf("**************************************************\n*)";

pri nft(* " 1,设置理块大小(物默5认 ) *\"n)

; pirntf"*( ,2设置访地址问范 (围认8K)默 * n\");

p rintf"(* 3 ,置设页大小(面默认K) 1 *\ n)"

;pirtfn(* " 4设置页,面总数默认(20) 0 \n")*;

rpintf"(* ,显5示各设项值 置 *\ ");n p

irnt(f* " 6,回返 *\n" )

; p rinf("**t*************************************************n\";

) rintf(p"输入您的选择请 ":;

) umn=gt_nem(1,6u;

) if(nm=u6=) b

reka

; i(funm=1){=

prntif"(输请入物块大理(1小~d)%:", LBOKC_AXM_SZI);

E BlcoSkzieget_num=(1BLO,CK_AM_XIZSE);

pr ntif"(置成功设!\nn\");

}/ /fi

ele sfinu(=m2=)

{ pr int(f请输"访入地址范问(围~1d)% : "K,999;)

A ddRanrgeget=_un(m199,9)* 1240

; prnitf("置设功成!\\nn")

; }//esel fi

els eif nu(=m=3){

rpnitf("输请入面大页小(~%1) dK :,"ddrRangeA1/024);

PgeaizeSg=e_tnu(m1A,drRdagne/024)1 * 012;

4ripnft("设置成!功n\\"n;

) }/ e/lseif

e lse finum==(){4

prin ft(请"输页入总面(数~1%)d :"327,76;

)PgaCeuon=tgte_unm1,3(726);7

pintrf"(设成功置!n\n\");

}//ese il

flseei f(nm=u5=)

{ p irnft("--------------------------------------------------\n-";

) pr itf(n*"前当理块大物: 小d%n",Blo\ckSiez)

; pr nif("*当t访问地前范围址:% dKn\,A"drdaRneg1/204);

pr nif("*t当前面页大: 小%dK n\,"agPSieez/012);4

prntif("*前当页面数 %d总n"\,aPgCounte);

pirtf(n--"-------------------------------------------------n"\;)

}

} free(paeg);

iint_pgea()

}

;v

od ibgie(n)

{

nt iumn;

ripn_tage();p w

ilhe(1{)

printf( \"n***************************************************n\);

" rpntif(*" 页 面换置算法 * n\)"

;rintf(p*"**************************************************\"n)

; p irntf(*" ,1先先出置进换法(算IFOF) *\n ";

) p rntf(i*" 2,最近最 未使用久换置法算(RUL ) * \"n)

;pintf("r * 3最佳,换置算法(OTP ) *\n";

) pr itnf("* 4返回 , * \"n);

p irnf(t*"**************************************************n\");

p rnti(f请输入您"选的:择");

n u=gmet_unm(14,;)

if (nu ==m 4

)b reka;

pgae_erplae(cnu)m

; c lea_rbocl();k }

free(pa ge;

)i nti_pga(e)

;

}i

nt mai()n

{

nitn mu;

int_ibolk();c in

t_iagep()

;wilh(1e){

pirnt(f\n*"*************************************************\n*";)

rpintf"(* 存 器储管理模拟系统

*\n);

" p irnft"*(*************************************************\n*")

; riptfn"* ( ,进1入页面置换算 法 \n*);

" pr nit(f* " 2,入程进序设 置 * \"n)

;riptf("*n 3 退,出 *n\");

riptfn"(**************************************************\*")n;

pirtfn(请"入输的您择选:" );

un=gemtnum(_,3)1;

if (unm = 3)=

brae;

k i fn(m u= 1)=

begin();

lseei f(umn== )

2 oncfgi(e;

)}

destry_olobk()c

ret;ur n0

;}

#inlcde

i#nculed

>#nilcde

#efdie BLnOKC_MXA_SZI 2E0//最物大块大理小e

nmu{F IO=1,LFUR,OP}T

s;truc node_pagt{

ein addrtss;/e指/令地

址i t npga_eumn;/页/面

号 in tnxteor_der;/下/一次访问的次

序}pag*e

/;物/块理义定

tyedefp trsuctB lockNode{

nit paeg_index/;p/aeg数组下标

的strcu BlotkcoNed *ne t;

x}lBckoNde;o

trsutc

i{ntl negt;h/当/物理前长度块

int miss_flag; //缺标志,页若为1,则页

i缺n tmisscount;_/缺页/次数

B lckooNde* forn;t

B olcNkdo e*rare;

B}loc;k

/

本/程序全中变量局均由名个两词组成,单开头且字母大写i

n BltokSize =c5 ;//物块理小

i大t naPgeCoutn= 200;//页 总面数i

n tPaeSgiez= 1 042/;/页面小大i

nt dArRdagen= 8 1024*//访问;地址范

围ni gett_num(in todwn,ntiup) //得到个一donwu~之p间的整

in{ ntm;

ucha rstr11[];

1whil(e)1

{gfes(str,1t11s*izef(oni),sttin)d;

nu =amto(its);/r把/符串中的字字数转为整换

数 if(num=>dwn &o n&mu=u

p rebk;a

print("输f范围有入,请误新输入:重");

} /whi/e

lre tur num;n

}

vidoini _blockt()//造构一个的物理空队列块{

B olck.ear=Blorckf.rnot(Bl=ckoNde*)omlalc(soieofzB(olcNoke))d

;if !B(ocl.frkon){t

pritfn"内存(配失分!\n败)"

; eit(0)x;

}

Block.lngthe=;0

Bolk.cimsscou_nt0;

=B ocl.rkea-r>enxt=UNLL;}

ovd iequnueei(t napg_enide)x//入队{

locBkode *nNoe=dB(lokcNode*)malloc(szief(Blocokode)N;

)if(!ond){

eprintf( 内"分存失败!配\n);" e

xt(0i)

;}

odne->agpe_idexnpage=_idnxe;

no d-e>nxet=ULL;

N Bock.lelngth+;+

lBockre.ar>n-xetn=de;

oBlck.roer=naode;}

ovid edqeue()u//队

{

Blo出kcodN *noed;e

ndoe=Blockfro.t-nn>ext

Block;.front>next-nod=e-ne>tx

;fin(de =o= lBcko.raer)

B lcko.rer=aBockl.fron;t

fer(endoe;)

loBkclen.gt-h-;}

v

id colea_block()//r空物清理

{

块whielBl(ok.crar=elBok.frcon->tnet){

xlBok.froctn->enxt=Blokc.rea->nretx;

f ree(lBcko.rae)r;

lock.lBngeh--t;

} Bl

ock.raerBlock.f=ortn

; Bolc.lenkght0=;

Blck.moss_coiut=n;0

}

vio ddsetroyblo_kc()//毁销物块

{hilew(lBck.oearr=lBco.froktn)

{ Bolc.fkonrtBlo=k.frcnto>ne-xt;

rfe(eloBkcr.ear); }

free( paeg)

;

}v

od iiit_pnae()g//初始页化面系

{列

it i,nj;

sr an(timed(NLU)L;)/用当前系统/间来时始初化随机种子 page=(

tsucrt nde_opage*)amllocP(geaoCnu*stzeofis(trutc noedpa_e)g;

fo)r(i0;=iP

paegi[].dadessr=arnd)(Addr%Rane;g

apgei][.pge_nau=mpga[ie]add.rse/PasgeizSe

;

}or(i=f0i;Pag

for({=ji+;j1

+ i(pafgei[.p]aegnu_ m= p=aegj[]pag._num)e{

p ae[g].ient_oxdrr=je

; rbae;k

}//if

}// of

r i f(j == PagCeount/)/明p说ga[ie以后都]不再访会

问agp[e]ine.x_trdor e =PaeCguno;

t} //of

r

}

vodip rnt_pigae(/)/印页打面列系{

ntii ; pri

tf(n"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\");

npirnf(t页面"系列为\:")n; f

ori=0(;

{p inrtf"[%(-d,2%4-]d ,p"agei][pa.e_num,paggei[.ad]ders%sPgeSizea)

; i(f(+i1)5 =%= 0{) pri

tf(n\n"";

}//if)

}

prnif("t\n);

"

}

viodFI O_ReFlapc(inet pgeai_denx)//IFF置O换

{ Blo

cNodek n*oe;

di (f!lBckol.egtnh)

{enqueue (apeg_niedx)

; lBcko.mis_flsga0=;

re utn;

r}

odenBlock=fr.no;

whtil(neoed=noe-dne>x){t

if page[node-(p>aeg_ndexi]pa.g_eum n==pae[gpgeaind_e].xapeg_nu){m

Bl okcmi.s_sfal=g;0

eturr;n

} }

if

(lBco.klegtn

ee nuqeue(page_inedx)

;lBok.mcsisf_lg=0;

a r eurnt;

}edqeue()u;

en queuepag(_indee)x

; locB.kismsfla_=1;

gBocl.missk_ouctn++;

v}od LRUiR_plece(intap gea_ndex)i/L/UR换

B{lokNcdo *eond,e*lsat_noed;

f(iB!lcok.enlgt){h

enq euuepa(ge_inde);

x Block.m si_sflag=0

;reutnr;

}

lsatno_denod=eBlo=k.cfront;

wilehno(de=ode-nnex>t{

)if(pa e[nodeg>p-aeginde_].pxag_enm == uagep[pae_ingdex.]apgen_u){m

lsa_nodte->ext=noden-ne>x;

t Bloc kleng.th-;-

f(ionde== B olc.rkae)

r Blokc.ear=lratsno_d;e

enqeue(unode->age_pnide);x

fre(eonde;)

B lco.kmissflag_=;

0 eturrn;

} la

ts_odnen=od;

e}

i fBlo(c.lekgnth

nequue(paeeg_ndix)e;

B lck.mios_slfga=0

;r etunr;

} eduque(e;)

nqeeue(page_iudexn)

;Bl co.kimss_lfg=1;

aB lco.mksi_counst+;

}+

v

ido OP_RepTalec(int pag_eidexn)/O/PT换

{置

B olcNode k*ndeo;

lockBode *Nmaxnode,*max_node__lst;

ia(fBlo!ck.lenth){

g enqueeupag(e_nidex;

B)lokcm.ss_fiagl0;= retu

r;

n

}n od=eloBc.fkrot;n wh

le(iond=endoe>ne-tx)

{i(fpageno[e-d>pge_ainex].dpae_ngu m= p=gea[pga_eidnx]e.pga_enu)m{

n deo>p-aeg_idenx=agpe_inexd

; Bl ok.cimssfl_a=g;0

r turne;

}

}

fiBlock(l.enght

quenu(epag_indexe;)

locBk.mss_ifla=g;0 r

tuenr;

} ondeB=olckf.onr;t

max n_de=ondoe-n>etx;

hiwl(noee=doden->exnt{//)找Blo寻k中ncet_xroder最大的节点值

i(fapeg[amxn_do-e>pageindex_]n.etx_ordr epage[nodeagpe_inde].xentxorde_r)

max_n de=onode;

}

noe=Bldokcfro.t;

max_nndoel_sa=ntod;

whelein(od=neoed-ne>tx){//找B寻olck中net_xordre值最的节大点的上个一节

点 i(nfode ==m a_noxde)

b erka;

axmn_do_laes=notd;

}e

ma_nxde_loats>ne-tx =m xan_do-en>xte

;Blcok.elgnth-;- i

(maxf_odne== lBok.cearr

B)oclk.ear=rmxan_od_leats

;rfeema(_xone);d e

qneueu(pgea_idexn); Blo

ckmi.ssflag=1_;

Boclk.issm_cuotn++;}

v

odi agper_pelae(cnti umn){

niti ,;j B

oclkoNed*no de;

c har sr[3t]5[]{"FIFO=,""LUR ,""PO T";

}p rint(f="====================%s=========================\=n,"trsn[u-1])m

;p rnti(f"页面*号");

fr(i=0;i o

) ripntf(" " );

rinpt(" f *是否页缺* n\);

"ripnf(t~~"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\"n); f

r(io0=i

rpitf(n "%-d*4"p,ge[a].piga_nue);

m f(nium = FIFO)

= F FI_ROeplaeci)(

; el es ifnu( =m LR=U)

RULRepl_aeci()

; lsee ifn(mu= =OPT )

PO_TepRalce()i

;

ndo=Bloeck.rofnt;

hile(nwoden=doe>-entx

) p inrt(" f-%2d,pa"ge[node>-apg_eidex]npag.e_nm)u

; fro(jB=olkcl.negt;jh

rpintf"( )";

riptn(" f* % s *\n \",(Blonc.kimssf_lag=1= ? "Yse " :"N o)";)

}rpint(f\n~~"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~";)

pintf(r缺"数: 页%,d

缺页:率 %%.2%f\n\n"B,olk.cims_sconu,(flottaBloc)km.issc_uno/PatgCouen t *01)0;

prnif(t"按车回继键!\续\n")n

;gechtar);

}

(

vido confge(i//)序设程

{

i置nt nmu;

wihe(l1){

print f"(\***n***********************************************\*"n;

) rpntif"( * 程设序置 \n*);

p"irtnf("**************************************************\n*)";

pri nft(* " 1,设置理块大小(物默5认 ) *\"n)

; pirntf"*( ,2设置访地址问范 (围认8K)默 * n\");

p rintf"(* 3 ,置设页大小(面默认K) 1 *\ n)"

;pirtfn(* " 4设置页,面总数默认(20) 0 \n")*;

rpintf"(* ,显5示各设项值 置 *\ ");n p

irnt(f* " 6,回返 *\n" )

; p rinf("**t*************************************************n\";

) rintf(p"输入您的选择请 ":;

) umn=gt_nem(1,6u;

) if(nm=u6=) b

reka

; i(funm=1){=

prntif"(输请入物块大理(1小~d)%:", LBOKC_AXM_SZI);

E BlcoSkzieget_num=(1BLO,CK_AM_XIZSE);

pr ntif"(置成功设!\nn\");

}/ /fi

ele sfinu(=m2=)

{ pr int(f请输"访入地址范问(围~1d)% : "K,999;)

A ddRanrgeget=_un(m199,9)* 1240

; prnitf("置设功成!\\nn")

; }//esel fi

els eif nu(=m=3){

rpnitf("输请入面大页小(~%1) dK :,"ddrRangeA1/024);

PgeaizeSg=e_tnu(m1A,drRdagne/024)1 * 012;

4ripnft("设置成!功n\\"n;

) }/ e/lseif

e lse finum==(){4

prin ft(请"输页入总面(数~1%)d :"327,76;

)PgaCeuon=tgte_unm1,3(726);7

pintrf"(设成功置!n\n\");

}//ese il

flseei f(nm=u5=)

{ p irnft("--------------------------------------------------\n-";

) pr itf(n*"前当理块大物: 小d%n",Blo\ckSiez)

; pr nif("*当t访问地前范围址:% dKn\,A"drdaRneg1/204);

pr nif("*t当前面页大: 小%dK n\,"agPSieez/012);4

prntif("*前当页面数 %d总n"\,aPgCounte);

pirtf(n--"-------------------------------------------------n"\;)

}

} free(paeg);

iint_pgea()

}

;v

od ibgie(n)

{

nt iumn;

ripn_tage();p w

ilhe(1{)

printf( \"n***************************************************n\);

" rpntif(*" 页 面换置算法 * n\)"

;rintf(p*"**************************************************\"n)

; p irntf(*" ,1先先出置进换法(算IFOF) *\n ";

) p rntf(i*" 2,最近最 未使用久换置法算(RUL ) * \"n)

;pintf("r * 3最佳,换置算法(OTP ) *\n";

) pr itnf("* 4返回 , * \"n);

p irnf(t*"**************************************************n\");

p rnti(f请输入您"选的:择");

n u=gmet_unm(14,;)

if (nu ==m 4

)b reka;

pgae_erplae(cnu)m

; c lea_rbocl();k }

free(pa ge;

)i nti_pga(e)

;

}i

nt mai()n

{

nitn mu;

int_ibolk();c in

t_iagep()

;wilh(1e){

pirnt(f\n*"*************************************************\n*";)

rpintf"(* 存 器储管理模拟系统

*\n);

" p irnft"*(*************************************************\n*")

; riptfn"* ( ,进1入页面置换算 法 \n*);

" pr nit(f* " 2,入程进序设 置 * \"n)

;riptf("*n 3 退,出 *n\");

riptfn"(**************************************************\*")n;

pirtfn(请"入输的您择选:" );

un=gemtnum(_,3)1;

if (unm = 3)=

brae;

k i fn(m u= 1)=

begin();

lseei f(umn== )

2 oncfgi(e;

)}

destry_olobk()c

ret;ur n0

;}


相关文章

  • 课程设计 请求页式存储器管理
  • 课程设计说明书 题目: 请求页式存储器管理程序 院 系: 计算机科学与工程学院 专业班级: 计算机09-15班 学 号: [1**********]5 学生姓名: 某某某 指导教师: 某 某 2011年 12 月 18日 日 摘 要 分页存 ...查看


  • 大连理工大学操作系统实验报告
  • 大连理工大学 本科实验报告 课程名称:操作系统实验 学院(系):计算机科学与技术学院 专 班 学业:计算机科学与技术级:号:电计 学生姓名: 年月日 实验项目列表序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...查看


  • 页面置换算法
  • 页面置换算法 实验名称:页面置换算法 实验目的:编写页面置换算法演示程序,理解页面置换算法在虚拟存储器管理中的作用,理解常见的页面置换算法,学会OPT .LRU 和FIFO 算法的应用. 实验学时:2 实验内容:设计并编写一个页面置换算法模 ...查看


  • FIFO页面置换算法
  • 实验题目:页面置换算法(FIFO) 院 系: 班级学号: 姓 名: 指导老师: 二 0 一 四 年 上 学 期  实验题目: 页面置换FIFO算法  实验内容: 编程实现页面置换FIFO算法.  实验目的:理解并掌握模拟分页式虚拟存储 ...查看


  • 模拟比较页面置换页算法及缺页率 源代码
  • #include #include #include int add[256]/*地址*/,page[256]/*页面*/; int k,j,ram,t; float rate;/*缺页率*/ struct s1 { int page; i ...查看


  • 实验5分页式存储管理
  • 实验五 分页式存储管理 一.实验目的 通过编写分页式存储管理的模拟程序,加深对页式存储管理方式的理解,熟悉逻辑地址到物理地址的转换过程,掌握虚拟存储管理中的页面调度算法,认识分页式虚拟存储系统中缺页中断的处理过程. 二.实验内容 1.设计一 ...查看


  • 东南大学操作系统实验报告
  • 操作系统课程设计 操作系统实验 -- 基于WRK 的进程工作集实验 1 掌握虚拟机和调试工具等的使用. 2 阅读Windows 源码中工作集管理相关部分. 3 修改Windows 内核中页面置换算法,深入理解工作集和页面置换算法如何在一个完 ...查看


  • 软考网络工程师知识点总结考试大纲重点归纳打印版
  • 软考网络工程师知识点总结考试大纲重点归纳打印版 第一章 计算机基础知识 一.硬件知识 1.计算机系统的组成包括硬件系统和软件系统 硬件系统分为三种典型结构: (1)单总线结构 (2).双总线结构 (3).采用通道的大型系统结构 中央处理器C ...查看


  • 最近最久未使用页面置换算法
  • #include void main() { int m,i=0,j=0,j0,min,n=0,s,page,k=0,A[100],B[100],C[100],count=0; printf("请输入页框(物理块) 数:" ...查看


热门内容