C#之FIFO算法实现页面置换算法
实现原理:淘汰最先进入内存的ye页面,即选择页面在内存中停留时间最长的页面调出内存!
- 本程序使用到了两个数组:一个数组用于初始化存放内存外页面的序号,存放的页面序号是和网上大多数例子序号是一样的其实也可以随机生成,不过不影响:代码如下;
int[] arr = { 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1,7,0,1 };
- 第二个数组是模拟内存存放最先进入内存的三个序号的,代码如下:
int[] arr1=new int[3];
- 下面我献上全部的代码了,写的代码可能有点冗余!还请多多指出!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Exam_os
{/// <summary>/// 采用先进先出的算法来实现页面置换/// </summary>class Program{static void Main(string[] args){Console.WriteLine(" 采用先进先出FIFO算法实现页面置换算法: ");int k = 0;int y = 0;int x = 0;int[] arr = { 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1,7,0,1 };float f = arr.Length-2;int[] arr1=new int[3];for (int i=0;i<3;i++){arr1[i] = arr[i];}Console.WriteLine(" 系统存在页面的序号如下: ");for (int i = 0; i <arr.Length; i++){Console.Write(arr[i]);Console.Write(" ");}Console.WriteLine();Console.WriteLine(" 首先进入内存的三个页面序号是: ");for (int i = 0; i < 3; i++){Console.Write(arr1[i]);Console.Write(" ");}Console.WriteLine();for (int j=3;j<arr.Length;j++){Console.WriteLine();Console.Write("页面序号:"+arr[j]+"开始访问内存");Console.WriteLine(); for (int i = 0; i < 3; i++){if (arr[j] == arr1[i]){ Console.Write(" ........内存中已经存在页面序号........ ");Console.WriteLine();break;}y++; }if (y <=2){}else{Console.WriteLine(" 页面缺失,调出页面后内存外页面序号为: ");x++;int temp;temp = arr[j];arr[j] = arr1[k];arr1[k] = temp;k++;if (k >= 3){k = 0;}for (int i = 3; i < arr.Length; i++){Console.Write(" ");Console.Write(arr[i]);}Console.WriteLine();Console.WriteLine("内存中的页面序列号为:");for (int i = 0; i < 3; i++){Console.Write(" ");Console.Write(arr1[i]);}}y = 0;}Console.WriteLine();f = ((f - x) / f) * 100;Console.WriteLine(".......页面访问缺页次数为........"+x);Console.WriteLine();Console.WriteLine(".......页面缺失率为:........."+f+"%");Console.ReadKey();}}
}
- 下面是本程序的运行界面图,由于图片过长,所以分两部分截图:
希望能帮助到你哦!
C#之FIFO算法实现页面置换算法相关推荐
- 页面置换算法最佳页面置换算法模拟JAVA实现
操作系统存储管理页面置换算法-----最佳页面置换算法模拟(JAVA实现) 话不多说,我们直接展示 package com.company;import java.util.Arrays;/*** @ ...
- LRU和LFU 算法(页面置换算法)
LRU和LFU的区别 LRU和LFU都是内存管理的页面置换算法. LRU:最近最少使用(最长时间)淘汰算法(Least Recently Used).LRU是淘汰最长时间没有被使用的页面. LFU:最 ...
- 缓存算法(页面置换算法)-FIFO、LFU、LRU
为什么80%的码农都做不了架构师?>>> 转自:http://www.cnblogs.com/dolphin0520/ 1.FIFO算法 FIFO(First in First ...
- fifo页面置换算法java_缓存算法(页面置换算法)-FIFO、LFU、LRU
转自:http://www.cnblogs.com/dolphin0520/ 1.FIFO算法 FIFO(First in First out),先进先出.其实在操作系统的设计理念中很多地方都利用到了 ...
- 页面置换算法 - FIFO、LFU、LRU
缓存算法(页面置换算法)-FIFO. LFU. LRU 在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO. LFU ...
- 操作系统页面置换算法(最佳置换算法,FIFO,LRU,Clock)
页面置换算法 为什么要页面置换 最佳置换算法 先进先出页面置换算法 LRU置换算法 Clock置换算法 为什么要页面置换 缺页中断: 在地址映射过程中,若在页表中发现所要访问的页面不在内存,则产生中断 ...
- 操作系统页面置换算法
通常把选择换出页面的算法称为页面置换算法,置换算法的好坏直接影响到系统的性能,不适当的算法可能会导致抖动, 最近学习了一下,算是做一个笔记吧... 实现OPT和LRU置换算法 #include < ...
- OS- -内存之页面置换算法
OS- -内存之页面置换算法 文章目录 OS- -内存之页面置换算法 一.内存之页面置换算法 1.最优页面置换算法 2.最近未使用页面置换算法 3.先进先出页面置换算法 4.第二次机会页面置换算法 5 ...
- 【操作系统】页面置换算法
页面置换算法 在进程运行过程中,若需要访问的物理块不在内存中,就需要通过一定的方式来将页面载入内存,而此时内存很可能已无空闲空间,因此就需要一定的算法来选择内存中要被置换的页面,这种算法就被称为页面置 ...
最新文章
- 机器学习入门(16)— CNN 池化层概念和特征
- Ditto剪贴板增强工具 ,方便复制粘贴多条历史记录
- java lambda 应用场景,Java中Lambda的使用范围
- MySQL_控制台操作_01
- AI CC2019软件安装教程
- L1-005 考试座位号
- 图片上的文字怎么转换为word
- 先知模型 facebook_使用Facebook先知进行犯罪率预测
- day02 pycharm 安装
- 点击图片旋转180_一起来点亮斗门!请你旋转手机屏幕90横屏并点击图片!
- leetcode 384 打乱数组
- 点阵字库制作和使用(一)
- Keil5最新注册机到2032
- 钉钉webhook小笔记
- matlab m文件开方,请问,在matlab里面如果输入开方号(根号)?如9的开方怎么写?
- windows_帮助文档【.CHM电子书】打开显示空白解决办法
- C++校招面试题合集
- 颜色编码 RGB、CMYK、 HEX
- Git:schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT
- oracle修改数据前备份,Oracle 之利用BBED修改数据块SCN—-没有备份数据文件的数据恢复...