-
大小: 3KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-15
- 語言: 其他
- 標(biāo)簽: 操作系統(tǒng)??頁面置換??C++??
資源簡介
模擬實(shí)現(xiàn)虛擬分頁存儲管理的基本功能,包括內(nèi)存的分配、內(nèi)存的回收、地址變換,在發(fā)生缺頁時(shí)采用LRU頁面置換算法。
顯示每一次內(nèi)存分配和回收后內(nèi)存的使用狀況,每一個(gè)進(jìn)程占據(jù)的內(nèi)存(頁表),計(jì)算給定的邏輯地址對應(yīng)的物理地址。

代碼片段和文件信息
/*編寫程序模擬實(shí)現(xiàn)虛擬分頁存儲管理的基本功能,包括內(nèi)存的分配、內(nèi)存的回收、地址變換,在發(fā)生缺頁時(shí)采用頁面置換算法。
要求顯示每一次內(nèi)存分配和回收后內(nèi)存的使用狀況,每一個(gè)進(jìn)程占據(jù)的內(nèi)存(頁表),計(jì)算給定的邏輯地址對應(yīng)的物理地址。
系統(tǒng)分配的物理塊數(shù)由程序指定,要求支持以下兩種頁面置換算法中的一種:
(1)FIFO頁面置換算法:
(2)LRU頁面置換算法:
要求輸入每個(gè)進(jìn)程的頁面引用序列,顯示每一次頁面引用內(nèi)存狀態(tài),最后統(tǒng)計(jì)出頁面置換算法頁面置換的次數(shù)。
*/
#include
#include“Basic_Proc.h“
void?main()
{
PCB?test[5];
for(int?i=0;i<5;i++)
{
test[i].PID=i;
test[i].Alloc=0;
}
Init();
for(int?i=0;i<5;i++)
Load(&test[i]);
//excute(test[0]);
Alloc_Mem_VM(1024*998test[0]);
Free_Mem_VM(27*10241024test[0]);
system(“pause“);
Alloc_Mem_VM(1024*998test[1]);
for(int?i=25;i<99;i++)
Access(i*1024test[1]);
Access(53*1024test[1]);
Access(54*1024test[1]);
????Access(55*1024test[1]);
Access(450*1024test[1]);
system(“pause“);
Alloc_Mem_VM(1024*998test[2]);
for(int?i=25;i<99;i++)
Access(i*1024test[2]);
printf(“兩個(gè)進(jìn)程訪問同一虛擬地址\n“);
printf(“進(jìn)程1\n“);
Access(490*1024test[1]);
printf(“進(jìn)程2\n“);
Access(490*1024test[2]);
system(“pause“);
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1237??2014-01-09?11:23??MEM_MANGE.cpp
?????文件????????927??2014-01-07?19:16??Basic_DataStructure.h
?????文件???????7139??2014-01-09?13:26??Basic_Proc.h
-----------?---------??----------?-----??----
?????????????????9303????????????????????3
評論
共有 條評論