常见操作系统调度算法研究(1)

FIFO

FIFO全称是first in first out,是操作系统里面常见的一种算法,他就好比是一堆人在排一个队伍,按照先进先出的规则,谁首先排队谁就可以第一个出去。
它的缺点显而易见,如果第一个进去的家伙任务量过大,就会导致处理时间过长,以至于其他人都在他后面排队等待,这样就会导致平均处理任务时间过长。显然,当遇到任务量之间差别过大的情况下,使用FIFO不是一个机智的选择。

SJF

SJF的全称是shortest job first,它的理念与上面的FIFIO恰好相反,不讲究先来后到了,为了效率,先让任务量小的处理,这样就能缩短总等待时间和平均等待时间。
在这里插入图片描述
以下图为例,处理ABC三个程序,显然A的任务量过大,在考虑平均周转时间的前提下,SJF算法显然优于FIFO算法。但是,由于现代的调度程序几乎都是抢占式的,假设有这样一种情况,目前系统刚接受的一批任务,经过SJF算法的筛选,选出来最小的那个正在处理,这时候又来了一批程序,按照抢占式的调度规则,后面来的那一批程序选出一个在它们那一批中最小的,但是仍然比之前SJF算法选出来的任务要大得多,这种情况该如何处理?这里就要涉及到下一个我们要介绍的STCF算法;

STCF算法

如果我们可以解决每当有新的任务加入的时候比较加入的任务与之前处理的任务的大小这个问题,那我我们就不用担心后面来一个很大的任务的时候,由于现代操作系统的调度机制,而造成后来居上从而引发堵塞的情况出现。
在这里插入图片描述

响应时间

说完以上三种便会发现,我们在比较以上三种算法调度时间的快慢的时候用到了平均执行时间与单次执行时间来作为指标进行比较,但是这种算法往往会受限于特定的任务场景造成误差,我们在这里使用了响应时间来作为我们判断操作系统调度快慢的一种方式,响应时间指的是一个任务进入系统直到开始处理的时间之差,它能够较好的客观反映出这个操作系统的调度快慢,但是拿它也不要作为唯一的指标去批判一个操作系统的调度能力,那么我们刚刚的STCF算法便不会那么占优势,但是它确实在防止抢占式系统的调度方式上功勋卓越。

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

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

相关文章

常见操作系统调度算法研究(2)

轮转策略 轮转策略(Round-Robin)简称为RR,在RR里面,每个准备就绪的任务只能在有限的时间内运行,也就是说不管这个任务完成与否,都会切换任务到下一个。 由于它要频繁的切换队列,我们可以把准备…

使用Apache Ignite优化Spark作业性能(第1部分)

快来看看他们是如何工作的! 本文的某些部分摘自我的书《 Apache Ignite的高性能内存计算》 。 如果您对这篇文章感兴趣,请查看本书的其余部分,以获取更多有用的信息。 Apache Ignite提供了几种提高Spark作业性能的方法:Ignite RD…

mysql查看索引创建进度_SQL Server查看索引重建、重组索引进度

相信很多SQL Server DBA或开发人员在重建或重组大表索引时,都会相当郁闷,不知道索引重建的进度,这个对于DBA完全是一个黑盒子,对于系统负载非常大的系统或维护窗口较短的系统,你会遇到一些挑战。例如,你创建…

使用Eclipse Deeplearning4j构建简单的神经网络

神经网络导论 深度学习既包含深度神经网络又包含深度强化学习,这是机器学习的子集,而机器学习本身就是人工智能的子集。 广义上讲,深度神经网络执行机器感知,该机器感知从原始数据中提取重要特征,并对每个观察结果做出…

mysql 注入 绕过防火墙_绕过阿里云防火墙继续扫描探测和SQL注入

前言如今的互联网,WAF泛滥的年代,实在让我等脚本小子苦恼ing,尤其是阿里云服务器的自带防护,那不是一般的叫人牙疼,十个站8个站都是阿里云....最近遇到几个站都是阿里云的服务器,比如:泛微e-col…

java创建类的三个步骤_3个简单步骤即可测试Java 8

java创建类的三个步骤即将发布的Java 8版本为Java开发人员带来了许多新功能,但是升级时始终存在代码破裂的风险。 我们都记得Java 7出厂时有一系列非常严重的错误 。 当然,我们所有人都可以帮助避免在Java 8中出现相同的问题。我今天要介绍的方法是使用…

mybatis嵌套查询和嵌套结果有什么区别_Java面试专题之九:Mybatis面试5个大概率被问到的问题...

1、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而 Mybati…

使用Pargon-neo进行5G sync相关的测试

前言 Paragon-neo是Calnex旗下的一款测试仪器,主要用于5G的高精度场景下的PTP与SyncE的测试,它可以提供高达100GbE的测试速度,可以用在ITU-T G.8273.2 C/D类边界时钟测试,符合O-RAN的O-DU和O-RU设备,以及设计和部署5G…

常用的光电模块SFP、QSFP等解析

前言 学习记录 BNC 是用来接同轴电缆的接口,好处是降低了信号之间的相互干扰;主要市场是安防行业以及一些使用同轴电缆作为传输介质的令牌以太网。举个例子就是小时候的电视机后面经常能够看见这种线,BNC接头中间有一个凸起来的针&#xff…

零分钟即可在容器开发套件(CDK)上实现云运营

尽管这很有趣,但实际上并不可行,很快就遇到了使用限制。前一段时间, 我逐步完成了在容器中安装称为CloudForms的云管理解决方案。 真正的解决方案是将这个示例放入Red Hat Demo Central集合中,并将其放在基于开放技术的Cloud解决…

NTPv4协议解析

前言 本文的撰写基于RFC5905.NTP 是时间网络控制协议,V4版本相交V3版本,修复了V3存在的一些问题。尤其是NTPV4的拓展时间戳鼓励使用浮动双数据类型,这样使得NTP能够更好的支持1ns的场景,轮询间隔也从上一代的最多1024s拓展到了36…

看完这篇还不会化简卡诺图?你来打我

最通俗易懂的的卡诺图化简教程 首先我们来介绍一下什么是卡诺图: 卡诺图是逻辑函数的一种图形表示。一个逻辑函数的卡诺图就是将此函数的最小项表达式中的各最小项相应地填入一个方格图内,此方格图称为卡诺图。 卡诺图的构造特点使卡诺图具有一个重要性…

几种常见的集成触发器(D、T、JK)

同步RS触发器存在“空翻”现象,即触发器存在多次翻转的现象,空翻破坏了“时序电路按时钟节拍工作,每个时钟脉冲作用下电路的状态只发生一次转换”的基本原则 解决方法:将电平触发改为边沿触发,使得触发器旨在时钟脉冲…

Hashcat从入门到入土(一)

Hashcat的官方是这么介绍自己的 Hashcat is a password recovery tool. It had a proprietary code base until 2015, but was then released as open source software. Versions are available for Linux, OS X, and Windows. Examples of hashcat-supported hashing algorith…

java 语义_Java文件合并变得语义化

java 语义与任何程序员交谈,并询问他应该如何进行合并:“它应该理解代码,对其进行解析,然后根据结构进行合并” –他很可能会说。 而这恰恰是SemanticMerge for Java所做的:它解析要合并的文件(加上祖先或…

Apache Pulsar:分布式发布订阅消息系统

Apache Pulsar是一个开源的分布式pub-sub消息传递系统,最初由Yahoo创建,并且是Apache Software Foundation的一部分 。 Pulsar是用于服务器到服务器消息传递的多租户高性能解决方案。 脉冲星的主要功能包括[4]: 对Pulsar实例中的多个集群的…

迟来总比没有好:SSE或服务器发送的事件现在已在JAX-RS中

服务器发送的事件 (或简称为SSE )是非常有用的协议,它允许服务器通过HTTP将数据推送到客户端。 这是我们的网络浏览器支持的年龄,但令人惊讶的是, JAX-RS规范在很长一段时间内都忽略了这一点。 尽管Jersey提供了适用于…

java 面向对象继承的思想_Java面向对象思想

Java类的定义:成员变量会默认初始化,局部变量不会默认初始化。如何在内存中区分类和对象:♦类是静态的概念,代码区♦对象是new出来的,位于堆内存,类的每一个成员变量在不同的对象中都有不同的值(除了静态变…

java 垃圾回收手动回收_Java垃圾回收(4)

java 垃圾回收手动回收G1:垃圾优先 G1收集器是热点JVM中要实现的最新收集器。 自Java 7 Update 4以来,它一直是受支持的收集器。OracleGC团队也公开表示,他们对低暂停GC的希望是完全实现的G1。 这篇文章来自我之前的垃圾收集博客文章&#xf…

使用正确的垃圾收集器将Java内存使用量降至最低

大小对于软件至关重要。 很明显,与大型整体方法相比,在微服务体系结构中使用小型组件具有更多优势。 最新的Java版本的Jigsaw可帮助分解旧应用程序或从头开始构建新的云原生应用程序。 这种方法减少了磁盘空间,构建时间和启动时间。 但是&am…