資源簡介
1.基于進程控制
2.能夠模擬內存的分頁式分配和回收過程,可查看內存分配位示圖和進程頁表;
3.可根據內存分配狀態進行地址轉換。
4.能夠模擬基于虛擬存儲器的內存分配和回收過程,可查看交換空間位示圖和擴
展的頁表;
5.在虛擬存儲器基礎上完成地址轉換,缺頁時能夠實現頁面置換;
6.頁面置換過程中能夠模擬 FIFO、 LRU置換算法, 可將多次地址轉換過程中所涉
及到的頁面視為進程的頁面訪問序列,從而計算置換次數和缺頁率 。
7.OPT
的頁面置換算法
代碼片段和文件信息
#include
#define?N?4
#define?MAX?1000
using?namespace?std;
typedef?long?long?ll;
const?int?KB?=?1024;
/***
??????????????operation?system2.3
?????The?size?of?the?whole?inside?memory?is?4G.
?????????????????????????????????????????????????***/
struct?page_list?????///page?table
{
????int?block_num;
????bool?state;
};
char?bit_pic[N];///
int?block_num?page_num?memory_num;
page_list?*PL1?*PL2;
int?lack_num_FIFO?lack_num_LRU?TIMES;
double?lack_rate_FIFO?lack_rate_LRU;
int?phyadd_FIFO?phyadd_LRU;
int?addnyu;///logic_address
list?FIFO?LRU;
int?best[MAX];
void?print_bp()
{
????cout<<“Bit?diagram:\n“;
????for(int?i=0;i ????????int?t=bit_pic[i];
????????for(int?j=0;j<8;j++)
????????????cout<<(t&1)<<“?“?t>>=1;
????????puts(““);
????}
}
void?print_result()
{
????cout< ????cout<<“\t\t??=========================================================================\n“;
????cout<<“\t\t\t\t?LRU:“< ????cout<<“\t\t??-------------------------------------------------------------------------\n“;
????phyadd_FIFO+=PL1[n].block_num*KB;
????phyadd_LRU+=PL2[n].block_num*KB;
????cout< ????cout<<“\t\t??-------------------------------------------------------------------------\n“;
????cout< ????cout< ????for(int?i=0;i ????????cout< ????????cout< ????}
????cout<<“\t\t??-------------------------------------------------------------------------\n“;
????cout< ????list::iterator?ip1?=?FIFO.begin();
????list::iterator?ip2?=?LRU.begin();
????for(;ip1!=FIFO.end();ip1++ip2++)
????????cout< ????if(FIFO.size() ????????for(int?i=0;i ????????????cout< ????cout<<“\t\t??-------------------------------------------------------------------------\n“;
????cout< ????lack_rate_FIFO?=?lack_num_FIFO?*?100.0?/?TIMES;?lack_rate_LRU?=?lack_num_LRU?*?100.0?/?TIMES;
????cout< ????cout<<“\t\t??=========================================================================\n\n\n“;
????cout<<“\t\t???****?輸入一組數據后再輸入-1結束,可查看最佳置換算法的置換情況?****\n“;
????cout<<“\t\t\t\t?????**
- 上一篇:C++語言標準化考試系統
- 下一篇:操作系統進程調度C++代碼實現
評論
共有 條評論