操作系统实验——模拟请求分页管理中地址转换和缺页中断处理

  1. 实验题目:模拟请求分页管理中地址转换和缺页中断处理
  2. 实验目的:了解内存请求分页管理中地址转换过程与先进先出置换算法和缺页中断处理过程。
  3. 实验环境:硬件:pc 机。软件:Windows OS,Visual C++ 6.0(完整绿色版)
  4. 程序清单:
    #include
    
    #define PN 7
    
    #define PAGESIZE 1024
    
    
    
    typedef struct{
    
    int P;//存在标志
    
    int M;//修改标志
    
    int pno;//页号
    
    int bno;//主存块号
    
    int place;//位移
    
    }PAGETAB;
    
    
    
    
    
    void change(PAGETAB s[]){
    
    int flag = 1,a,i = 0,p,place,x = 0,found = 0;
    
    int st = 0;//缺页
    
    while(flag == 1){
    
    st = 0;
    
    printf("please input a logic add");
    
    scanf("%d",&a);
    
    p = a/PAGESIZE;
    
    place = a%PAGESIZE;
    
    if(p>=PN)
    
    printf("illegal logic add");
    
    else{
    
    for(i = 0;i

  5. 调试程序时出现问题说明及解决的方法:

    1. 设计change函数时,如果从上次替换的页处开始查找下次应替换的页,可能会导致忽略了向后查找不到而从头查找的情况。后设置了一个int型变量found,如果found为1,则说明向后查找找到了,否则需要从头查找。
    2. 如果条件语句和循环语句太多很容易导致嵌套太乱的问题,后我发现可以直接在通过循环找到需要的元素后之后退出循环,将所需元素直接保存在变量中。

你可能感兴趣的:(笔记,实验,c语言,操作系统)