进程,进程的调度,进程的调度算法(详解)ฅ( ̳• · • ̳ฅ)

news2024/11/15 5:52:06

目录

😇进程的概念:

😚进程的组成:

🥰进程的调度:

一.进程调度的概念:

二.进程调度的方式:

三.进程调度的时机:

🤪进程的调度算法:

一.先来先服务(FCFS,First ComeFirstServe)

二.短作业优先(SJF,Shortest JobFirst):

三.高响应比优先(HRRN, Highest Response Ratio Next):

四.时间片轮转算法:

五.优先级调度算法:

六.多级反馈队列调度算法:


😇进程的概念:

程序:程序是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合

进程(Process):进程是动态的,是程序的一次执行过程。同一个程序多次执行会对应多个进程。

进程与程序的区别与联系:

区别:

①.进程是动态的,程序是静态的

②.进程具有独立性,能并发执行;程序不能并发执行

③.二者无一一对应关系

④.进程异步运行,会相互制约;程序不具备此特性

⑤.组成不同,程序是一个包含了所有执行和数据的静态实体。本身除了占有磁盘的存储空间外,并不占有系统如CPU,内存等运行资源。进程是由程序段,数据段和PCB构成,会占用CPU,内存等运行资源。

联系:进程不能脱离具体程序而虚设,程序规定了相应的进程所需要完成的动作。


😚进程的组成:

在上面我们提到,同一个程序多次执行会对应多个进程,那么操作系统是这些进程的管理者,它要如何区分各个进程呢?

答案是:当进程被创建时,操作系统会对该进程分配一个唯一的,不重复的“身份表示”-----PID(Process ID,进程ID)除此之外,操作系统还要记录:

  • 操作系统要记录PID,进程所属的用户ID(UID),这是基本的进程描述信息,可以让操作系统区分各个进程

  • 还要记录给进程分配了哪些资源(如:分配了多少内存,正在使用哪些I/O设备,正在使用哪些文件),可用于实现操作系统对资源的管理

  • 还要记录进程的运行结果(如:CPU使用时间,磁盘使用情况,网络流量使用情况等)可用于操作系统对进程的控制,调度

这些信息都被保存在一个数据结构PCB(Process Control Block)中,即进程控制块,操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息,都会被放在PCB中

PCB时进程存在的唯一表示,当进程被创建时,操作系统为其创建PCB,当进程结束时,会回收其PCB,PCB的组成:

程序段,数据段,PCB三部分组成了进程的实体(进程映像)。一般情况下,我们把进程实体就简称为进程,例如,所谓创建进程,实质上就是创建进程实体中的PCB,而撤销进程,实质上就是撤销进程实体中的PCB。

引入进程实体的概念之后,可以把进程定义为:

进程是进程实体运行的过程,是系统进行资源分配和调度的一个独立单位

🥰进程的调度:

在了解进程调度的概念前,我们先来看看处理机与CPU的概念与区别:

  • 处理机概念:

处理机是计算机系统中存储程序和数据,并按照程序中规定的步骤执行指令的部件。程序是描述处理机完成某项任务的指令序列。指令则是处理机能直接解释、执行的信息单位。处理机包括中央处理器(CPU),主存储器,输入-输出接口。处理器加外围设备就构成完整的计算机系统。

  • CPU概念:

中央处理器(CPU,Central processing Unit) 是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit)。它的主要功能是解释计算机指令以及处理计算机软件中的数据.

二者的区别:

1.指代不同:

处理机:是计算机系统中存储程序和数据,并按照程序规定的步骤执行的指令的部件。

CPU处理器:作为计算机系统的运算和控制核心,是信息处理,程序运行的最终执行单位。

2.构成不同:

处理机:包括中央处理器,主存储器,输入-输出接口,加外围设备就构成了完整的计算机系统

CPU处理器:主要包括两个部分,即控制器,运算器,其中还包含高速缓冲存储器以及实现它们之间联系的数据,控制的总线

一.进程调度的概念:

在多道程序系统中,进程的数量往往多于处理机的个数,因此进程争用处理机的情况在所难免。处理机调度是对处理机进行分配,即从就绪队列中按照一定的算法(公平,高效)选择一个进程并将处理机分配给它运行,以实现进程的并发执行。

二.进程调度的方式:

非剥夺调度:非剥夺调度方式,又称非抢占方式。即,只允许进程主动放弃处理机。在运行过程中即便有更紧迫 的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。特点:实现简单,系统开销小但是无法及时处 理紧急任务,适合于早期的批处理系统

剥夺调度:剥夺调度方式,又称抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进 程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。特点:可以优先处理更紧急的进程,也可实现让各 进程按时间片轮流执行的功能(通过时钟中 断)。适合于分时操作系统、实时操作系统

三.进程调度的时机:

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机

🤪进程的调度算法:

一.先来先服务(FCFS,First ComeFirstServe)

FCFS是一种最简单的调度算法,它既可以用于作业的调度,又可以用于进程调度。在作业调度中,算法每次从后备作业队列中选择最先进入该队列的一个或几个作业,将他们调入内存,分配必要的资源,创建进程并放入就绪队列。

在进程调度中,FCFS调度算法每次从就绪队列中选择最先进入该队列的进程,将处理机分噢诶给它,使之投入运行,直到完成或尹某种原因而阻塞时才释放处理机。

FCFS属于不可剥夺(抢占)算法。从表面上看,它对所有作业都是公平的,但是如果有一个长作业先到达系统,就会使后面许多短作业等待很长时间,因此这种方法肯定不能作为分时系统和实时系统的调度方法,但是它常被结合在其他调度策略使用。比如在使用优先级作为调度策略的系统中,往往对多个具有相同优先级的进程按FCFS原则处理。

二.短作业优先(SJF,Shortest JobFirst):

短作业(进程)优先调度算法是指对短作业(进程)优先调度算法。短作业优先调度算法从后备队列中选择一个或若干估计运行时间最短的作业,将它们调入内存运行;短进程优先(SPF)调度算法是从就绪队列中选择一个估计运行时间最短的进程,将处理机分配给它,使之立即指向,直到完成或发生某时间而阻塞时,才释放处理机。

但是这种算法有着不容忽视的缺点:

①该算法对长作业不利,SJF中长作业的周转时间会增加。更糟的是,若一旦有长作业进入系统的后备队列,由于调度程序总是优先调度那些短作业(即使是后来的短作业也会被优先安排给处理机),导致长作业长期不被调度,饿死在后备队列中。

②完全没有考虑作业的紧迫程度,因而不能保证紧迫的作业会被及时处理。

③由于作业的长短只是根据用户所提供的预估的执行时间而定的,而用户又可能会有意无意地缩短其作业的估计运行时间,使得算法不一定能真正做到短作业优先调度。

三.高响应比优先(HRRN, Highest Response Ratio Next):

主要用于作业调度,是对FCFS调度算法和SJF调度算法的一种综合平衡,同时考虑了每个作业的等待时间和估计的运行时间。在每次进行作业调度时,先计算后备队列中每个作业的响应比,从中选出响应比最高的作业投入运行。

响应比的变化规律可描述为:

响应比Rp = (等待时间+要求服务时间)/要求服务时间

根据公式可知:

①作业的等待时间相同时,要求服务时间越大,响应比越高,有利于短作业。

②要求服务时间相同时,作业的响应比由其等待时间决定,等待时间越长,其响应比越高,因而它实现的是先来先服务。

③对于长作业,作业的响应比可以随等待时间的增加而提高,等待时间足够长时,其响应比便可升到很高,从而可以获得处理机,不会饿死。

四.时间片轮转算法:

时间片轮转调度算法主要适用于分时系统。在这种算法中,系统将所有就绪进程按到达时间的先后次序排成一个队列,进程调度程序总是选择就绪队列中的第一个进程执行,即先来先服务的原则,但是仅能运行一个时间片。在使用完一个时间片后,即使进程并未完成其运行,它也必须释放出(被抢占)处理机给下一个就绪的进程,而被抢占的进程返回到就绪队列的末尾重新排队,等候再次运行。

在时间片轮转的调度算法中,时间片的大小对系统性能有很大影响。如果时间片足够大,以至于所以进程都能在一个事件内执行完毕,则时间片轮转调度算法就退化成FCFS算法。如果时间片很小,则处理机将在进程间过于频繁地切换,使得处理机开销增大,而真正用于运行用户进程的时间将减少。因此,时间片的选择要适当,可以根据系统响应时间、就绪队列中的进程数目和系统的处理能力等决定。

五.优先级调度算法:

又称优先权调度算法,它既可以用于作业调度,又可用于进程调度。该算法的优先级用于描述作业运行的紧迫程度。

在作业调度中,优先级调度算法每次从后备作业队列中选择优先级最该的一个或几个作业,将他们调入内存,分配必要的资源,创建进程并放入就绪队列。在进程调度中,优先级调度算法每次从就绪队列中选择优先级最高的进程,并分配处理机,运行。

根据新的更高的优先级进程能否抢占正在执行的进程,可将该调度算法分为如下两种:

①非剥夺(抢占)式优先级调度算法:当一个进程正在处理机上运行时,即使有某个更在重要或者紧迫的进程进入就绪队列,仍然让正在运行的进程继续运行,直到由于自身的原因而主动让出处理机时(任务完成或等待),才把处理机分配给更重要或紧迫的进程。

②剥夺式优先级调度算法:当一个进程正在处理机上运行,若有某个更为重要或紧迫的进程进入就绪队列,则立即暂停正在运行的进程,将处理机分配给更重要或紧迫的进程。

而根据进程创建后其优先级是否可以改变,可以将进程优先级分为一下两种:

①静态优先级:优先级是在创建进程时确定的,并且进程的整个运行期间保持不变。确定静态优先级的主要依据有进程类型、进程对资源的要求、用户要求。

②动态优先级:在进程运行过程中,根据进程情况的变化动态调整优先级。动态调整优先级的主要依据有进程占有CPU的时间的长短、就绪进程等待CPU时间的长短。

六.多级反馈队列调度算法:

 参考资料:

王道操作系统:

https://www.bilibili.com/video/av70156862?p=7

进程调度的几种方式与算法简介-CSDN博客

结语: 写博客不仅仅是为了分享学习经历,同时这也有利于我巩固知识点,总结该知识点,由于作者水平有限,对文章有任何问题的还请指出,接受大家的批评,让我改进。同时也希望读者们不吝啬你们的点赞+收藏+关注,你们的鼓励是我创作的最大动力!

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

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

相关文章

如何通过运动改善老年人的腿部肌肉力量?

老年人腿部肌肉力量的重要性 随着年龄的增长,肌肉自然会逐渐萎缩,特别是腿部肌肉。腿部肌肉的强弱直接影响到老年人的行走能力、平衡能力和日常生活的自理能力。因此,通过适当的运动来改善和增强腿部肌肉力量对于老年人来说至关重要。 适合老…

1Panel安装教程:使用Linux服务器安装1Panel面板全流程

使用阿里云服务器安装1Panel面板全流程,云服务器操作系统为CentOS 7.9,安装1Panel非常简单,先执行1Panel安装命令,然后在云服务器安全组中开通1Panel默认端口号、安全入口、用户名和密码等操作,阿里云百科整理详细安装…

前端八股文 跨域

前端跨域和常见解决方案 一、什么是跨域 同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的 资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。 有一点必须要注意:跨域并不是请求发不…

Unity插件 Unitask学习日志

Unity插件 Unitask学习日志 下载地址 https://github.com/Cysharp/UniTask点击这里可以查阅中文文档 在Unity 2020,2021 中使用UPM下载会找不到,可以使用2022版本的unity可以在upm中找到。 安装方式: 下载zip之后解压, 复制Plugins 到Uni…

化工厂定位系统有哪些功能?

有伙伴了解化工厂定位系统吗?相信很多小伙伴都没有听说过,感觉离我们的生活比较远,事实上化工厂定位系统也是默默的在保护我们的安全。今天新锐科创就给大家介绍一下这个系统,让大家简单的了解一下。 大家都知道化工厂一直是一个比…

【LLM大模型】如何在LlamaIndex中使用RAG?

如何在LlamaIndex中使用RAG 什么是 Llama-Index LlamaIndex 是一个数据框架,用于帮助基于 LLM 的应用程序摄取、构建结构和访问私有或特定领域的数据。 如何使用 Llama-Index ? 基本用法是一个五步流程,将我们从原始、非结构化数据导向基于该数据生成…

本地部署 SenseVoice - 阿里开源语音大模型

本地部署 SenseVoice - 阿里开源语音大模型 1. 创建虚拟环境2. 克隆代码3. 安装依赖模块4. 启动 WebUI5. 访问 WebUI 1. 创建虚拟环境 conda create -n sensevoice python3.11 -y conda activate sensevoice 2. 克隆代码 git clone https://github.com/FunAudioLLM/SenseVoic…

【Linux进阶】文件系统2——MBR和GPT

1.磁盘的分区 因为如果你的磁盘被划分成两个分区,那么每个分区的设备文件名是什么? 在了解这个问题之前,我们先来复习一下磁盘的组成,因为现今磁盘的划分与它物理的组成很有关系。 我们谈过磁盘主要由碟片、机械手臂、磁头与主轴马…

C++Windows环境搭建(CLion)

文章目录 CLion下载安装CLion下载CLion安装新建项目 CLion下载安装 CLion下载 打开网址:https://www.jetbrains.com/clion/download/ 点击Download进行下载。 CLion安装 双击下载好的安装包: 进入到安装页面,点击下一步: 选…

【粉丝福利 | 第8期】值得收藏!推荐10个好用的数据血缘工具

⛳️ 写在前面参与规则!!! ✅参与方式:关注博主、点赞、收藏、评论,任意评论(每人最多评论三次) ⛳️本次送书1~4本【取决于阅读量,阅读量越多,送的越多】 目前市面上绝…

无人直播系统源码开发:功能~优势~开发方法

自动直播通常是指通过自动化技术来实现实时内容分发的过程,它结合了流媒体技术和人工智能(如机器学习)。以下是自动直播实现的基本步骤: 内容采集:通过摄像头、手机等设备捕捉实时画面,并通过编码将其转换成…

如何理解http与https协议,他们有什么区别?

写在前面的话,关于 HTTP 和 HTTPS 的问题,常常会被很多学习者忽略,HTTP、HTTPS 不就是网址的开头吗,有啥好了解的,浏览器的引擎实现了这个协议,在开发关系不大,但想要深入一些理解数据传输原理&…

NPDP有什么价值?究竟值不值得去考?

NPDP其实就是产品经理国际资格认证,是美国产品开发管理协会发起的,集理论、方法和实践一体,在新产品开发方面有一个很全面的知识体系。是国际公认的新产品开发专业认证,具有权威性。 NPDP能够很好地帮你在做新产品的道路上少走弯…

SpringSecurity中文文档(Servlet Method Security)

Method Security 除了在请求级别进行建模授权之外&#xff0c;Spring Security 还支持在方法级别进行建模。 您可以在应用程序中激活它&#xff0c;方法是使用EnableMethodSecurity 注释任何Configuration 类&#xff0c;或者将 < method-security > 添加到任何 XML 配…

RK3588开发笔记(四):基于定制的RK3588一体主板升级镜像

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140288662 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

多次执行相同的push问题(如何解决)

下面这个问题如何解决 1.为什么会出现这个问题 原因&#xff1a;push是一个promise&#xff0c;promise需要传递成功和失败两个参数&#xff0c;我们的push中没有传递。 goSearch() {//路由传参//第一种&#xff1a;字符串形式// this.$router.push(/search/this.keyword&quo…

【Linux进阶】文件系统3——目录树,挂载

前言 在Windows 系统重新安装之前&#xff0c;你可能会事先考虑&#xff0c;到底系统盘C盘要有多大容量&#xff1f;而数据盘D盘又要给多大容量等&#xff0c;然后实际安装的时候&#xff0c;你会发现其实C盘之前会有个100MB的分区被独立出来&#xff0c;所以实际上你就会有三个…

ATA-5420前置微小信号放大器如何进行半导体测试

半导体测试是电子行业中至关重要的环节&#xff0c;它对于保证产品质量、提高生产效率起着至关重要的作用。在半导体测试过程中&#xff0c;我们需要采用一系列的方法和原理来确保芯片的可靠性和性能稳定性&#xff0c;而前置微小信号放大器在半导体测试中起着至关重要的作用。…

C++ Qt 自制开源科学计算器

C Qt 自制开源科学计算器 项目地址 软件下载地址 目录 0. 效果预览1. 数据库准备2. 按键&快捷键说明3. 颜色切换功能(初版)4. 未来开发展望5. 联系邮箱 0. 效果预览 普通计算模式效果如下&#xff1a; 科学计算模式效果如下&#xff1a; 更具体的功能演示视频见如下链接…

Python酷库之旅-第三方库Pandas(012)

目录 一、用法精讲 28、pandas.HDFStore.keys函数 28-1、语法 28-2、参数 28-3、功能 28-4、返回值 28-5、说明 28-6、用法 28-6-1、数据准备 28-6-2、代码示例 28-6-3、结果输出 29、pandas.HDFStore.groups函数 29-1、语法 29-2、参数 29-3、功能 29-4、返回…