• 大小: 8KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: C/C++
  • 标签: 操作系统  

资源简介

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     **

评论

共有 条评论