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

目录

😇进程的概念:

😚进程的组成:

🥰进程的调度:

一.进程调度的概念:

二.进程调度的方式:

三.进程调度的时机:

🤪进程的调度算法:

一.先来先服务(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.rhkb.cn/news/372565.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 中什么是局部变量和全局变量

在Python编程中,理解变量的作用域是非常重要的。变量的作用域决定了变量在程序中的可见性和生命周期。Python中有两种主要的变量作用域:局部变量和全局变量。 1. 局部变量 1.1 定义 局部变量是定义在函数内部的变量,只能在函数内部访问。局…

纯前端低代码开发脚手架 - daelui/molecule

daelui/molecule低代码开发脚手架:分子组件开发、预览、打包 页面代码示例、大屏代码示例预览 可开发页面组件 可开发大屏组件 项目git地址:https://gitee.com/daelui/molecule 在线预览:http://www.daelui.com/daelui/molecule/app/index.…

分布式一致性算法:Raft学习

分布式一致性算法:Raft学习 1 什么是分布式系统? 分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。这些节点可能位于不同的物理位置,但它们协同工作以提供一个统一的计算平台或服务。分布式系统…

Leetcode 295.数据流的中位数

295.数据流的中位数 问题描述 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: Media…

【笔记】太久不用redis忘记怎么后台登陆了

!首先启动虚拟机linux的centos7 2.启动finalshell 我的redis启动在根目录用 redis-server redis.conf --启动 systemctl status redis --查看redis状态 是否active redis-cli -h centos的ip地址 -p 你要用的redis端口号(默认为6379) -a 你…

UDP通讯实现

服务器端&#xff1a; 1.获取套接字 int fd;fdsocket(AF_INET,SOCK_DGRAM,0);if(fd<0){perror("socket");exit(0);} #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); -domain: 指定通信域&…

LInux安装

目录 1. LInux优点 1.1 安全性高 1.2 稳定性和可靠性高 1.3 开源和免费 1.4 资源利用效率 2. Linux虚拟机下载 2.1 VMware安装 2.2 虚拟机安装 2.3 Centos7下载 2.4 简单设置Centors-7 2.4.1 首次进入 2.4.2 联网设置 2.4.3 自动联网设置 2.4.4 自动锁屏设置 Li…

Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测

章节内容 上一节我们完成了&#xff1a; Hive中数据导出&#xff1a;HDFSHQL操作上传内容至Hive、增删改查等操作 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 VM 虚拟机上搭建过一次&am…

C++初学者指南-5.标准库(第一部分)--顺序容器

C初学者指南-5.标准库(第一部分)–顺序容器 文章目录 C初学者指南-5.标准库(第一部分)--顺序容器标准顺序容器常见特点规律性&#xff1a;复制&#xff0c;分配&#xff0c;比较类型推导(C17)常用接口部分 array<T,size>vector\<T>C 的默认容器快速回顾迭代器范围插…

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

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

文档图像处理:大模型的突破与新探索

前言 随着数字化时代的到来&#xff0c;文档图像处理技术在各行各业扮演着越来越重要的角色。在2023第十二届中国智能产业高峰论坛&#xff08;CIIS 2023&#xff09;的专题论坛上&#xff0c;合合信息智能技术平台事业部副总经理、高级工程师丁凯博士分享了当前文档图像处理面…

如何学习和提升SQL

资料来源于腾讯技术直播&#xff0c;只作为学习记录&#xff0c;如有侵权&#xff0c;请联系作者进行删除

4.1 操作系统

大纲 进程管理重点&#xff0c;占本章历年考试一半分数&#xff0c; 前趋图、信号量和PV操作、死锁和银行家算法 出计算题 作业管理历年考试从来没有考过 操作系统概述 进程管理 进程的组成和状态 前趋图 进程资源图 真题 1

实验一 MATLAB \ Python数字图像处理初步

一、实验目的&#xff1a; 1&#xff0e;熟悉及掌握在MATLAB\Python中能够处理哪些格式图像。 2&#xff0e;熟练掌握在MATLAB\Python中如何读取图像。 3&#xff0e;掌握如何利用MATLAB\Python来获取图像的大小、颜色、高度、宽度等等相关信息。 4&#xff0e;掌握如何在M…

java花店管理系统eclipse开发mysql数据库

1 绪论 1.1 系统开发目的 随着人们物质生活水平和经济水平的不断提高&#xff0c;室内绿化布置、家庭园艺装饰、礼仪鲜花等日益受到重视和青睐&#xff0c;以及送鲜花给亲朋好友来表达自己的情谊。传统的花店对于信息的管理的主要方式是基于文本、表格等纸质手工处理&#xf…

SpringCloudAlibaba基础五 Nacos配置中心

一 Nacos配置中心介绍 官方文档&#xff1a;https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config Nacos 提供用于存储配置和其他元数据的 key/value 存储&#xff0c;为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos C…

剪辑抽帧技巧有哪些 剪辑抽帧怎么做视频 剪辑抽帧补帧怎么操作 剪辑抽帧有什么用 视频剪辑哪个软件好用在哪里学

打破视频节奏&#xff0c;让作品告别平庸。抽帧剪辑可以改变视频叙事节奏&#xff0c;人为制造冲突、转折、卡顿的效果。这种剪辑方式&#xff0c;不仅可以推进剧情发展&#xff0c;还能吸引观众的注意力&#xff0c;有效防止观影疲劳。有关剪辑抽帧技巧有哪些&#xff0c;剪辑…

mysql数据库中的视图view的概念和详细说明

目录 一、定义 二、视图view的分类 &#xff08;一&#xff09;按功能和特性分类 1、普通视图&#xff08;Regular View/Standard View&#xff09; 2、索引视图&#xff08;Indexed View&#xff09; 3、分割视图&#xff08;Partitioned View/Distributed Partitioned …

1.认识微服务

认识微服务 1.微服务2.微服务架构 1.微服务 微服务是一种经过良好架构设计的分布式架构设计&#xff0c;微服务架构特征&#xff1a; 单一指职责&#xff1a;微服务拆分粒度更小&#xff0c;每一个服务都对应唯一的业务能力&#xff0c;做到单一职责&#xff0c;避免重复业务…

Python提取视频文案

Python提取视频文案 1、背景描述2、视频转音频3、音频转文字 1、背景描述 在多媒体应用中&#xff0c;视频是一个信息量巨大的载体。然而&#xff0c;有时我们需要从视频中提取语音并转换为文本&#xff0c;以用于文本分析和机器学习训练 其中主要涉及到两个过程&#xff1a;视…