进程的调度常用算法

news2024/11/15 11:15:09

目录

先来先服务(FCFS)调度算法

短作业优先(SJF)的调度算法

基于时间片的轮转调度(RR)算法


先来先服务(FCFS)调度算法

系统将按照作业到达的先后次序来进行作业调度,或者说它是优先考虑在系统中等待时间最长的作业,而不管该作业所需执行时间的长短,从后备作业队列中优先选择几个最先进入该队列的作业,将他们调入内存,为他们分配资源和创建进程。然后把它放入就绪队列。当在进程调度中采用FCFS算法时,每次调度是从就绪的进程队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而组赛后,进程调度程序才将处理机分配给其他进程。
在进程调度中采用先来先服务算法的时候,每次调度就从就绪队列中选一个最先进入该队列的进程,为之分配处理机,即谁第一排队谁就先被执行。

优点:

  1. 有利于长作业(进程)   
  2. 有利于CPU繁忙型的作业(进程)

缺点:

  1. 不利于短作业(进程)   
  2. 不利于I/O繁忙型的作业(进程)

短作业优先(SJF)的调度算法

SJF算法是以优先级作业的长短来计算优先级的,作业越短,其优先级越高,作业的长短是以作业所要求的运行时间来衡量的。SJF算法可以分别用于作业调度和进程调度。再把短作业优先调度算法用于作业调度时,它将从外存的作业后背队列张选择若干个运行时间最短的作业,优先将他们调入内存运行。

短进程优先调度算法是从就绪队列中选出一个估计运行时间最短的进程,再将处理机分配给它,直到执行完成,而其他进程一般不抢先正在执行的进程。

优点:

  1. 算法对长作业(进程)不利(长作业(进程)长期不被调度)    
  2. 未考虑进程的紧迫程度
  3. 由于是估计运行时间而定,而这个时间是由用户所提供的,所以该算法不一定能真正做到短作业优先调度

基于时间片的轮转调度(RR)算法

为了保证能及时响应用户的请求,所以我们采用了基于时间片的轮转调度算法,它的原理通俗来讲就是队列中每一个进程都获得了一定的执行时间,从几ms到几百ms,当一个执行时间结束,计时器会发出一个信号,此时正在执行的进程将被中断,同时此进程将被放在队列的末尾,然后执行这时候的队列的队首进程,因此队列中每一个进程都将获得一定时间执行。

RR算法(时间片轮转,假设时间片 q =1,q=2,q=4)来完成这些作业的调度情况
由于q=1,所以说明一次只能够运行一个
同理q=2,所以说明一次只能够运行两个
同理q=4,所以说明一次只能够运行四个

周转时间=完成时间-到达时间

带权周转时间=周转时间 / 服务时间

q=1

A

A

B

A

B

C

B

D

C

B

E

D

C

B

E

D

C

B

D

D

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

q=2

A

B

A

C

B

D

C

E

B

D

D

2

4

5

7

9

11

13

15

17

19

20

q=4

A

B

C

D

B

E

D

3

7

11

15

17

19

20

进程名

A

B

C

D

E

平均

q=1

到达时间

0

2

4

6

8

服务时间

3

6

4

5

2

完成时间

4

18

17

20

15

周转时间

4

16

13

14

8

10.8

带权周转时间

1.33

2.67

3.25

2.8

3.5

2.71

q=2

完成时间

5

17

13

20

15

周转时间

5

15

9

14

7

10.6

带权周转时间

1.67

2.5

2.25

2.8

3.5

2.54

q=4

完成时间

3

17

11

20

19

周转时间

3

15

7

14

11

10

带权周转时间

1

2.5

1.75

2.8

5.5

2.71

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

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

相关文章

RT-Thread 5.0.1 qemu-virt64-aarch64 解决网络问题

参考文章 qemu 源码编译 qemu-system-aarch64 的方法 RT-Thread 5.0.1 qemu-virt64-aarch64 解决编译问题 前言 最近需要使用 RT-Thread qemu-virt64-aarch64,验证 aarch64 平台,也就是 ARM64 平台的一些网络功能,需要开启 qemu-virt64-aa…

UE4/5用贴图和GeneratedDynamicMeshActor曲面细分与贴图位移制作模型

目录 制作逻辑: ​编辑 曲面细分函数: 添加贴图逻辑: 代码: 制作逻辑: 在之前的文章中,我们使用了网格细分,而这一次我们将使用曲面细分函数,使用方法和之前是一样的&#xff1a…

高精度定位|RTK定位模块常见应用领域_厘米级室外定位解决方案

在室外场景,北斗、GPS等GNSS定位技术在持续的演变,精度越来越高,应用面也越来越广。随着新基建热潮的到来,借助5G新基建,无人驾驶、自动驾驶等技术正在逐步完善,对于定位的需求已经不仅仅只是粗略的轨迹&am…

uniapp-ios打包步骤

前置条件:已申请Apple ID并注册Apple Developer Program 一、登录苹果开发者官网 登录:https://developer.apple.com/ 点击账户(Account)进行登录,登录成功出现如下页面 二、创建证书、标识符、描述文件等 点击…

vue3基本指令使用

<script setup lang"ts"> import {ref} from vue //响应式数据 const num: number 1 const arr1: number[] [1, 2, 3, 4, 5] const str: string "我是一段文字" const htmlstr: string <section style"color:red">我是一个secti…

微服务-基于Docker安装Sentinel

目录 1、拉取Sentinel镜像 2、构建Sentinel容器 3、访问Sentinel 1、拉取Sentinel镜像 代码&#xff1a; docker pull bladex/sentinel-dashboard:1.8.0 实例&#xff1a; rootlocalhost howlong]# docker pull bladex/sentinel-dashboard:1.8.0 1.8.0: Pulling from blade…

集合及Collection集合

1&#xff1a;集合特点&#xff1a; 集合的大小不确定&#xff0c;启动后可以动态变化&#xff0c;类型也可以选择不固定。集合更像气球集合非常适合做元素的增删操作注意&#xff1a;集合只能存储引用类型数据&#xff0c;如果要存储基本类型数据可以选用包装类。 2&#xf…

2.FreeRTOS系统任务调度简介及任务状态

目录 一、基础知识 1、FreeRTOS 任务状态 (1)运行态 (2)就绪态 (3) 阻塞态 (4) 挂起态 二、任务调度简介 1.抢占式调度 2.时间片调度 3.协程式调度 一、基础知识 1、FreeRTOS 任务状态 FreeRTOS 中任务存在四种任务状态&#xff0c;分别为运行态、就绪态、阻塞态和挂…

Word模板替换,并转PDF格式输出,Linux服务器乱码问题解决

Poi-tl参考文档地址&#xff1a;http://deepoove.com/poi-tl/1.8.x/#hack-loop-table word模板替换&#xff0c;转pdf 1. 依赖引入&#xff1a;2. word模板配置&#xff1a;3. 示例demo:4 . 效果图5. 本地测试没问题&#xff0c;上Linux服务乱码&#xff0c;出现小方框 1. 依赖…

Python———运行环境搭建

不管用什么工具开发 Python 程序&#xff0c;都必须安装 Python 的运行环境。 目前最常用的是Windows 、 Linux 平台。这里 我们以Windows10为主讲解。 其实编程和平台关系不大。大家也可以使用Linux、Mac。 Windows 平台下 Python 环境搭建 第一步&#xff1a;进入 python 官…

python绘制热力图,数据来源pandas.dataframe

通过pandas.dataframe绘制热力图&#xff0c;并标出颜色最深即z轴数据最大的点。 import matplotlib.pyplot as plt import pandas as pd import numpy as npclass Heatmap:def __init__(self, data, marker*, marker_colorwhite, marker_size10):self.data dataself.size l…

排序的概念,插入排序,希尔排序,选择排序

文章目录 排序的概念排序的概念&#xff1a;排序运用常见的排序与时间复杂度 插入排序希尔排序希尔排序的概念希尔排序总结 选择排序概念 排序的概念 排序的概念&#xff1a; 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小…

【复习《剑指Offer》13-17题】【每天40分钟,我们一起用50天刷完 (剑指Offer)】第十三天 7/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

什么是精益创业?精益创业的核心方法有哪些?

《经理人参阅&#xff1a;创业管理学》是一本非常有价值的创业类书籍&#xff0c;为创业者提供了许多实用的方法和经验&#xff0c;特别是关于精益创业方面的内容。精益创业是一种以快速验证假设为核心的创业方法&#xff0c;它可以帮助创业者在最短的时间内找到最有效的商业模…

Kafka跨集群备份解决方案MirrorMaker

文章目录 1 什么是 MirrorMaker&#xff1f;2 运行 MirrorMakerMirrorMaker 配置实例第 1 步&#xff1a;启动两套 Kafka 集群第 2 步&#xff1a;启动 MirrorMaker 工具第 3 步&#xff1a;验证消息是否拷贝成功 3 其他跨集群镜像方案4 小结 一般情况下&#xff0c;我们会使用…

Win2008下使用IIS+URL重写+Server Farms在同一台服务器实现混合 多域名网站与多个负载平衡集群网站 共存,配置及域名绑定笔记

因公司要在现有云服务器增加负载平衡集群网站&#xff0c;但要保证现有在用网站不动&#xff0c;操作系统为Win2008。 以前没有配置过IIS的负载平衡&#xff0c;只能百度一下&#xff0c;实现也简单&#xff1a;只要安装URL重写Server Farms就能实现负载平衡集群网站。于是根据…

IMX6ULL系统移植篇-uboot的烧写与运行

一. uboot 配置与编译 本文来学习 uboot的烧写&#xff0c;承接之前 uboot的配置与编译篇&#xff0c;博文如下&#xff1a; IMX6ULL系统移植篇-uboot的配置与编译_凌肖战的博客-CSDN博客 二. uboot的烧写 uboot 编程成功后&#xff0c;会在 uboot的根目录下生成 u-boot.b…

CentOS Linux的最佳替代方案(三)_银河麒麟Kylin Linux Advanced Server V10 SP2 for X86安装教程

文章目录 CentOS Linux的最佳替代方案&#xff08;三&#xff09;_银河麒麟Kylin Linux Advanced Server V10 SP2 for X86安装教程1 银河麒麟Kylin Linux Advanced Server V10简介1.1 同源构建1.2 自主CPU平台深入优化1.3 虚拟化及云原生支持1.4 高可用性1.5 可管理性1.6 内生本…

java阻塞队列/kafka

queue增加删除元素 增加元素 add方法在添加元素的时候&#xff0c;若超出了度列的长度会直接抛出异常&#xff1a;put方法&#xff0c;若向队尾添加元素的时候发现队列已经满了会发生阻塞一直等待空间&#xff0c;以加入元素offer方法在添加元素时&#xff0c;如果发现队列已满…

PCL点云处理之沿着法向量投影点云到平面 (一百九十四)

即使你很爱她,也要保留一些尊严 PCL点云处理之沿着法向量投影点云到平面 (一百九十四) 一、算法介绍二、具体实现1.代码(详细注释)2.效果一、算法介绍 实现这样的目标:沿着法向量,将点云投影到一个平面上 具体步骤: 1计算整个点云的法向量,来确定平面方向 2选择某一点…