当前位置: 首页 > news >正文

操作系统--------调度算法篇

目录

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

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

2.1.SJF调度算法缺点

三.优先级调度算法

3.1优先级调度算法的类型

1.非抢占优先级调度算法

2.抢占优先级调度算法

3.2优先级的类型

3.1静态优先级

3.2动态优先级

3.3高响应比优先调度算法(HRRN)

四.轮转调度算法(RR)

4.1进程切换时机

例题


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

该算法可用于作业调度,也可用于进程调度

当在作业调度中采用该算法时,系统将按照作业到达的先后次序来进行调度,或者说它会有限考虑在系统中等待时间最长的作业,而不管作业执行时间的长短

补充说明,FCFS调度算法在单处理机系统中已很少作为主要调度算法了,但通常会将它与其他调度算法结合使用,进而形成一种更为有效的调度算法

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

SJF调度算法是以作业的长短来计算优先级的,作业越短,其优先级越高;作业的长短是以作业所要求的运行时间来衡量的

当SJF调度算法用于进程调度时,它将从就绪队列中选择估计运行时间最短的进程,并为之分配CPU运行

2.1.SJF调度算法缺点

1.必须预先知道作业的运行时间

2.对长作业非常不利,长作业的周转时间会明显增强

3.当采用SJF调度算法时,无法实现人机交互

4.SJF调度算法完全没有考虑作业的紧迫程度,故不能保证紧迫性作业能得到及时处理

三.优先级调度算法

基于进程的紧迫程度,由外部赋予进程相应的优先级的,会根据该优先级进行调度。这样可以保证紧迫性进程优先运行。

优先级调度算法可用于作业调度,也可用于进程调度。当该算法用于作业调度时,系统将从后备队列中选择优先级最高的作业装入内存;当该算法用于进程调度时,系统将从就绪队列中选择具有最高优先级的进程在CPU运行

3.1优先级调度算法的类型

1.非抢占优先级调度算法

该算法规定,一旦把处理机分配给就绪队列中优先级最高的进程,在进程便会一直执行下去,直至完成或者当该进程因发生某事件而放弃处理器时,系统方将处理机重新分配给优先级次高的进程

2.抢占优先级调度算法

该算法规定再把处理机分配给优先级最高的进程,并使之执行时只要出现另一个优先级更高的进程,调度程序就会将处理机分配给新到的优先级更高的进程

3.2优先级的类型

3.1静态优先级

静态优先级是在创建进程时确定的,其在进程的整个运行期间保持不变,优先级是利用某一范围内的一个整数(如0~255的某一整数)来表示的,我们把该整数称为优先数

确定进程优先级大小的依据有3个:

1.进程类型,通常系统进程( 如接收进程,对换进程等)的优先级要高于一般用户进程的优先级

2.进程对资源的需求,对资源要求少的进程应被赋予较高的优先级

3.用户要求,根据进程的紧迫程度以及用户所付费用的多少,确定优先级

3.2动态优先级

动态优先级是在创建进程之初先赋予进程一个优先级,然后优先级会随进程的推进或等待时间的增加而改变,以便获得更好的调度性能

3.3高响应比优先调度算法(HRRN)

高响应比优先调度算法是优先级调度算法的一个特例,通常用于作业调度调度算法则是既考虑了作业的等待时间,又考虑了作业的运行时间,因此其既照顾了短作业,又不会致使长作业的等待时间过长,从而改善了处理机调度的性能

优先级的变化规律可表示为:
                                              优先级=(等待时间+要求服务时间)/ (除以) 要求服务时间

由于等待时间与要求服务时间之和就是系统对该作业的响应时间,故该优先级又相当于响应比   =(等待时间+要求服务时间)/ 要求服务时间

            =   响应时间 / 要求服务时间

由上式可以看出 : 1.如果作业的等待时间相同,则要求服务时间越短,优先级越高,有利于短作业  2.当作业的要求服务时间相同时,其优先级又取决于等待时间 3.对于长作业的优先级,其可随等待时间的增加而提高,当作业的等待时间足够长时,其也可获得处理机

四.轮转调度算法(RR)

在分时系统中,最简单也是最常用的进程调度算法是基于时间片的轮转调度算法

4.1进程切换时机

在RR调度算法中,应在何时进行进程切换,可分为两种情况。①若一个时间片尚未用完而正在运行的进程便已经完成,则立即激活调度程序,将已经运行完成的进程从就绪队列中删除,再调度就绪队列中新的队首进程运行,并启动一个新的时间片。②当一个时间片用完时,计时器中断处理程序会被激活,此时,如果进程尚未运行完毕,调度程序就把它送往就绪队列的末尾

例题

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

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

先来先服务 (FCFS)

进程ABCDE平均
到达时间02468
服务时间36452
完成时间39152011
周转时间32111438.6
带权周转时间10.332.752.81.52.56

短作业优先(SJF)

非抢占

进程ABCDE平均
到达时间02468
服务时间36452
完成时间39131820
周转时间37912127.6
带权周转时间11.172.252.461.84

抢占

进程ABCDE平均
到达时间02468
服务时间36452
完成时间31582010
周转时间31341427.2
带权周转时间12.1612.811.59

高响应比优先 (HRRN)

进程ABCDE平均
到达时间02468
服务时间36452
完成时间39132015
周转时间3791478
带权周转时间11.172.252.83.52.14

时间片轮转(RR,q=1) 

进程ABCDE平均
到达时间02468
服务时间36452
完成时间418172015
周转时间4161314710.8
带权周转时间1.332.673.252.83.52.71

博主是从学校老师那里学的操作系统,还有很多不足之处,以上只是博主自己的理解

不足之处,还望大佬补充,我一定加以修改

博主会更加努力去学习操作系统,请期待博主下一篇文章 

猫猫跟你说,每天进步一点点,在未来的某一天,一定会看到见到!!

人只有坚持把自己变好,就真的会越来越好!!

让我们一起加油吧!!!!

相关文章:

操作系统--------调度算法篇

目录 一.先来先服务调度算法(FCFS) 二.短作业优先调度算法(SJF) 2.1.SJF调度算法缺点 三.优先级调度算法 3.1优先级调度算法的类型 1.非抢占优先级调度算法 2.抢占优先级调度算法 3.2优先级的类型 3.1静态优先级 3.2动态…...

宝塔composer 安装laravel依赖出现的问题

环境宝塔、PHP版本8.0.2、laravel9 问题1:PHP Fatal error: Uncaught Error: Call to undefined function Composer\XdebugHandler\putenv() 办法:把PHP版本disable_functions这个中的putenv去掉,这个意思就是putenv被PHP对应的版本禁用了&…...

OpenCV自学笔记二十四:支持向量机

在OpenCV中,支持向量机(Support Vector Machine,简称SVM)算法的实现包含在ml模块中。SVM是一种常用的监督学习算法,主要用于分类问题。 SVM的原理:通过在特征空间中找到一个最优超平面,将不同类…...

网络初识

一 IP 地址 概念: IP 地址主要用于表示网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址 格式 IP 地址是一个32为的二进制数,通常被分割为4个“8位二进制数“(也就是4个字节&…...

极坐标和直角坐标的雅克比矩阵推导

我们经常需要在一些问题中研究坐标系的关系,这里讲讲最常见的极坐标和直角坐标的雅克比矩阵的推导。以二维坐标为例,三维坐标也是同理。 1. 直角坐标和极坐标 直角坐标表示为 ( x , y ) (x,y) (x,y),极坐标表示为 ( ρ , φ ) (\rho,\varph…...

经管博士科研基础【25】概率论中的相关基础概念

1. Support 在概率论中,"support"(支撑集)是指随机变量可能取值的集合。对于离散型随机变量,支撑集包含了所有可能的取值;而对于连续型随机变量,支撑集是指其密度函数或概率质量函数非零的区域。…...

计算机网络的相关知识点总结(一)

1.谈一谈对OSI七层模型和TCP/IP四层模型的理解? 不管是OSI七层模型亦或是TCP/IP四层模型,它们的提出都有一个共同的目的:通过分层来将复杂问题细化,通过各个层级之间的相互配合来更好的解决计算机中出现的问题。 说到分层&#xf…...

下载github.com上的依赖资源

下载github.com上的依赖资源(需要反复试才能成功,所以单独安装) export GIT_TRACE1 export GIT_CURL_VERBOSE1 pip install githttps://github.com/PanQiWei/AutoGPTQ.git -i https://pypi.mirrors.ustc.edu.cn/simple --trusted-hostpypi.mi…...

编写 GPT 提示词的公式 + 资源分享

GPT 能够给我们带来很大的帮助,因此我们要好好利用它。我们希望 GPT 输出令我们满意的内容,影响 GPT 输出内容的因素有模型和输入(Prompt,提示词)。 模型:我们可以选择不同的 GPT 产品,它们的模…...

用HTML、CSS和JavaScript制作的通用进制转换器

随着编程和计算机科学越来越受欢迎,我们经常需要进行进制转换。本文将介绍一个简洁、美观、适用于移动设备的进制转换工具,并详细讨论其实现。 目录 🌍 用HTML、CSS和JavaScript制作的通用进制转换器 1.项目图片展示 2. 技术栈 3. 主要功…...

ArcGIS 10.3软件安装包下载及安装教程!

【软件名称】:ArcGIS 10.3 【安装环境】:Windows 【下载链接 】: 链接:https://pan.baidu.com/s/1K5ab7IHMYa23HpmuPkFa1A 提取码:oxbb 复制这段内容后打开百度网盘手机App,操作更方便哦 软件解压码点击原文…...

【数据增强】

【数据增强】 1 数据增强的情形2 数据增强的方法 1 数据增强的情形 当数据比较小,难以获取新的训练数据时,可以考虑数据增强,如随机裁剪部分,随机左右上下翻转、随机旋转一个角度、随机亮度变化等微小变化,数据的多样…...

Ae 效果:CC Force Motion Blur

时间/CC Force Motion Blur Time/CC Force Motion Blur CC Force Motion Blur (CC 强制运动模糊)主要用于为动态图像添加强制的运动模糊效果,增加动态画面的流畅感和真实感。 相对于时间轴面板上的“运动模糊”开关,CC Force Moti…...

2023华为杯研究生数学建模竞赛CDEF题思路+模型代码

全程更新华为杯研赛CDEF题思路模型及代码,大家查看文末名片获取 华为杯C题思路分析 问题一 在每个评审阶段,作品通常都是随机分发的,每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性,不同专家评审的作…...

FP独立站之黑科技:AB站收款、斗篷CLOAK

最近一段时间经常有不少小伙伴来咨询我独立站的相关的业务,因为很多独立站卖家觉得独立站不好做,再加上跨境平台禁止特货类产品的销售(如FP产品、成人用品、电子烟、灰黑类产品等等),但这类产品市场需求大,…...

【Linux网络编程】gdb调试技巧

这篇博客主要要记录一下自己在Linux操作系统Ubuntu下使用gbd调试程序的一些指令,以及使用过程中的一些心得。 使用方法 可以使用如下代码 gcc -g test.c -o test 或者 gcc test.c -o test ​ -g的选项最好添加,如果不添加,l指令无法被识别 …...

ElementUI之登录与注册

目录 一.前言 二.ElementUI的简介 三.登录注册前端界面的开发 三.vue axios前后端交互--- Get请求 四.vue axios前后端交互--- Post请求 五.跨域问题 一.前言 这一篇的知识点在前面两篇的博客中就已经详细详解啦,包括如何环境搭建和如何建一个spa项目等等知识…...

报错处理:Error: Redis server is running but Redis CLI cannot connect

嗨,读者朋友们!今天我来跟大家分享一个我在运维过程中遇到的一个关于Linux上运行Redis服务时的报错及解决方法。 报错信息如下: Error: Redis server is running but Redis CLI cannot connect 这个报错信息表明Redis服务器已经运行&#xff…...

RocketMQ 源码分析——Producer

文章目录 消息发送代码实现消息发送者启动流程检查配置获得MQ客户端实例启动实例定时任务 Producer 消息发送流程选择队列默认选择队列策略故障延迟机制策略*两种策略的选择 技术亮点:ThreadLocal 消息发送代码实现 下面是一个生产者发送消息的demo(同步发送&#…...

ISTQB术语表

此术语表为国际软件测试认证委员会(ISTQB)发布的标准术语表。此表历经数次修改、完善,集纳了计算机行业界、商业界及政府相关机构的见解及意见,在国际化的层面上达到了罕有的统一性及一致性。参与编制此表的国际团体包括澳大利亚、…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

浅谈不同二分算法的查找情况

二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况&#xf…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

day36-多路IO复用

一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...