您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

01 訂閱轉換服務地址可用以下哪個實驗屬于(eNSP模擬實驗-路由器配置NAT網絡地址轉換)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-02 13:22:11【】6人已围观

简介求用c++程序設計的實驗:模擬分頁式存儲管理中硬件的地址轉換和用先進先出調度算法(FIFO)處理缺頁中斷。#include<iostream.h>#include<stdlib.h&

求用c++程序設計的實驗:模擬分頁式存儲管理中硬件的地址轉換和用先進先出調度算法(FIFO)處理缺頁中斷。

#include<iostream.h>

#include<stdlib.h>

#include<iomanip.h>

#include"windows.h"

#include"os.h"

#define n 64//實驗中假定主存的長度

#define m 4//實驗中假定每個作業分得主存塊塊數

int p[m];//定義頁

struct

{

short int lnumber;//頁號

short int flag;//表示該頁是否在主存,“1”表示在主存,“0”表示不在主存

short int pnumber;//該頁所在主存塊的塊號

short int write;//該頁是否被修改過,“1”表示修改過,“0”表示沒有修改過

short int dnumber;//該頁存放在磁盤上的位置,即磁盤塊號

short int times;//被訪問的次數,用于LRU算法

}page[n];//定義頁表

//各個函數的實現如下:

買粉絲puter::買粉絲puter()

{

int i;

for(i=0;i<n;i++)

{

page[i].lnumber = i;

page[i].flag = 0;

page[i].pnumber = 10000;//用10000表示為空

page[i].write = 0;

page[i].dnumber = i;

page[i].times = 0;

}//初始化頁表

for(i=0;i<m;i++)

{

page[i].pnumber = i;

}

for(i=0;i<m;i++)

{

p[i] = i;

page[i].flag = 1;

}//初始化頁

}

void 買粉絲puter::showpagelist()

{

int i;

買粉絲ut<<"頁號"<<"\t"<<"是否在主存中"<<"\t"<<"塊 號"<<"\t"<<"是否被修改過"<<"\t"<<"磁盤塊號"<<"\t"<<"訪問次數"<<endl;

for(i=0;i<n;i++)

{

買粉絲ut<<page[i].lnumber<<"\t"<<page[i].flag<<" "<<page[i].pnumber<<"\t"<<page[i].write<<" "<<page[i].dnumber<<" \t"<<page[i].times<<endl;

}

}

void 買粉絲puter::showpage()

{

int i;

for(i=0;i<m;i++)

{

買粉絲ut<<"\t"<<p[i];

}

買粉絲ut<<endl;

}

void 買粉絲puter::transformation()

{

unsigned logicAddress,logicNumber,innerAddress,physicsAddress,physicsNumber;

int i,head=0,fail = 0;

int method,temppage=0;

short int times = 10000;

買粉絲ut<<"請輸入一個邏輯地址(四位十六進制數):";

cin>>hex>>logicAddress;//讀入邏輯地址

logicNumber = logicAddress >> 10;//得到頁號

買粉絲ut<<"頁號為:"<<logicNumber<<endl;

innerAddress = logicAddress & 0x03ff;//得到頁內地址

買粉絲ut<<"頁內地址為:"<<innerAddress<<endl;

for(i=0;i<n;i++)

{

if(logicNumber==(unsigned)page[i].lnumber)

{

if(page[i].flag == 1)

{

買粉絲ut<<"請求的頁面在主存中!"<<endl;

page[i].times++;

physicsNumber = page[i].pnumber;//由頁號得到塊號

買粉絲ut<<"請求的主存塊號為:"<<physicsNumber<<endl;

physicsAddress = physicsNumber << 10 |innerAddress;//得到物理地址

買粉絲ut<<"請求的物理地址為:"<<physicsAddress<<endl;//輸出物理地址

break;

}

else

{

買粉絲ut<<"請求的頁面不在主存中! 將進行缺頁中斷處理!"<<endl<<"請選擇算法!"<<endl;

買粉絲ut<<"1.先進先出"<<endl<<"2.最近最少用"<<endl<<"請選擇置換算法:";

cin>>method;

if(method == 1) //采用先進先出算法

{

買粉絲ut<<"采用先進先出算法!"<<endl;

fail = p[head];

買粉絲ut<<"第"<<fail<<"頁將被替換!"<<endl;

p[head] = logicNumber;

head = (head+1) % m;

if(page[fail].write == 1)

買粉絲ut<<"第"<<fail<<"頁曾被修改過!"<<endl;

page[fail].flag = 0;

page[logicNumber].flag = 1;

page[logicNumber].write = 0;

page[logicNumber].pnumber = page[fail].pnumber;

page[fail].pnumber = 10000;

page[logicNumber].times++;

break;

}

else if(method == 2) //采用最近最少用算法

{

買粉絲ut<<"采用最近最少用算法!"<<endl;

for(i=0;i<n;i++)

{

if(page[i].flag == 1)

{

if(page[i].times<times)

{

times = page[i].times;

temppage = page[i].lnumber;

}

}

}

買粉絲ut<<"第"<<temppage<<"頁將被替換!"<<endl;

for(i=0;i<m;i++)

{

if(p[i] == temppage)

{

p[i] = logicNumber;

}

}

if(page[temppage].write == 1)

買粉絲ut<<"第"<<temppage<<"頁曾被修改過!"<<endl;

page[temp

很赞哦!(3)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:安徽宣城绩溪县

工作室:小组

Email:[email protected]