#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
;}