OPT和LRU页面置换算法C语言代码,页面置换算法模拟——OPT、FIFO和LRU算法.doc

实用标准文案

精彩文档

操作系统实验报告

页面置换算法模拟

——OFT、FIFO和LRU算法

班级:2013级软件工程1班

学号:X X X

姓名:萧氏一郎

数据结构说明:

Memery[10]物理块中的页码

Page[100]页面号引用串

Temp[100][10]辅助数组

Void print(unsigned int t)辅助函数

Viod FIFO()先进先出页面置换算法

Viod LRU()最近最久未使用置换换算法

Viod OPT()最佳置换算法

流程图:

开始

开始

NONONOYesYesYes结束页号序列载完?根据选择的置换算法完成号存在物理块中引用编号大于物理块数将页号放入物理地址中编号载入序列号,从第0个得到页号

NO

NO

NO

Yes

Yes

Yes

结束

页号序列载完?

根据选择的置换算法完成

号存在物理块中

引用编号大于物理块数

将页号放入物理地址中编号

载入序列号,从第0个得到页号

源代码:

#include

#include

/*全局变量*/

int mSIZE; /*物理块数*/

int pSIZE; /*页面号引用串个数*/

static int memery[10]={0}; /*物理块中的页号*/

static int page[100]={0}; /*页面号引用串*/

static int temp[100][10]={0}; /*辅助数组*/

/*置换算法函数*/

void FIFO();

void LRU();

void OPT();

/*辅助函数*/

void print(unsigned int t);

void designBy();

void download();

void mDelay(unsigned int Delay);

/*主函数*/

void main()

{

int i,k,code;

printf("请输入物理块的个数(M<=10):");

scanf("%d",&mSIZE);

printf("请输入页面号引用串的个数(P<=100):");

scanf("%d",&pSIZE);

puts("请依次输入页面号引用串(连续输入,无需隔开):");

for(i=0;i

scanf("%1d",&page[i]);

download();

do{

puts("输入的页面号引用串为:");

for(k=0;k<=(pSIZE-1)/20;k++)

{

for(i=20*k;(i

{

if(((i+1)%20==0)||(((i+1)%20)&&(i==pSIZE-1)))

printf("%d\n",page[i]);

else

printf("%d ",page[i]);

}

}

printf("* * * * * * * * * * * * * * * * * * * * * * *\n");

printf("* 请选择页面置换算法:\t\t\t *\n");

printf("* *\n");

printf("* 1.先进先出(FIFO) 2.最近最久未使用(LRU) *\n");

printf("* 3.最佳(OPT) 4.退出 *\n");

printf("* * * * * * * * * * * * * * * * * * * * * * *\n");

printf("请选择操作:[ ]\b\b");

scanf("%d",&code);

switch(code)

{

case 1:

FIFO();

break;

case 2:

LRU();

break;

case 3:

OPT();

break;

case 4:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Enterprise Architecture绘制10种UML画画

UML绘制10种课程要求UML画画&#xff0c;选Enterprise Architecture作为一个绘图工具&#xff0c;每一个草图必须是网上找教程&#xff0c;我觉得很麻烦&#xff0c;还有一些数字并没有找到详细的教程。在我自己找一个绘图方法&#xff0c;今天总结使用Enterprise Architecture…

RocketMQ初步应用架构理论

RocketMQ初步应用架构理论 写给RocketMQ架构应用入门&#xff0c;内容涉及它的设计机理以及推到出来的应用注意事项&#xff0c;入门人员请看。 稍微涉及技术细节&#xff0c;留以我设计中间件时参考&#xff0c;将来整理深度文档时会抽取走&#xff0c;入门人员可以无视。 以下…

android程序的入口点,常见android面试基础题

2015-11-21 06:30:02阅读( 1344 )1. Intent的几种有关Activity启动的方式有哪些&#xff0c;你了解每个含义吗这里Android123提示大家&#xff0c;Intent的一些标记有FLAG_ACTIVITY_BROUGHT_TO_FRONT、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACT…

转:pysqlite笔记

这是一篇老笔记&#xff0c;原来是放在旧博客上 的&#xff0c;最近因为公司内部一个小东西&#xff0c;想使用简单点的数据库来存储数据&#xff0c;就想起用SQLite来做&#xff0c;上网搜索一些教程。竟然发现&#xff0c;原来一年多前&#xff0c;我也学过一阵 子&#xff0…

android页面布局更改,使用setContentView的方式更换布局文件从而更换界面

使用转换Activity的布局文件的方式&#xff0c;从而达到转换android页面的目的(这里没有使用Intent)&#xff1a;程序很简单&#xff0c;摆一个大概出来&#xff1a;package com.seed.lee.setContentView;import android.app.Activity;import android.os.Bundle;import android…

oracle之单行函数之子查询

--睡得工资比abel高 select last_name,salary from employees where salary>(select salary from employees where last_nameAbel)运行结果 --返回job_id 与141号员工相同 salary比143号多 select last_name,job_id,salary from employees where job_id(select job_id from…

android模拟gps定位软件,gps定位模拟器下载最新版

卫星地图导航&#xff0c;从此出门想去哪里去哪里&#xff0c;再也不用因为不知道路线而烦忧&#xff01;它还能实时定位&#xff0c;快速找人、找车&#xff01;推荐&#xff01;使用前提&#xff1a;1、定位模拟器是基于Xposed安卓框架下的插件&#xff0c;因此安装定位模拟器…

Java的堆与栈,科普给大家

1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C不同&#xff0c;Java自动管理栈和堆&#xff0c;程序员不能直接地设置栈或堆。 2. 栈的优势是&#xff0c;存取速度比堆要快&#xff0c;仅次于直接位于CPU中的寄存器。但缺点是&#xff0c;存在栈中的数据大小与…

android edittext禁止输入特殊字符,Android EditText禁止输入空格和特殊字符

/*** 禁止EditText输入特殊字符* param editText*/public static void setEditTextInhibitInputSpeChat(EditText editText){InputFilter filternew InputFilter() {Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, i…

oracle之单行函数之子查询之课后练习

/*************************************************************************************************/ 40. 谁的工资比 Abel 高?1). 写两条 SQL 语句.SELECT salaryFROM employeesWHERE last_name Abel--返回值为 11000SELECT last_name, salaryFROM employeesWHERE sal…

移动端开发的知识系统介绍

移动端开发1. 移动端适配&#xff1a;http://suqing.iteye.com/blog/1982733http://www.douban.com/note/261319445/ http://www.woshipm.com/ucd/150207.html<meta name"screen-orientation" content"portrait"><!-- 强制竖屏 --><meta na…

delphi android动态权限,DELPHI安卓动态权限申请

DELPHI安卓动态权限申请安卓8.0以前的版本&#xff0c;只需要给静态权限就可以了&#xff0c;但安卓8.0及以后的版本&#xff0c;还需要运行期用代码动态申请权限。下面以《蓝牙权限》为例&#xff0c;其他权限类似。Delphi 10.3 社区版&#xff0c;提供的 Sample 里面有一个例…

oracle之创建和管理表

create table emp2 AS Select employee_id,last_name name,hire_date,salary from employees select * from emp2 --创建表 --白手起家 /* create table emp1(id number(10),name varchar(20),salary number(10,2),hire_date date ) */

LocalBroadcastManager 的使用

一、使用本地广播发送一条广播&#xff08;本例为自己发送自己接收&#xff0c;本地广播也可以是其他应用接收&#xff09;然后接收到广播时回调Receiver类中的回调方法onReceive&#xff08;&#xff09;在此方法中自定义发出通知 代码 1 package com.qf.broadcastreceiver06;…

android xml正方形,使用Android Constraintlayout创建一排均匀分布的正方形

我正在努力创建一个由均匀分布的正方形链组成的布局&#xff0c;这些正方形可以填充可用空间。使用Android Constraintlayout创建一排均匀分布的正方形我到底想要的布局&#xff0c;看起来像这样&#xff1a;的想法是&#xff0c;与不同的宽高比手机这个正方形成长一点点地使用…

oracle之单行函数之子查询课后练习2

1. 查询和Zlotkey相同部门的员工姓名和雇用日期 a) select last_name,hire_date b) from employees c) where department_id ( d) select department_id e) from employees f) where last_name Zlotkey g…

JavaWeb 如何防止表单重复提交 - 使用Token,令牌

JavaWeb 如何防止表单重复提交 - 使用Token&#xff0c;令牌 说到重复提交 &#xff0c;应该想到两种场景&#xff1a;1. 在下单&#xff0c;或者支付 这种情况 那么不允许 刷新&#xff0c;不允许后退再点击提交&#xff08;后退之后提交会失败&#xff0c;修改了也不行&…

oracle之创建和管理表之练习题

51. 利用子查询创建表 myemp, 该表中包含 employees 表的 employee_id(id), last_name(name), salary(sal), email 字段1). 创建表的同时复制 employees 对应的记录create table myemp asselect employee_id id, last_name name, salary sal, email from employees 2). 创建表…

android icu4c 7.1编译报错,android4.0编译系统时候遇到的错误集

1、Android library XXX.so not in prelink map 错误解决在编译自己的Android library时可能会出现library XXX.so not in prelink map 错误&#xff0c;这是由于Android的预编译设置引起的&#xff0c;/build/core/prelink-linux-arm.map文件描述了预编译的模块需要修改所在文…

oracle之数据处理

--创建表 create table emp3 as select employee_id,last_name,hire_date,salary from employees--查询表 select * from emp3--插入表 insert into emp3 values(1001,AA,sysdate,10000) 运行结果 插入对应三项 --空值用null代替 --复制表 insert into emp3(last_name,employe…