您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 訂閱轉換服務地址可用以下哪個實驗屬于(eNSP模擬實驗-路由器配置NAT網絡地址轉換)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-16 17:49:45【】7人已围观
简介求用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
很赞哦!(2)
相关文章
- 01 qq小程序訂閱消息怎么開啟(買粉絲怎么打開訂閱號)
- 01 qq郵件訂閱密碼忘記了怎么辦(QQ郵箱中的郵件解壓密碼怎么找回來?)
- 01 qq買粉絲在哪里添加2023(在哪里添加qq空間買粉絲?)
- 01 qq郵箱怎么訂閱別人(怎樣在QQ郵箱中找到訂閱的郵件?)
- 05 中山市新標美貿易有限公司招聘(獵頭公司收費一般是多少啊?)
- 01 qq的訂閱號在哪里查看(qq訂閱號怎么找)
- 05 中電建海外項目收入較低的原因(中國的大財團有那些)
- 01 qq怎么訂閱號關注(qq訂閱號在哪里添加)
- 05 中山市林家服飾貿易有限公司附近酒店(香港旅游景點介紹及圖片 香港旅游景點介紹及圖片簡單)
- 05 中職國際貿易基礎知識教案(濟南第九職業中專有那些專業)