操作系统--------调度算法篇
目录
一.先来先服务调度算法(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)
| 进程 | A | B | C | D | E | 平均 |
| 到达时间 | 0 | 2 | 4 | 6 | 8 | |
| 服务时间 | 3 | 6 | 4 | 5 | 2 | |
| 完成时间 | 3 | 9 | 15 | 20 | 11 | |
| 周转时间 | 3 | 2 | 11 | 14 | 3 | 8.6 |
| 带权周转时间 | 1 | 0.33 | 2.75 | 2.8 | 1.5 | 2.56 |
短作业优先(SJF)
非抢占
| 进程 | A | B | C | D | E | 平均 |
| 到达时间 | 0 | 2 | 4 | 6 | 8 | |
| 服务时间 | 3 | 6 | 4 | 5 | 2 | |
| 完成时间 | 3 | 9 | 13 | 18 | 20 | |
| 周转时间 | 3 | 7 | 9 | 12 | 12 | 7.6 |
| 带权周转时间 | 1 | 1.17 | 2.25 | 2.4 | 6 | 1.84 |
抢占
| 进程 | A | B | C | D | E | 平均 |
| 到达时间 | 0 | 2 | 4 | 6 | 8 | |
| 服务时间 | 3 | 6 | 4 | 5 | 2 | |
| 完成时间 | 3 | 15 | 8 | 20 | 10 | |
| 周转时间 | 3 | 13 | 4 | 14 | 2 | 7.2 |
| 带权周转时间 | 1 | 2.16 | 1 | 2.8 | 1 | 1.59 |
高响应比优先 (HRRN)
| 进程 | A | B | C | D | E | 平均 |
| 到达时间 | 0 | 2 | 4 | 6 | 8 | |
| 服务时间 | 3 | 6 | 4 | 5 | 2 | |
| 完成时间 | 3 | 9 | 13 | 20 | 15 | |
| 周转时间 | 3 | 7 | 9 | 14 | 7 | 8 |
| 带权周转时间 | 1 | 1.17 | 2.25 | 2.8 | 3.5 | 2.14 |
时间片轮转(RR,q=1)
| 进程 | A | B | C | D | E | 平均 |
| 到达时间 | 0 | 2 | 4 | 6 | 8 | |
| 服务时间 | 3 | 6 | 4 | 5 | 2 | |
| 完成时间 | 4 | 18 | 17 | 20 | 15 | |
| 周转时间 | 4 | 16 | 13 | 14 | 7 | 10.8 |
| 带权周转时间 | 1.33 | 2.67 | 3.25 | 2.8 | 3.5 | 2.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四层模型,它们的提出都有一个共同的目的:通过分层来将复杂问题细化,通过各个层级之间的相互配合来更好的解决计算机中出现的问题。 说到分层…...
下载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服务器已经运行ÿ…...
RocketMQ 源码分析——Producer
文章目录 消息发送代码实现消息发送者启动流程检查配置获得MQ客户端实例启动实例定时任务 Producer 消息发送流程选择队列默认选择队列策略故障延迟机制策略*两种策略的选择 技术亮点:ThreadLocal 消息发送代码实现 下面是一个生产者发送消息的demo(同步发送&#…...
ISTQB术语表
此术语表为国际软件测试认证委员会(ISTQB)发布的标准术语表。此表历经数次修改、完善,集纳了计算机行业界、商业界及政府相关机构的见解及意见,在国际化的层面上达到了罕有的统一性及一致性。参与编制此表的国际团体包括澳大利亚、…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
