Linux操作系统及进程(三)进程优先级及特性

目录

一、优先级概念

二、查看系统进程

三、进程切换


一、优先级概念

1.cpu资源分配的先后顺序,就是指进程的优先权(priority)。
2.优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。
3.还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。

二、查看系统进程

操作系统往往会需要处理很多的进程,可是进程很多处理的顺序总要有个先后,此时就可以引出一个概念:优先级。

ps-la,可以以列表的形式打印出当前用户所创建的进程。

linux或者unix系统中,用ps –l命令则会类似输出以下几个内容:

8d58b47259764f8380613584ecdf4f59.png

先来简单认识一下第一行的字母分别有什么含义:

UID
代表执行者的身份
PID
代表这个进程的代号
PPID
代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
PRI
代表这个进程可被执行的优先级,其值越小越早被执行
NI
代表这个进程的nice值

其中PRI就是优先级,具象化一点就是PCB中的一个整形变量,Linux默认优先级是80,当然优先级的优先级是可以被修改的,其区间是[60,99]数字越小优先级越高,优先级一般不建议去调整。

那NI呢?就是我们所要说的nice值了,其表示进程可被执行的优先级的修正数值。
这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行。
所以,调整进程优先级,在Linux下,就是调整进程nice值。

使用top进入任务管理器,输入R后然后输入pid。然后输入数字,这里的数字是要加到PRI上的。

Linux允许用户修改优先级但是不允许直接修改优先级而是修改nice值,所以PRI=oldPRI+nice:

注意:这个oldpri每次都是从80开始的。

617b10b9280b4a7cb3f33e308ff9a769.png

d6dcd3458fa04227a8f374a65473dbdc.png

而为了符合Linux规定的优先级区间,nice值也是有区间的[-20,19] 。

而为什么要让优先级首先呢?主要是因为如果不加限制,那么很多程序员就可以把自己的优先级调的很小,这样会导致调度上不平衡,会导致优先级高的进程会优先得到资源,最终会导致常规进程很难得到CPU资源,从而迟迟不会被调度,最终会引发进程饥饿问题,所以操作系统必须要求优先级调整在可控范围之内。

所以进程存在以下四个特性:

efff90f9d3f74f52892963f91f4700fb.png

其中并行需要多个CPU来进程,我们一般的电脑不会存在,而并发则是CPU基于时间片快速的对多个进程进行轮转操作来实现多个进程同时运行。

 

三、进程切换

既然需要并发,那进程间一定设计到切换,进程每次被调度CPU时都会给每个进程产生一个调度队列,然后链接到CPU的运行队列,CPU内存在大量寄存器,负责记录在执行进程时的各种属性信息,而当时间片到了的时候,PCB进程会把寄存器内的当前各种信息进行保存,CPU内部的所有数据,都被称为进程的硬件上下文数据。

此时执行下一个进程,再将下一个进程的属性数据覆盖加载到CPU中。当进程被二次调度时,将曾经保存的硬件上下文数据进行恢复然后沿着上次执行到的位置继续执行。

db2bda03908d45a68640816c7c7c9329.png

CPU的寄存器只有一套,寄存器里面的数据都是进程私有的。

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

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

相关文章

pinia的异步以及getter

getter定义 action异步 使用

python修改txt文件指定行内容

要在 Python 中修改一个文本文件中的指定行内容,你可以按照以下步骤进行操作: 读取原始文本文件内容。找到要修改的行,并修改该行内容。将修改后的内容写回到文件中。 下面是一个示例代码,演示如何实现这一操作: # …

PyQt:实现菜单栏的点击拖动效果

一、整体步骤 1.设计UI文件 2.调用显示 3.效果展示 二、设计UI文件 1.添加 Scroll Area控件,作为菜单栏的布置区域 2.设置 Scroll Area控件的属性 3.Scroll Area控件内放置 按钮控件 组成菜单栏 此处,放置了需要了6个按钮,并设置按钮的固…

使用Pytesseract进行OCR

在Python中,可以使用Tesseract OCR库来识别图片上的文字。Tesseract是一个开源的光学字符识别(OCR)引擎,可以识别多种语言的文本。为了在Python中使用Tesseract,通常会使用pytesseract这个Python库作为Tesseract的一个…

跨境电商测评自养号需要解决哪些问题?

现在做测评工作室这块的,真正有技术的每天单都做不过来,同样也滋生出很多找别人买个设备和账号就以为自己懂了,直接开始教学来割韭菜,很多人没接触过这行业,不知道里面的水很深,花了钱,却没有掌…

xilinx linux AXI GPIO 驱动学习

vivado工程 vivado 配置一个 AXI GPIO&#xff0c; 全输出&#xff0c;宽度为1 设备树解读 生成的对应pl.dtsi设备树文件如下 axi_gpio: gpio40020000 {#gpio-cells <2>;clock-names "s_axi_aclk";clocks <&clkc 15>;compatible "xlnx,…

Java-常见面试题收集(四)

十 并发编程 1 Java 怎么保证多线程运行安全&#xff1f; 线程安全是程序设计中的术语&#xff0c;指某个方法在多线程环境中被调用时&#xff0c;能正确的处理多个线程中的共享变量&#xff0c;使程序正确执行。Java 中线程安全体现在以下三个方面&#xff1a;   原子性&am…

HCSC单片机使用小结

HCSC单片机使用小结 CAN 1、波特率主频/&#xff08;分频1&#xff09;/&#xff08;SEG1SEG2)。存在BT寄存器中。 其中 2、STB在 FIFO 模式下&#xff0c;最先写入的数据先发送&#xff0c;在优先级模式下&#xff0c;ID 小的数据先发送。 3、通过 TCMD 寄存器的 TBSEL 位选…

巧用cpl文件维权和免杀(上)

cpl文件 CPL文件&#xff0c;是Windows控制面板扩展项&#xff0c;CPL全拼为Control Panel Item在system32目录下有一系列的cpl文件,分别对应着各种控制面板的子选项 列入我们winR输入main.cpl 将会打开控制面板中的鼠标属性 cpl文件本质是属于PE文件 但cpl并不像exe,更像是dl…

SQL107 将两个 SELECT 语句结合起来(二)(不用union,在where里用or)

select prod_id,quantity from OrderItems where quantity 100 or prod_id like BNBG% order by prod_id;在where子句里使用or

金蝶云星空和管易云单据接口对接

金蝶云星空和管易云单据接口对接 对接系统&#xff1a;管易云 管易云是金蝶旗下专注提供电商企业管理软件服务的子品牌&#xff0c;先后开发了C-ERP、EC-OMS、EC-WMS、E店管家、BBC、B2B、B2C商城网站建设等产品和服务&#xff0c;涵盖电商业务全流程。 写入目标:金蝶云星空 金…

【JAVA】super和this

super和this都可以在成员方法中用来访问&#xff1a;成员变量和调用其他的成员函数&#xff0c;都可以作为构造方法的第一条语 句 【相同点】 1. 都是Java中的关键字 2. 只能在类的非静态方法中使用&#xff0c;用来访问非静态成员方法和字段 3. 在构造方法中调用时&#…

[leetcode] 189. 轮转数组

给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,…

CentOS7安装mysql-5.7.44单机和主从复制

官网下载地址&#xff1a; https://downloads.mysql.com/archives/community/ 1、单机安装 安装依赖 yum -y install libaio 解压安装 tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysqlcd /usr/local/mysql…

前端开发常用判断符号

!就是将右侧值先转化为bool值后在进行取反&#xff0c;因此对于空对象或者空数组的取反取值为false&#xff0c;因为空对象或空数组转化为bool值为true。 !!则为在一个!将右侧值转化为bool值取反后再取反。 |该运算符取值逻辑为判断时将值转化为bool值判断左侧值为true or fa…

文件上传一-WEB攻防-PHP应用文件上传函数缺陷条件竞争二次渲染黑白名单JS绕过9

演示案例&#xff1a; PHP-原生态-文件上传-前后端验证PHP-原生态-文件上传-类型文件头验证PHP-原生态-文件上传-后缀黑白名单验证PHP-原生态-文件上传-解析配置&二次渲染PHP-原生态-文件上传-逻辑缺陷&函数缺陷 #学习前必读&#xff1a; 1、课前一定要明白&#xff1a…

蓝桥杯基础练习详细解析一(代码实现、解题思路、Python)

试题 基础练习 数列排序 资源限制 内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给定一个长度为n的数列&#xff0c;将这个数列按从小到大的顺序排列。1<n<200 输入格式 第…

MySQL事务(超详细!!!)

目录 一、MySQL事务的概念 二、事务的ACID特点 1、原子性&#xff08;Atomicity&#xff09; 2、持久性 3、隔离性&#xff08;Isolation&#xff09; 3.1 事务的并发问题 ①、脏读(读取未提交数据) ②读已提交、不可重复读(前后多次读取&#xff0c;数据内容不一致) …

【Redis主从架构。主从工作原理psync、bgsave、部分数据复制、主从复制风暴解决方案】【Redis哨兵高可用架构。sentinel】

Redis主从架构 Redis主从工作原理数据部分复制 Redis哨兵高可用架构client连接哨兵规则主节点挂了&#xff0c;集群从新选择主节点&#xff0c;并且同步给sentinel 转自图灵课堂 redis主从架构搭建&#xff0c;配置从节点步骤&#xff1a; 1、复制一份redis.conf文件2、将相关…

美易官方:除了散户,对冲基金也在重返加密市场

高盛&#xff1a;除了散户&#xff0c;对冲基金也在重返加密市场 随着加密货币市场的逐渐成熟和技术的不断进步&#xff0c;越来越多的机构投资者开始重新审视加密货币市场。除了散户投资者外&#xff0c;对冲基金也在重返加密市场&#xff0c;成为市场的重要参与者之一。高盛作…