常用进程调度算法的分析与评价

操作系统——处理机调度(学习笔记) 调度:当有多个任务需要处理,由于资源有限,这些任务无法同时处理,这时需要某种规则来决定处理这些任务的顺序。 处理机调度:从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程的并发执行。 调度的三个层次: 高级调度 高级调度又称长程调度或作业调度,调度对象是作业。根据某种算法决定将外存上处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。高级调度主要用于多道批处理系统中,而在分时和实时系统中不设置高级调度。 中级调度 中级调度又称... 阅读详情
转载来源:常用进程调度算法的分析与评价(王俊祥 重庆文理学院 数学与计算机科学系) 《计算机与信息技术》

    摘   要   本文详细地讨论了四种常用进程调度算法的基本思想,并对其进行了分析和评价。
    关键词  进程调度算法,分析,评价
1    引言
    进程调度是系统内部的低级调度,进程调度的策略通常有先来先服务算法、时间片轮转算法、最高优先权优先调度算法、最短进程优先调度算法等。衡量进程调度性能通常需要从定性和定量两个方面来综合考虑。
2    进程调度算法评价依据
    进程调度性能的衡量方法可以分为定性和定量两种,在定性衡量方面,首先是调度的安全性。比如,一次进程调度是否可能引起数据结构的破坏等。这要求对调度时 机的选择和保存CPU现场十分小心。另外,系统开销也是衡量进程调度的一个重要指标,由于调度程序的执行涉及到多个进程的上下文切换,如果调度策略过于繁 琐和复杂,将会耗去较大的系统开销。这在用户进程调度系统调用较多的情况下,将会造成响应时间大幅度增加。
    进程调度的定量评价包括CPU的利用率评价、进程在就绪队列中的等待时间与执行时间之比等。实际上,由于进程进入就绪队列的随机模型很难确定,而且进程上 下文切换等也将影响进程的执行效率,从而对进程调度进行解析是很困难的,一般情况下,大多利用模拟或测试系统响应时间的方法来评价进程调度的性能。
3    四种常用进程调度算法的分析与评价
3.1 先来先服务算法
3.1.1 算法思想
    该算法思想是按照进入就绪队列的先后次序来分配处理机。FCFS采用非剥夺调度方式,即一旦某个进程占有处理机,就一直运行下去,直到该进程完成其工作或因等待某一事件而不能继续执行时才释放处理机。
3.1.2 算法实现原理图
    该算法实现原理图如图1所示。

    说明:Ready表示就绪队列,Pi 表示新进入队列的进程,Finish表示进程运行完毕退出。
3.1.3 算法分析与评价
    ① 该算法原理简单,易于实现。
    ② 各进程平等竞争。
    ③ 由于各进程执行的时间不一样,从而导致相对不公平现象的产生。
    ④ 该算法有利于长进程,不利于短进程。
    ⑤ 该算法很少用来作为主调度策略,常常用作辅助调度算法使用
3.2 最高优先权优先调度算法
3.2.1 算法思想
    该算法的基本思想是进程优先权高者优先调度,是一种最常用的进程调度算法。该算法的关键是如何确定优先数。通常确定优先数的方法有两种,即静态法和动态法。
    静态优先权是在创建进程时确定的,其运行特征是优先数确定之后在整个进行运行期间不再改变。确定静态优先权的依据有进程的类型、进程所使用的资源、进程的估计运行时间等因素。进程所申请的资源越多,估计的运行时间越长,进程的优先权越低。进程类型不同,优先权也不同,如系统进程的优先权高于用户进程的优先 权。
    动态优先权是指在创建进程时,其运行特征是根据系统资源的使用情况和进程的当前特点确定一个优先权,在进程运行过程中再根据情况的变化调整优先权。动态优先权一般根据进程占有CPU时间的长短、进程等待CPU时间的长短等因素确定。占有处理机的时间越长,则优先权越低;等待时间越长,则优先权越高。
3.3.2 算法分析与评价
    ① 静态优先级调度算法实现较为简单,但不能反映系统以及进程在运行过程中发生的各种变化。而动态优先级法可以满足这个方面的需要。
    ② 动态优先级调度算法的性能一般介于时间片轮转算法和先来先服务算法之间。
3.3 时间片轮转调度算法
3.3.1
算法思想
    该算法思想是使每个进程在就绪队列中的等待时间与享受服务的时间成比例。即将CPU的处理时间分成固定大小的时间片,如果在执行的一个进程把它分给它的时 间片用完了,但任务还没有完成,则它也只能停止下来,释放它所占的CPU资源,然后排在相应的就绪队列的后面去。
3.3.2 算法实现原理图
    该算法实现原理图如图2所示

    说明:Ready表示就绪队列,Pi 表示新进入队列的进程,Finish表示进程运行完毕退出。Not Finish表示分配给某进程的时间片已用完但任务还没有完成,从而插入到Ready队列尾部。
3.3.3 算法分析与评价
    ① 时间片的长度选择比较困难
时间片的长度选择比较困难是因为时间片长度的选择直接关系到系统开销和进程的响应时间。如果时间片长度过短→导致调度程序剥夺处理器的次数增加 →进程的上下文切换的次数增加→系统的开销也加重;如果时间片长度过长,长到能使就绪队列中所需要执行时间最长的进程执行完毕→轮转法就变成了FCFS算 法→FCFS短处不足就显示出来了。
    又因为CPU的整个执行时间=各进程执行时间之和+系统开销(各进程切换所花费的CPU时间之和,假定存储开销忽略不计)。即, 。因此,时间片的长短通常需要由以下因素确定:
    ↙系统的响应时间。
    ↙就绪队列中的进程数。
    ↙进程的切换时间。
    ↙ 计算机的处理能力,计算机的速度越高,时间片就可越短。
    ② 时间片长度选择的动态性
以上仅仅作了静态分析,通常情况下,就绪队列里地进程个数是不断变化的。因此,每一次的调度都需要计算新一轮的时间片长度,不能用固定的时间片长度来进行所有进程的轮转执行。
    ③ 该算法的扩充——多级反馈轮转法
    在上面的算法中,未对就绪队列中的进程加以条件分析(即进入就绪队列的因素),由于进入就绪队列的原因不一样,要求占用处理机的紧急程度也不一样。主要因素有:
     ↙分给该进程的时间片用完,但进程还未完成。
     ↙ 分给其时间片未用完,而发生了I/O等请求后由阻塞态转变成就绪态。
     ↙新的进程进入。

    因此,根据紧急程度的不一样,建立多个就绪队列,同时赋予不同的的优先级,优先权高的就绪队列优先执行,同一就绪队列中,优先级相同,按照先来先服务进行 调度,运行一个给定的时间片,如果没有执行完成则转入到相应的就绪队列中去(运行一次,优先级降低一个等级,等待一个时间片,则优先级升高一个等级)。其 实现原理图如图3所示。

3.4 短进程优先调度算法
3.4.1 算法思想
    该算法的基本思想是从就绪队列(内存)中选择一个估计运行时间最短的进程,将处理机分配给它。
3.4.2 算法分析与评价
    ① 该算法能有效降低作业的平均等待时间,提高系统吞吐量。
    ② 对长进程不利,甚至导致长期得不到处理。
    ③ 该算法完全未考虑进程的紧迫程度。
    ④ 进程的长短通常由某种策略估计提供,不能做到真正的短进程优先。
4    结语
     综述所述,本文从算法思想、算法的实现原理、算法的优缺点等几个方面对先来先服务算法、时间片轮转算法、最高优先权优先调度算法、短进程优先调度算法等四种进程调度算法进行详细地论述。
(完)


进程调度算法的模拟实现 对比维度FCFS(先来先服务)SJF(短作业优先)RR(时间片轮转)SRTF(最短剩余时间优先)优先级调度调度依据进程到达时间先后进程总执行时间长短(burstTime)固定时间片 + 循环队列进程剩余执行时间动态变化进程优先级设置抢占机制非抢占(一旦运行,直到结束)非抢占时间片用完就抢占(强制切换)抢占式(剩余时间更短则抢占)非抢占(代码默认,可扩展抢占)核心目标保证 “先来后到” 的公平性缩短短进程的周转时间,优化平均周转让所有进程公平共享 CPU 时间。 阅读详情

相关推荐

理解内存页面调度的机理,掌握几种理论调度算法实现,并通过实验比较各种调度算法的优劣。此外通过实验了解HASH表数据结构的使用。

理解内存页面调度的机理,掌握几种理论调度算法实现,并通过实验比较各种调度算法的优劣。此外通过实验了解HASH表数据结构的使用。

操作系统 常见调度算法总结(对比分析表)

【1】操作系统中常见的一些调度算法对比分析 算法名称 算法思想 适用调度场景 是否可抢占 优缺点 是否导致饥饿 先来先服务算法(FCFS) 按照作业/进程到达的先后次序来进行调度 作业调度&进程调度 不可抢占 优点:简单、算法简单;缺点:作业的平均带权周转时间太长,对于短作业不友好 不会 短作业/进程优先算法(SJF/SPF) 要求最短的作业/进程先得到调度 作业调度&进程调度 通常不可抢占,但是有可抢占版本:最短剩余时间优先算法(SRTN) 平均周转时间通常是最短的

zjcoming 5304

【SEED Labs 2.0】V*N Tunneling Lab

本文为 SEED Labs 2.0 - V*N Tunneling Lab 的实验记录。本实验工作量较大,但难度不大,重点在于搞清是谁发给谁,走的什么路径。另外,本次实验由于网络中的设备较多,修改了环境变量方便分清哪个窗口是哪个设备。这样操作起来就方便多了。...

Chenyang的博客 6977

操作系统:实验一:进程调度实验——最高优先数优先的调度算法以及先来先服务算法 源码

操作系统:实验一:进程调度实验——最高优先数优先的调度算法以及先来先服务算法 源码

weixin_53138397的博客 7122

TPS5430/54302调试血泪史:从‘烫手山芋’到冒烟烧板,我的5V电源到底怎么了?

本文深入剖析了TPS5430/TPS54302 DCDC电源芯片调试中的常见问题,包括异常发热、电压漂移等,并提供了从热设计到PCB布局的全面解决方案。通过实战案例,揭示了数据手册中未明确的‘潜规则’,帮助工程师避免烧板风险,提升电源系统稳定性。

weixin_28744423的博客 502

SAP采购订单中项目类别B(限制)的控制逻辑

在笔者所在企业中,框架类采购订单中项目类别需要选择B(限制)。今天笔者从比较全面的角度分析了一下这个项目类别B到底可以决定些什么?控制到什么?先从后台SPRO中打开相应的配置菜单。 打开项目类别B之后,可以看到一些配置信息,这里有一点与其它配置不同的地方,即无法新增项目,也无法修改现有项目。这个疑惑今后再去解决吧。当前只研究项目类别B的控制逻辑。 下面就参考上图中的配置分段来分析和测试其控制逻辑, 1、如项目类别配置图,所需材料值为不允许;经测试,如下图在采购订单创建时,不能输入物料编号条目。

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 6032

【计算机系统】详解进程及进程调度算法(时间片管理、多级队列)

详解进程及其调度算法1 基本概念2 进程调度2.1 时间片管理2.2 调度算法 1 基本概念 进程与程序的关系是:程序是存储在文件中的、带有结构和顺序信息(用于控制指令执行次序)的指令列表,进程是程序的运行实例。通俗来讲,程序描述了如何处理一个事务,进程按程序的描述实际执行之。相同的程序可以多次执行,每次执行操作系统都将创建一个独立的进程,并开始读取指令列表。 图1 进程更正式的定义是:计算机中的程序关于某数据集合的一次运行活动,是系统进行资源分配和调度的最小单位,是操作系统结构的基础。进程是线程的容器,

FRIGIDWINTER的博客 3861

Python自动化车载测试:5分钟搞定CANoe COM接口调用(附完整代码)

本文详细介绍了如何使用Python快速实现CANoe COM接口调用,完成车载测试自动化。通过实战案例展示ECU信号测试框架搭建,包括环境配置、核心架构解析、信号读写封装及多线程安全方案,帮助开发者5分钟内掌握高效测试技巧。

vv45678的博客 1131

操作系统之进程调度算法

操作系统中的进程调度算法进行分析: 1.先来先服务算法(FCFS) 先来先服务算法是按照作业到达的先后次序来进行调度,或者说是优先考虑在系统中等待时间最长的作业,而不管该作业所执行时间的长短,从后备作业中选择几个最先进入该队列的作业,将他们调入内存,为之分配资源和创建进程。然后把他们放入就绪队列。 2.时间片轮转调度算法 在时间片轮转调度算法中,系统根据FCFS策略,将所有的就绪进程排成一个就绪队列,并设置每隔一定的时间间隔产生一次中断,激活系统中的进程调度程序,完成一次调度,将CPU分配给队首进程,令其执

qq_44877135的博客 2000

cadence17.4和16.6同时安装无法使用的问题

经过对报错的问题分析,发现还是17.4的lic文件和16.6的不一样,16.6的版本总是无法找到自己对应的lic文件。卸载了,重新单独安装16.6,这里就是正确的。包括使用这些工具去修复这些问题,都无法接近。已经放弃了,使用哪个版本就安装 哪个版本。这个也无法解决问题。

D_Katter的博客 2324

看GRE协议的数据封装

GRE网络数据封装流程

FanFF的博客 80

3、调度的基本准则与方式

1.面向用户的准则(1) 周转时间短。 通常把周转时间的长短作为评价批处理系统的性能、选择作业调度方式与算法的重要准则之一。 所谓周转时间,是指从作业被提交给系统开始,到作业完成为 止的这段时间间隔(称为作业周转时间)。 - 它包括四部分时间: - 作业在外存后备队列上等待 (作业)调度的时间, - 进程在就绪队列上等待进程调度的时间, - 进程在 CPU 上执行的时间,

www.yiye.tech 4733

Ceph入门到精通-存储桶通知

这 通知还可以根据前缀的匹配项过滤掉事件,并且 (1) 键的后缀,(2) 附加到对象的元数据属性, 或 (3) 对象标签。在此模式下,操作仅在以下之后确认(确认) 通知将发送到主题的已配置终端节点。这意味着 通知的往返时间(发送 通知主题的终端节点以及接收 确认)被添加到操作本身的延迟中。要更新主题,请使用用于创建主题的相同命令(但在 更新时,使用现有主题的名称和不同的终端节点值)。端口:对于未加密的连接,默认为 5672,对于未加密的连接,默认为 5671 SSL 加密连接。(默认情况下,这是“假的”。

隔壁老瓦的专栏 1131

进程调度的几种方式与算法简介

一、调度的概念 调度的基本概念 在多道程序系统中,进程的数量往往多于处理机的个数,因此进程争用处理机的情况在所难免。处理机调度是对处理机进行分配,即从就绪队列中按照一定的算法(公平、高效)选择一个进程并将处理机分配给它运行,以实现进程并发执行。 二、进程调度的方式 当某个进程正在处理机上执行时。若有某个更为重要或紧迫的进程需要处理,即有优先权更高的进程进入就绪队列,此时要考虑以某种方式分配处理机。 ·通常有以下两种进程调度方式: 非剥夺(非抢占)调度方式:当一个进程正在处理机上执行时,即使有某个更为

chinahyn的博客 3万+

全网最全-QCC51xx-QCC30xx(TWS)系列从入门到精通开发教程汇总(持续更新中)

QCC3040开发笔记之基本介绍(0) QCC3040开发笔记之开发环境搭建(1) QCC3040开发笔记之debug调试(trb调试,usbt调试,adb调试,WIFI调试)(2) QCC3040开发笔记之按键配置(3) QCC3040开发笔记之按键切换(4) QCC3040开发笔记之按键逻辑(5) QCC3040开发笔记之tone(6) QCC3040开发笔记之提示音(7) QCC3040开发笔记之bitserial接口(8) QCC3040开发笔记之双mic+AEC+ANC(9...

心跳包的博客 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

操作系统-进程与线程(调度器与闲逛进程,调度算法与评价标准)

最短剩余时间优先算法:每当有进程加入就绪队列,就绪队列改变时就需要调度,如果新到达的进程剩余时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。思路:在每次调度时先计算各个作业/进程的响应比,选择响应比最高的作业/进程为其服务(响应比:(等待时间+要求服务时间)÷要求服务时间。时刻1,此时p2进程到达,p1进程时间片到,p1进程到第二级队列队尾。p2进程进入第一级队列队尾。时刻5,进程p3进程到达,p3进入第一级队列,p2被抢占,p2回到原来队列的队尾,CPU调度p3。

dodamce的博客 2512

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

操作系统-处理机调度、进程调度的时机、切换与过程、方式、调度算法的评价指标、调度算法

文章目录时机什么时候需要进程调度什么时候不能进行进程调度临界区与内核程序临界区切换与过程"狭义的调度"与"切换"的区别进程切换的过程需要做什么方式非掠夺调度方式(非抢占式)掠夺调度方式(抢占式) 时机 什么时候需要进程调度 进程调度:也就是低级调度,按某种算法从就绪队列中选择一个进程为其分配处理机 当前进程主动放弃处理机 *进程正常终止 *运行过程中发生异常而终止 *进程主动请求阻塞(如 等待I/O) 当前进程被动放弃处理机 *分给进程的时间片用完 *有更紧急的是需要处理(如 I/O中断) *有更高优先级

m0_50534425的博客 1285

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

进程调度之FCFS&&SJF算法(C语言版)

【实验题目】 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。 【实验内容】 设计程序模拟进程的先来先服务FCFS和短作业优先SJF调度过程。假设有n个进程分别在T1, … ,Tn时刻到达系统,它们需要的服务时间分别为S1, … ,Sn。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。 注: 周转时间=作业完成时刻—作业到达时刻; 带权周转

录大大i的博客 4806

【处理机调度、进程调度相关内容、调度算法的评价指标】

它包括四个部分:作业在外存后备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等待进程调度(低级调度)的时间、进程在CPU上执行的时间、进程等待I/O操作完成的时间。在多道程序系统中,进程的数量往往是多于处理机的个数的,这样不可能同时并行地处理各个进程。有的作业运行时间短,有的作业运行时间长,因此在周转时间相同的情况下,运行时间不同的作业,给用户的感觉肯定是不一样的。对无周转时间相同的两个作业,实际运行时间长的作业在相同时间内被服务的时间更多,带权周转时间更小,用户满意度更高。

我的博客 623

操作系统课程设计——进程调度(附c++代码)

进程调度是操作系统中的一项关键功能,负责决定在什么时间由哪个进程使用CPU。调度的目标是提高系统效率和用户满意度。在本次课程设计中,涉及三种典型进程调度算法:非抢占短进程优先(NPSPP)算法、可抢占优先权调度(PPSA)算法以及多级反馈队列(MLFQ)调度算法。

qq_34066926的博客 3938

基本进程调度算法

到目前为止,我们所讨论的所有调度算法都基于一个基本假设:每个任务的运行时间是可以预测的,实际上,这是无法做到的。在下一篇文章中,我们将不使用这个假设,再给出一些调度策略。

静下心来,做好每一件事 852

常见的几种进程调度算法

操作系统进程的调度算法 先来先服务(FCFS) 算法思想:主要从“公平”的角度考虑(类似于我们生活中排队买东西的例子) 算法规则:按照作业/进程到达的先后顺序进行服务 用于作业/进程调度: 是否可抢占:非抢占的算法 优缺点: 优点:公平、算法实现简单; 缺点:排在长作业后面的短作业需要等待很长时间,带权周转时间很大,对短作业来说体验很不好。 是否会导致饥饿:不会 短作业优先(SJF) ...

编程小白养成手记 2520

【操作系统】 2.2 调度概念以及调度算法

手中有粮,心中不慌。

小新的博客 4327

进程调度算法

什么是调度算法 在 操作系统中调度是指一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的的系统和系统目标,通常采用不同的调度算法,例如,在 批处理系统中,为了照顾为数众多的段作业,应采用短作业优先的调度算法;又如在 分时系统中,为了保证系统具有合理的响应时间,应当采用轮转法进行调度。目前存在的多种调度算法中,有的算法适用于 作业调度,有的算法适用于 进程调度;但...

weixin_44456232的博客 536

王道考研:作业调度、内存调度、进程调度;进程的挂起状态;进程调度的时机、闲逛进程;调度算法的评价指标;不同调度算法性能的对比分析

作业调度、内存调度、进程调度;进程的挂起状态;进程调度的时机、闲逛进程;调度算法的评价指标;不同调度算法性能的对比分析

Tandy12356_的博客 723
上一篇: Ubuntu系统下GTK安装
下一篇: 《Windows核心编程》第1章 对程序错误的处理
StanMouse
博客等级 码龄16年 3粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值