zoukankan      html  css  js  c++  java
  • 内存管理-请求调页

    FIFO

    利用vector存储用户输入的页面号

    利用queue存储内存中的页面号

     1 /**********************************************************************
     2 *
     3 *  File    : memoryManageFIFO.cpp
     4 *  Author  : 阿Q
     5 *  Time    : 2016.13.6
     6 *
     7 **********************************************************************/
     8 #include<stdio.h>
     9 #include<vector>//存储用户输入的页面号
    10 #include<queue>//记录内存块FIFO
    11 using namespace std;
    12 
    13 queue<int> memoryBlock;  //内存块队列
    14 int memorySize=0;  //内存块的大小
    15 
    16 //扫描该页是否在内存块中
    17 int scanMemoryBlock(const int a) {
    18     int i=0;
    19     queue<int> temQue=memoryBlock;
    20     for(; i<memoryBlock.size(); i++) {
    21         if(a==temQue.front()) {
    22             return 0;
    23         }
    24         temQue.pop();
    25     }
    26     return 1;
    27 }
    28 
    29 //显示内存块中的页面号
    30 void displayMemoryBlock() {
    31     int i=0;
    32     queue<int> temQue=memoryBlock;
    33     int tem=memoryBlock.size()<=memorySize?memoryBlock.size():memorySize;
    34     printf("内存中的页:");
    35     for(; i<tem; i++) {
    36         printf("%d ",temQue.front());
    37         temQue.pop();
    38     }
    39     printf("
    
    ");
    40 }
    41 
    42 int main() {
    43     vector<int> vec;
    44     int cut,i=0,tem;
    45     printf("请输入要请求的页数目:");
    46     scanf("%d",&cut);
    47     printf("
    请输入内存块的个数:");
    48     scanf("%d",&memorySize);
    49     printf("
    请依次输入请求的页号(以空格隔开):");
    50     for(i=0; i<cut; i++) {
    51         scanf("%d",&tem);
    52         vec.push_back(tem);
    53     }
    54 
    55     for(i=0; i<cut; i++) {
    56         if(scanMemoryBlock(vec[i])) { //内存块中是否有该页
    57             printf("  请求调页:%d
    ",vec[i]);
    58             if(memoryBlock.size()<memorySize) { //是否有空余的内存空间
    59                 memoryBlock.push(vec[i]);
    60             } else {
    61                 memoryBlock.pop();
    62                 memoryBlock.push(vec[i]);
    63             }
    64         } else {
    65             printf("  该页存在:%d
    ",vec[i]);
    66         }
    67         displayMemoryBlock();
    68     }
    69     return 0;
    70 }

     LUR留坑,看到室友从网上找的代码,写的真烂。。。明天考试,祝我顺利,晚安~16.12.12 22:52

  • 相关阅读:
    界面控件DevExpress Blazor UI组件v20.2新版亮点:集成Visual Studio
    如何打印超长图片
    使用you-get库下载视频自动化
    数组求最值和平均数的算法
    如何删除git所有提交历史
    计算机图形学应知应会
    通过终端登录FTP服务器的方式
    局域网内通过ARP欺骗获取他人账号密码
    如何在局域网下用他人的流量上网
    XAMPP下的项目进行内网穿透时的注意点
  • 原文地址:https://www.cnblogs.com/A--Q/p/6137421.html
Copyright © 2011-2022 走看看