2014-11-25 47 views
0

时钟替换算法。 arr - 是物理内存arr2 - 页面(虚拟内存) 如果arr没有页面,则替换R = 0的帧;如果所有帧都有R = 1;初始化所有R = 0; IF帧有页面,R = 1。没做什么 。否则R = 1;时钟分页替换算法

#include<iostream> 
using namespace std; 
struct Frame 
{ 
    char content; 
    int R; 
}; 
int main() 
{ 
    int arr2[] = { 1, 2, 3, 4, 1, 2, 5, 6 }; 

    Frame arr[3]; 
    arr[0].R = 1; 
    arr[0].content = arr2[0]; 
    arr[1].R = 1; 
    arr[1].content = arr2[1]; 
    arr[2].R = 1; 
    arr[2].content = arr2[2]; 
    arr[3].R = 1; 
    arr[3].content = arr2[3]; 

    for (int i = 0; i < 3; i++) 
    { 
     for (int j = 4; j < 8; j++) 
     { 
      if ((arr[i].content == arr2[j]) && (arr[i].R = 1)) 
      { 
       cout << "Frame have this page"; 
      } 
      else if ((arr[i].content == arr2[j]) && (arr[i].R = 0)) 
      { 
       arr[i].R = 1; 
      } 
      else if ((arr[i].content != arr2[j]) && (arr[i].R = 1)) 
      { 
       arr[i].R = 0; 
      } 
      else 
      { 
       arr[i].content = arr2[j]; 
       arr[i].R = 1; 
      } 
     } 
    } 

    for (int i = 0; i < 3; i++) 
    { 
     cout << arr[i].content << " " << arr[i].R << endl; 
    } 


    system("pause"); 
    return 0; 
} 

错误1个错误LNK1168:无法打开C:\用户\^h \文档\ Visual Studio的2013 \项目\ OS时钟\调试\ OS clock.exe写C:\用户\^h \文档\ Visual Studio 2013 \ Projects \ os clock \ os clock \ LINK os clock

+0

水晶球认为exe已经在运行。 – molbdnilo 2014-11-25 12:23:11

+0

_Oh阁下你会不会给我买... ...什么问题?错误消息指向“os clock.exe”正在运行,缺少写入权限或路径错误。 – Arno 2014-11-25 12:28:05

回答

0

此错误表示程序正在运行,并且您再次命令编译器运行程序,尽管exe文件保持打开状态。 首先关闭exe文件比运行程序消除这个错误。