首页 > 系统相关 >(进程管理)05.进程的调度算法

(进程管理)05.进程的调度算法

时间:2023-06-10 18:55:34浏览次数:53  
标签:优先级 05 队列 作业 调度 算法 进程

(进程管理)05.进程的调度算法

 

进程调度,就是绪状态的进程获得 CPU 的使用权,进程由就绪状态转变成运行状态。

进程调度可以分为:

抢占式 系统会根据进程的优先级高低来进行调度,进程之间可以插队
非抢占式 系统按照先来先服务的方式来调度,进程间不能插队

进程调度算法有很多,比较常用的调度算法如下:

1、先来先服务 first come first serve (FCFS)

先来的进程先被调度,这种算法很公平,但是如果执行的是一个长作业,那么后面的短作业将会被长时间搁置,造成短作业饥饿。

2、短作业优先 shortest job first (SJF)

为了避免短作业饥饿的情况,就优先把短作业都执行完,然后再执行长作业。这样又会引发另一个问题,那就是如果短作业非常多,那么容易导致长作业将不会被执行,又会造成长作业饥饿。

3、时间片轮转 round serve (RS)

时间片轮转就是轮询,定义一个时间片的长度,然后平均给每个进程分配时间片,一旦时间片用完,此时作业未执行完,作业就会从运行状态转变成就绪状态,等待被重新调度。如果作业比较多,那这样容易造成长作业需要轮转好久才能执行完。

4、多级反馈队列

该算法设置了不同的队列,可以分类为高、中、低优先级队列,并且优先级越高,分配的时间片就越短,反之优先级越低,分配时间片越长。首先,先进来的作业会进入高优先级;如果没有被执行完,就会压入中优先级队列;如果还没执行完再压入低优先级队列。只有上一个队列的进程被执行完,才能执行当前队列的进程。

这种算法还是无法有效避免长作业饥饿的情况,因为只有高优先级队列没有进程,才会执行下一级别的队列。假如上一级的队列一直有进程,那么下一级别的队列的进程将会饥饿。

5、高响应比优先

这种算法是在短作业优先调度算法的基础上,加上一个随着时间累计而叠加的权重机制。

系统会根据优先级来决定进程执行的先后,但同时为了确保那些等待时间长的进程也能被执行,那么就会结合进程等待的时间来更新进程的权重。其中等待时间越长,那么权重越高。

这种算法既可以优先完成短作业,又能确保长作业不至于长期饥饿,是一个折中的算法。

 

标签:优先级,05,队列,作业,调度,算法,进程
From: https://www.cnblogs.com/wangprince2017/p/17471752.html

相关文章

  • 算法刷题记录:P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
    题目链接https://www.luogu.com.cn/problem/P1328题目分析是一道和环有关的问题,直接模拟即可AC代码//Problem:P1328[NOIP2014提高组]生活大爆炸版石头剪刀布//Contest:Luogu//URL:https://www.luogu.com.cn/problem/P1328//MemoryLimit:125MB//TimeLimit......
  • DES加密算法及Python实现
    一、DES加密算法原理DES加密算法是一种对称密钥的块加密算法,1976年成为美国联邦标准。其加密流程如下:密钥的生成:将64位密钥按照置换选择1表进行置换,得到56位的密钥,并分成左右两部分各28位。然后使用16个不同的演算法对密钥进行处理,生成16个48位子密钥。明文分组:将明文分成64位的块,......
  • Python+sklearn使用DBSCAN聚类算法案例一则
    DBSCAN聚类算法概述:DBSCAN属于密度聚类算法,把类定义为密度相连对象的最大集合,通过在样本空间中不断搜索最大集合完成聚类。DBSCAN能够在带有噪点的样本空间中发现任意形状的聚类并排除噪点。DBSCAN算法不需要预先指定聚类数量,但对用户设定的参数非常敏感。当空间聚类的密度不均匀、......
  • Python+sklearn使用支持向量机算法实现数字图片分类
    关于支持向量机的理论知识,大家可以查阅机器学习之类的书籍或网上资源,本文主要介绍如何使用Python扩展库sklearn中的支持向量机实现数字图片分类。1、首先编写代码生成一定数量的含有数字的图片上面代码运行会生成80000张含有数字0到9的图片,并加入随机干扰,交换相邻两个像素的颜色。......
  • 算法刷题记录:P4924 [1007]魔法少女小Scarlet
    题目链接https://www.luogu.com.cn/problem/P4924题目分析题意为将以[x,y]为中心某个矩阵,逆时针/顺时针旋转。所以其本质就是矩阵的旋转,所以找出通项公式即可。通项公式:顺时针:x后=x+y-y原,y后=y-x+x原逆时针:x后=x-y+y原,y后=x+y-x原AC代码//Problem:P4924[1007]魔法少......
  • nginx优化配置进程数与cpu亲和性之间的关系,你真正了解吗???
    关于nginx的进程数的配置,以及cpu亲和性的配置,大家能了解多少呢? worker_processes:配置线程数在高并发的web服务器场景下,并发实际是有进程处理,那么为了保障处理并发,线程数肯定要事先启动足。打个比方就像是开餐厅,开业之前需要招聘相对数量的服务员来接待客户。而worker_process......
  • Python+sklearn使用逻辑回归算法预测期末考试能否及格
    封面图片:《Python程序设计实验指导书》,董付国编著,清华大学出版社=================虽然名字中带有“回归”二字,但实际上逻辑回归是一个用于分类的线性模型,通常也称作最大熵分类或对数线性分类器。在该模型中,描述单个可能输出结果的概率通过一个逻辑函数进行建模。逻辑回归的因变量......
  • Python多进程使用队列共享数据协同判断素数
    感谢江西师范大学李雪斌老师提供素材和第一版本代码。问题描述:创建两个队列,qIn用来存储指定范围内的整数,qOut用来存放该范围内的所有素数。创建多个进程,每个进程依次从qIn队列中获取整数,并判断是否为素数,如果是素数则存入qOut。技术要点:1)使用Python标准库multiprocessing创建和管理......
  • Python+sklearn决策树算法使用入门
    在学习决策树算法之前,首先介绍几个相关的基本概念。决策树算法原理与sklearn实现简单地说,决策树算法相等于一个多级嵌套的选择结构,通过回答一系列问题来不停地选择树上的路径,最终到达一个表示某个结论或类别的叶子节点,例如有无贷款意向、能够承担的理财风险等级、根据高考时各科成......
  • 3.2 KNN算法(k-近邻算法)
    1.什么是k-近邻算法例如:如果你不知道你现在在哪,你可以通过你和你的邻居的距离推算出你的位置你的“邻居”来推断出你的类别2.原理2.1定义如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。就是看看样......