Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >操作系统FIFO算法(先进先出算法)

操作系统FIFO算法(先进先出算法)

作者头像
GeekLiHua
发布于 2025-01-21 07:31:09
发布于 2025-01-21 07:31:09
11500
代码可运行
举报
文章被收录于专栏:JavaJava
运行总次数:0
代码可运行

操作系统FIFO算法(先进先出算法)

简介:本文章是作者学习操作系统期间所创作的FIFO算法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.*;
/*
 * 这是一个分页算法FIFO
 * */


public class Main
{
    static void Travse(Queue<Integer> queue)
    {
        for (Integer i : queue)
        {
            System.out.print(i + " ");
        }
        System.out.println();
    }

    public static void main(String[] args) {

        Scanner in = new Scanner (System.in);
        // 内存访问顺序
        System.out.println("内存的访问顺序:");
        int numPage = in.nextInt();
//        System.out.println(numPage);
        // 页面中断的次数
        int cnt = 0;
        // 内存块的数量
        System.out.println("内存的数量:");
        int numMemory = in.nextInt();

        // 这个队列就用来存放当前处于内存条中的序号
        Queue<Integer> queue = new LinkedList<>();
        System.out.println("输入内存:");
        for (int i = 0; i < numPage; ++ i)
        {
            // 输入页面号
            int num = in.nextInt();
            //  队列不为空 然后可以放进去 这个时候 会缺页中断
            if (queue.size() < numMemory)
            {
                if (queue.contains(num) == false)
                {
                    queue.add(num);
                    cnt ++;
                }
            }
            else
            {
                // 如果这个数字在队列里面
                if (queue.contains(num) == false)
                {
                    // 队首元素丢掉
                    queue.poll();
                    queue.add(num);
                    cnt ++;
                }
                else
                {
                }
            }
            Travse(queue);
        }
//        System.out.println(cnt);
        System.out.printf("%.1f%%", (double)cnt / (double)numPage * 100);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OPT算法代码
简介:这是作者在操作系统实验课上写下的代码,OPT算法,通过了老师的测试,大家如果也遇到了这个实验课,拿去吧我的代码。
GeekLiHua
2025/01/21
1190
OPT算法代码
Java实现操作系统实验之磁盘调度
这一版的磁盘调度,作者只分析了磁盘通道号,之后作者会加入对最晚完成时间的分析。 首先理解一下,什么是磁盘调度,磁盘调度的意思是,所有的进程都是在磁盘中得某个同道号中享受资源的,那么就会存在一个问题,我们是按什么顺序来执行这些进程呢,
萌萌哒的瓤瓤
2020/08/26
7710
2016头条校招笔试题(LRU)算法之JAVA实现
操作系统中可以使用LRU(Least Recently Used)内存淘汰旧数据的策略,如果内存需要加载新数据但空间不足,则会按照最近访问时间进行排序,并将最老的数据淘汰。假设现在内存空间大小为5,原本内存中没有数据,对内存中数据的访问顺序如下:1, 2, 5, 3, 4, 6,1, 4, 3, 6, 7, 8, 3, 9 问访问过程中发生缺页的次数是多少次? JAVA实现: 首先实现一个固定长度的集合队列 package com.itstyle.list; import java.util.Colle
小柒2012
2018/04/13
8110
挑战程序竞赛系列(14):2.6素数
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/73536732
用户1147447
2019/05/26
3730
操作系统实验之多线程操作之读者优先与写者优先第二版
之前作者做的那个实验有误,希望大家见谅,在室友的质疑之后觉得的确存在着很大的问题,所以自己今天又把一些逻辑上的漏洞又重新完善了一下。其实主要的逻辑漏洞又两个方面 第一就是,最后没有在总时间内到达的线程,最终是不能直接按照到达时间排序完之后的顺序直接打印的,而应该是每一次,将一个轮回里面能够到达的线程按照那样的检查机构打印出来后,剩下的没有到达的线程也应该是重新打入那个队列,然后在按照之前的规则继续打印,直到最后的队列中再也不存在元素,说明所有的线程都已经执行完毕 第二个就是之前的一个总时间计算问题,作者之后发现有一部分的总时间计算是存在问题的,下面作者会通过一个图来让读者们理解:
萌萌哒的瓤瓤
2020/08/26
6710
操作系统实验之多线程操作之读者优先与写者优先第二版
挑战程序竞赛系列(7):2.1一往直前!贪心法(区间)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/72675265
用户1147447
2019/05/26
3890
挑战程序竞赛系列(5):2.1广度优先搜索
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/72499714
用户1147447
2019/05/26
4690
android简易智能容错计算器
看了一些网上的代码,感觉多少有点问题,有的不能计算浮点数,有的不能计算多位数,或者没办法保证乘除法在加减法的前面,或者不能与负数进行混合运算。
砖业洋__
2023/05/06
3470
android简易智能容错计算器
挑战程序竞赛系列(9):2.4优先队列
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/72773026
用户1147447
2019/05/26
3410
蓝桥杯基本操作和运算
下面的这个就是需要我们对于这个温度进行转换:我们读取的是一个整形的数据,这个时候乘上9/5的时候需要进行转换,因为如果直接写这个就会是除法操作,但是我们加上0之后,一个数据变成小数,这个进行的就是小数运算;
阑梦清川
2025/02/24
1160
蓝桥杯基本操作和运算
我整理了50道经典Java算法题,直接进了字节跳动!!
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/10/29
1.4K0
算法提高 队列操作
问题描述   队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。 输入格式   第一行一个数字N。   下面N行,每行第一个数字为操作命令(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。 输出格式   若干行每行显示一个2或3命令的输出结果。注意:2.出队命令可能会出现空队出队(下溢),请输出“no”,并退出。 样例输入 7 1 19 1 56 2 3 2 3 2 样例输出 19 1 56 0 no 数据规模和约定   1<=N<=50
AI那点小事
2020/04/20
4520
算法提高 队列操作
挑战程序竞赛系列(34):3.2坐标离散化
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014688145/article/details/77102830
用户1147447
2019/05/26
7020
LeetCode43|最大层内元素和
给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层,而根节点的子节点位于第 2 层,依此类推。
码农王同学
2020/08/25
3420
LeetCode43|最大层内元素和
算法提高 快乐司机
问题描述   “嘟嘟嘟嘟嘟嘟   喇叭响   我是汽车小司机   我是小司机   我为祖国运输忙   运输忙”   这是儿歌“快乐的小司机”。话说现在当司机光有红心不行,还要多拉快跑。多拉不是超载,是要让所载货物价值最大,特别是在当前油价日新月异的时候。司机所拉货物为散货,如大米、面粉、沙石、泥土……   现在知道了汽车核载重量为w,可供选择的物品的数量n。每个物品的重量为gi,价值为pi。求汽车可装载的最大价值。(n<10000,w<10000,0
AI那点小事
2020/04/20
3320
算法提高 快乐司机
搜索与图论篇——图的最短路
搜索与图论篇——图的最短路 本次我们介绍搜索与图论篇中的图的最短路,我们会从下面几个角度来介绍: Dijkstra简介 Dijkstra代码 Dijkstra优化 Floyd简介 Floyd代码 Kruskal简介 Kruskal代码 Dijkstra简介 我们首先来介绍第一种求图的最短路的基本算法: /*算法前述*/ // 该算法属于较为复杂图的最短路算法,适用于求解一点到该图所有点之间的距离 // 只能用来求解边权为正数的情况,默认复杂度为O(n^2),但是后期如果采用队列优化复杂度为O(
秋落雨微凉
2022/11/28
2520
第十二届蓝桥杯省赛JavaC组【第二场】真题——详细答案对照(完整版)
IEEE 754 规定一个双精度浮点数由 1位符号位、11 位阶和 52 位尾数组成(以上位数都表示二进制位数)。 请问,按此规定一个双精度浮点数占用几个字节?
红目香薰
2022/11/29
4950
第十二届蓝桥杯省赛JavaC组【第二场】真题——详细答案对照(完整版)
堆(优先级队列 PriorityQueue)
GeekLiHua
2025/01/21
1090
堆(优先级队列 PriorityQueue)
算法系列之搜索算法-广度优先搜索BFS
随着每年"金三银四"招聘季的到来,许多求职者开始积极备战面试。在众多面试环节中,机试往往是不可或缺的一环,而算法能力更是机试考核的重点。为此,我们特别推出算法系列文章,帮助大家系统复习算法知识。今天,我们将首先探讨搜索算法中的重要内容——广度优先搜索(BFS)。
修己xj
2025/03/12
1700
算法系列之搜索算法-广度优先搜索BFS
网易17校招编程笔试题Java解法赏析(更新至第9题)1 合唱团(动态规划)编程实现 3Fibonacci数列4数字反转5下厨房67喜欢的数字8买苹果9
1 合唱团(动态规划) 分析 要求n个学生中选择k个,使这k个学生的能力值乘积最大。这是一个最优化的问题。 另外,在优化过程中,提出了相邻两个学生的位置编号差不超过d的约束。 如果不用递归或者动态
JavaEdge
2018/05/16
1.2K0
相关推荐
OPT算法代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验