秒懂:进程优先级

news2024/9/20 20:44:01

1.概念

      简单来说,进程优先级是对于资源访问顺序来说的,谁先访问资源,谁的优先级就高。

      注意:这和权限概念不一样,权限是能不能访问。

2.情景引入

进程的运行,是在CPU上执行,每次执行只能执行CPU的一个时间片,会有多个进程在run_Queue运行队列上等待CPU。

 

不同的进程PCB在run_Queue中等待CPU资源,在CPU中执行,然后再回到run_Queue中继续等待CPU资源,这样进程循环不断的等待与执行,就是进程运行的基本逻辑。

022cbc155c8940c4a561ef9b68d53c50.png

进程在运行队列中等待的过程,本质其实是各个进程在排队的过程。

就像在食堂打饭,在单位领取福利,有半路插队的情况,有的人可以优先打到饭,可以优先领到福利,有的人却一直被插队,只能很后面打到饭或领到福利。插队的人通常可以走后门,权势高于其他队中的人,或者武力值很高,谁都惹不起,所以他们可以插队。相对的,相较队中,体更弱的人,更没有什么权势的人,就只能被插队,排到后面去,较晚才能领到资源。

进程在运行队列里排队领取CPU资源的过程也是这样的。

在进程排队的过程中,衡量谁先后领到资源的标准进程的优先级。优先级高的进程可以在运行队列排队过程中"优先"领到CPU资源;优先级低的进程,则是会被"插队",相对靠后享受到CPU资源。

3.为什么会有进程优先级

        因为计算机的资源是有限的,但是运行队列中的进程是多个的,而且它们之间竞争性很大的,操作系统必须保证良性竞争,所以要确立优先级。

3.1 情景解析:

再比如在食堂,我们作为学生需要在有限的窗口中,排队打饭。因为我们不可能给每一个学生都开一个窗口,不可能给每一个学生都开一个小灶,当然如果每个学生都开一个小灶的话,此时优先级就失去意义了,因为此时不需要排队了,人人平等,没有谁先谁后接受资源一说了。但是现实中,我们在一层食堂中,也就开20个窗口,为什么不给所有学生都开一个窗口呢?因为我们的资源太少了!我们没有足够的资源开几千个的打饭窗口。所以20个窗口需要好几千的学生进行排队打饭,而排队就存在优先级谁先谁后接收资源的问题,就存在插队被插队的问题。

所以优先级的本质其实是分配资源的一种方式!!!

其实不止CPU资源的分配,还有网卡资源,硬盘资源等待,都需要对多个进程进行分配。分配就需要有排队,排队过程就需要队列和谁先谁后的凭据。

所以我们有CPU资源的运行队列,有网卡,硬盘资源的等待队列,来供多个进程进行排队申领;所以我们的每个进程PCB中都有一个叫优先级的字段,来确认这个进程可以先/后申请到某种资源。

3.2 注意:

        如果进程长时间得不到cpu资源,该进程代码长时间得不到推进,就会产生进程饥饿问题。

 

 

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

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

相关文章

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了…

寒冬下,你不知道的赛道!

见字如面,技术人雄起! 现在的环境怎样没有比技术人更有体会的了吧,但是我也不禁要问,还有那些赛道过的不错,还有谁在挣钱。因为能量是守恒的,西边不亮东边亮。真巧还真让我找到一些。 中药 2023年中国中药…

文件名管理器,一款免费的文件名管理工具,支持文件整理功能

文件名管理器是一款可以批量修改文件名的工具,但是相较于其他工具又有不同。除了批量重命名功能外,软件同时提供一些特色功能:把文件名插入到文本文件中、根据文件名写入音乐ID3信息,整理下载的视频资源、音乐分类整理等。软件提供…

大圣也得靠AI?深扒《黑神话:悟空》后的AI技术!

要说最近爆火刷屏的顶流热词,非《黑神话:悟空》莫属。 图片来源:新华社 《黑神话:悟空》游戏背景设定在一个宏大而神秘的神话宇宙中,融合了古代中国的神话传说与虚构的奇幻元素,构建了一个绚丽多彩的开放世…

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMes…

Pipeline流水线通过git拉取Jenkinsfile报错 error: RPC failed; result=22, HTTP code = 404

Pipeline流水线通过git拉取Jenkinsfile报错 error: RPC failed; result22, HTTP code 404 在学习共享库时使用通过git拉取jenkinsfile时,报错在排查gitlab服务状态,网络通讯,防火墙规则以及Jenkins凭据均可以正常使用,最后发现的…

HTB-Tactics(Impacket工具集合 和 smb特殊共享)

前言 各位师傅大家好,我是qmx_07,今天给大家讲解Tactics靶机 渗透过程 信息搜集 服务器开启了smb协议 连接smb服务器 Admin$ 对应的是 C:\Windows 目录,是 Windows 自动创建的共享,主要用于执行一些与系统管理相关的操作,例如远程文件管…

Spring Boot3.x 启动自动执行sql脚本

1 引言 某些项目在首次启动时,需要先手动创建数据库表,然后再手动写入初始数据才能正常使用。为了省去这个手动操作过程,我们可以使用Spring Boot启动时执行sql脚本的配置,全自动完成这个过程。 2 配置 具体配置如下&#xff1…

Redis访问工具

使用Redis存储缓存数据,如何通过Java去访问Redis? 防止后面看晕,先来张图。 1. Redis的客户端库 Redis的客户端库是Redis官方提供的,用于让Java等编程语言与Redis服务器进行通信的工具包。常见的Redis客户端库有多个&#xff0c…

828华为云征文|Flexus X实例C#/.Net Core 结合(git代码管理、docker自定义镜像)快速发布部署-让你的项目飞起来~

目录 前言 环境准备 购买服务器配置 项目部署 项目准备(Dockerfile文件) Git部署并拉取代码 安装Git 配置Git用户信息 SSH密钥 安装docker 添加Docker GPG密钥 添加Docker官方软件源 再次更新软件包列表 安装docker 项目运行 构建镜像 …

MySQL 的基础 一 (连接池, SQL接口, 查询解析器, 查询优化器, 存储引擎接口, 执行器)

目录 1 MySQL数据库的连接池 2 网络连接必须让线程来处理 3 SQL接口:负责处理接收到的SQL语句 4 查询解析器:让MySQL能看懂SQL语句 5 查询优化器:选择最优的查询路径 6 调用存储引擎接口,真正执行SQL语句 7 执行器&…

UE4_后期处理_后期处理材质及后期处理体积三—遮挡物体描边显示

一、效果: 在很多游戏中为了玩家能看到墙面背后是否有敌人,会给被遮挡的敌人增加描边显示,效果如下: 参考: https://zhuanlan.zhihu.com/p/81310476 https://zhuanlan.zhihu.com/p/358140547 二、所需知识 知识点…

数据结构与算法学习day20-二叉树的最大深度、最小深度、完全二叉树的节点个数、平衡二叉树、二叉树所有路径

一、二叉树的最大深度 1.题目 104. 二叉树的最大深度 - 力扣(LeetCode) 2.思路 2.1递归法 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)二叉树节点的高度…

安卓玩机工具------vivo机型线刷救砖固件 下载工具操作步骤预览

vivo机型玩机 vivo机型虽然对于玩家来说相对可玩性较低。官方封闭bl锁。对于普通玩家来说只能 中规中矩使用机型。但目前有很多vivo机型通过第三方渠道已经可以解bl锁和root操作。但有时候玩机会遇到误操作或者其他系统性问题导致系统瘫痪不开机。 那么我们就需要具备一些救砖…

Linux网络——Socket编程函数

一.网络命令 1.ping ping命令用来检测网络是否连通,具体用法为: ping 任意网址 结果如下: 当出现上述字段时,证明网络是连通的,这里值得注意的是,ping命令执行之后会不断进行网络检测,不会停…

Linux——网络基础Socket编程

目录 一计算机网络背景 二协议 1初始协议 1.1协议分层 1.2OSI七层模型 1.3TCP/IP五层模型 2再始协议 2.1为什么要有TCP/IP协议 2.2TCP/IP与OS的关系 2.3所以什么是协议 三网络传输基本流程 1局域网(以太网)通信原理 1.1认识mac地址 2同…

【软件设计师真题】下午题第一大题---数据流图设计

解答数据流图的题目关键在于细心。 考试时一定要仔细阅读题目说明和给出的流程图。另外,解题时要懂得将说明和流程图进行对照,将父图和子图进行对照,切忌按照常识来猜测。同时应按照一定顺序考虑问题,以防遗漏,比如可以…

综合案例-数据可视化-地图

一、pyecharts—地图快速入门 假设我们要将6个地区的某种数量在地图上标注出来,首先导入pyecharts包内地图相关模块,然后准备地图数据(数据类型是列表,列表的元素类型为元组),然后把准备好的数据添加进地图…

Java笔试面试题AI答之单元测试JUnit(1)

文章目录 1. 什么是JUnit?2. JUnit的重要特征是什么?3. 什么是单元测试案例?单元测试的特点:单元测试的好处:编写单元测试案例的步骤: 4. 何时在开发周期中编写单元测试?5. 为什么不直接使用Sys…

【鸿蒙开发从0到1 day07】

ArkTS-基础语法 一.开发环境1.下载Dev Eco Stdio2.下载chinese插件3.基础入门4.输出语句5.注释 二.3种常见的数据类型1.数据类型2.储存数据(1)变量:专门用来存储数据的容器(可变)(2)常量(3)命名规则 三.数组四.函数1.无参函数2.有参函数3.返回值4.箭头函数 五.对象六.总结 一.开…