操作系统--------调度算法篇
目录
一.先来先服务调度算法(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)发布的标准术语表。此表历经数次修改、完善,集纳了计算机行业界、商业界及政府相关机构的见解及意见,在国际化的层面上达到了罕有的统一性及一致性。参与编制此表的国际团体包括澳大利亚、…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...