資源簡介
段頁式存儲管理地址轉換
廣工操作系統實驗三
代碼片段和文件信息
#include?
#include?
#define?Maxn?5
using?namespace?std;
int?page_table[5]?=?{23689};
int?Seg_address[5]?=?{212304573};
bool?page_state[10];
int?address[100];
int?tran_address[100];
int?num;
int?Seg_table_register[2];
typedef?struct
{
????int?seg_address;
????int?seg_final_address;
}?Box;
typedef?struct
{
????Box?data[Maxn];
}?Segment;
Segment?seg_table;
void?Seg_table()
{
????Seg_table_register[0]?=?Seg_address[0];
????Seg_table_register[1]?=?Maxn;
????memset(page_statefalsesizeof(page_state));
????for(int?i?=?0;?i<5;?i++)
????{
????????seg_table.data[i].seg_address?=?Seg_address[i];
????????seg_table.data[i].seg_final_address?=?page_table[4]?+?Seg_address[i]?-?Seg_table_register[0];
????????page_state[page_table[i]]?=?true;
????????cout< ????}
}
void?init()
{
????cout<<“input?the?number?of?the?address:“< ????cin>>num;
????cout<<“input?the?address:“< ????for(int?i?=?0;?i ????????cin>>address[i];
????Seg_table();
}
void?address_translation()
{
????init();
????for(int?k?=?0;?k ????{
????????for(int?i?=?0;?i?????????{
????????????if((address[k]?>=?seg_table.data[i].seg_address)?&&?(address[k]?<=?seg_table.data[i].seg_final_address))
????????????{
????????????????int?index?=?0;
????????????????for(int?j?=?0;?j<5;?j++)
????????????????{
??????
- 上一篇:操作系統課設__多道批處理系統兩級調度的模擬_
- 下一篇:c語言實現通訊錄C語言代碼
評論
共有 條評論