Linux nice/renice 命令 - 进程的NI、PRI属性

news2024/11/14 18:26:53
进程NI、PRI属性联系
  • 共同影响进程调度:NI和PRI都是Linux进程调度机制中的重要参数,它们共同决定了进程在CPU资源竞争中的优先级。NI值通过影响PRI值来间接影响进程的调度顺序。
  • NI值可调整以改变PRI值:用户可以通过调整进程的NI值来间接改变其PRI值。具体来说,NI值是一个修正值,系统会根据NI值来调整进程的PRI值。通常,NI值越小(更负),PRI值也会相应减小,意味着进程的优先级提高;反之,NI值越大(更正),PRI值也会相应增大,意味着进程的优先级降低。
  • 共同反映进程优先级:虽然NI和PRI是两个不同的属性,但它们都反映了进程的优先级。NI值是用户可修改的优先级修正值,而PRI值是系统根据NI值和其他因素计算得出的实际优先级值。
进程NI、PRI属性区别

1)定义不同

  • NI(Nice值):是用户空间对进程优先级的一个表示,它是一个可以修改的修正值,用于调整进程的优先级。NI值的范围是-20(最高优先级)到19(最低优先级)。
  • PRI(Priority,优先级):是系统内部用于调度进程的实际优先级值。PRI值是根据NI值和其他因素(如进程类型、系统负载等)计算得出的,用户无法直接修改PRI值。

2)修改权限不同

  • NI值:用户(包括普通用户和超级用户)可以通过nice命令或renice命令来设置或修改进程的NI值。但需要注意的是,普通用户只能将NI值设置为0到19之间的值,而超级用户(root用户)可以将NI值设置为-20到19之间的任何值。
  • PRI值:用户无法直接修改PRI值,它是系统根据NI值和其他因素自动计算得出的。

3)作用方式不同

  • NI值:作为用户可修改的优先级修正值,NI值直接反映了用户对进程优先级的期望。通过调整NI值,用户可以间接地影响进程的调度顺序。
  • PRI值:作为系统内部用于调度的实际优先级值,PRI值综合了NI值、进程类型、系统负载等多种因素,是系统调度进程时的重要依据。PRI值越小,表示进程的优先级越高,越有可能被CPU优先执行。
nice命令

        nice 命令在 Linux 系统中用于调整进程的优先级。在 Unix 和类 Unix 系统中,包括 Linux,每个进程都有一个与之关联的优先级,这个优先级决定了进程获得 CPU 资源的顺序。

        默认情况下,每个进程都以所谓的“nice 值”0 开始,这个值是可以调整的,范围从 -20(优先级最高)到 19(优先级最低)。

        nice 命令的基本语法包括一个可选的 -n 参数,后跟 nice 值和要运行的命令。如果不使用 -n 参数,则默认将 nice 值设置为 10(即降低进程的优先级)。

语法:nice [-n] [nice值] command

 

renice命令

        renice 命令在 Linux 系统中用于改变正在运行的进程的优先级(nice 值)。

基本语法和参数

renice [nice值] -p PID...

renice [nice值] -g PGRP...

renice [nice值] -u USER...
  • nice值指定新的 nice 值。
  • -p后面跟一个或多个进程 ID(PID),用于指定要修改 nice 值的进程。

  • -g后面跟一个或多个进程组 ID(PGRP),用于指定要修改 nice 值的进程组中的所有进程。 

  • -u后面跟用户名,用于指定要修改 nice 值的该用户启动的所有进程。 

 

注意事项:

1)默认情况下,普通用户只能将进程的 nice 值设置为大于 0 的值,以降低其优先级。只有 root 用户才能设置负的 nice 值来提高进程的优先级。

2)只有超级用户(root)或具有相应权限的用户才能降低进程的 nice 值(即增加其优先级)。尝试增加(即降低优先级)任何进程的 nice 值时,普通用户通常不会遇到权限问题。

3)nice 值是相对于进程的默认优先级(nice 值 0)的增量。因此,设置 nice 值为 5 意味着进程的优先级比默认优先级低 5 个单位,而设置 nice 值为 -5 则意味着进程的优先级比默认优先级高 5 个单位(但这需要 root 权限)。

4)进程的最终优先级还受到其他因素的影响,如进程的实时优先级(如果设置了的话)和系统的调度策略。然而,在大多数情况下,nice 值是调整进程优先级的主要手段

答疑

问:linux 进程的NI/PRI决定的优先级越高相对于低优先级的进程获取的系统资源越多怎末理解?

        首先,这里所说的“系统资源”主要是指CPU时间片。在Linux系统中,CPU时间被划分成若干个时间片(timeslice),每个进程在获得CPU时都会分配到一个时间片。当进程的时间片用完时,它会被放回就绪队列中等待下一次调度。

        在Linux中,时间片的大小是由内核调度器决定的,并且对于大多数系统来说,这个时间片是固定的,对所有进程都是相同的。这意味着,无论进程的优先级如何,它们每次被调度时获得的时间片长度通常是相同的。

        其次,进程的优先级(PRI值)主要影响的是进程被调度执行的频率优先级高的进程会更频繁地被调度到CPU上执行这样,在单位时间内优先级高的进程会获取更多的时间片,获取更多的资源去执行。

此外,还需要注意的是,Linux系统的调度算法是复杂的,它不仅仅基于进程的优先级进行调度。系统还会考虑其他因素,如进程的等待时间、CPU使用率、系统负载等,以综合决定进程的调度顺序。

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

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

相关文章

较难!第15届蓝桥杯青少组省赛Scratch中级组编程真题

今天上午第15届蓝桥杯青少组省赛Scratch初级组考完试以后,Scratch实验室就预估今天下午的Scratch中级组比较难,结果不出所料,还是比较有难度,据好几个学生及家长说,好几道题不会做时间不够。 来源:结束啦&a…

三级_网络技术_43_综合题(报文)

一、 某客户机使用DHCP获取IP地址等信息,其获取lP地址过程中捕获的4条报文及对第2条报文分析如下所示。请分析其中的信息,补全内容。 编号 报文摘要 DHCP:Request, Type:DHCP discover DHCP:Reply, Type:DHCP__________ DHCP:Request, Type:DHCP Re…

DBeaver安装使用

文章目录 简介支持的数据库支持的系统 下载安装DBeaver使用修改Maven下载jar地址窗口->首选项连接->驱动->Maven配置仓库地址 选择需要连接的数据库进行连接 简介 DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2,…

人生苦短,转行程序员要趁早啊

前言 最近有朋友咨询关于如何自学编程语言的问题,发现要回答这个问题,不是一俩句就可以回答清楚并减少当事人的困惑和迷茫。 笔者不知道提问者是问的学习方法还是学习路径,所以特此写一篇文章,斗胆表达一下我对自学编程的一点点…

解决Gradle下载依赖速度慢的问题

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

盘古信息MES制造执行系统,赋能制造企业智能化运营管理

随着工业智能化的不断深入,MES系统在制造业中扮演着越来越重要的角色。盘古信息自主研发的IMS MES,通过提供包括制造数据管理、计划排程管理、生产调度管理、库存管理、质量管理、人力资源管理、设备管理、采购管理、成本管理、看板管理、生产过程控制、…

TCP粘包和抓包

在 TCP 套接字中,发送和接收缓冲区用于暂存数据,以确保数据的可靠传输。具体来说,TCP 的 socket 收发缓冲区的主要特点和概念如下: 1. 发送缓冲区(Send Buffer) 定义: 发送缓冲区用于存储待发送的数据。应…

如何在不格式化的情况下解锁 Android 智能手机密码

如果您忘记密码,您的 Android 移动设备将锁定您。发生这种情况时,通常可以通过恢复出厂设置来重新获得对设备的访问权限。可悲的是,这将导致所有数据丢失。下面列出的是解锁锁定的Android 手机而不会丢失任何个人数据的有效方法。 Android 手…

排查Maven问题的步骤

0.检查pom文件完整性 1.检查IDEA中配置是否正确 2.使用清楚工具将所有的lastupdate清除, 3.有些依赖是公司的依赖 —>配置私服 —>拷贝同事仓库,覆盖自己的仓库 4.有了私服地址,但是还是下载不到 —>查看地址是否能访问 —>挂VPN

linux多进程与多线程总结

这里写自定义目录标题 2 linux多进程与多线程2.1 进程间通信2.1.1 管道2.1.2 信号2.1.3 消息队列2.1.4 共享内存 3 线程4 IO多路复用4.1 非阻塞IO4.2 IO多路复用 2 linux多进程与多线程 学习并发程序。 linux系统中,使用树型管理进程。因此进程之间有父子关系。通…

如何使用ssm实现学生公寓管理系统的设计与实现

TOC ssm106学生公寓管理系统的设计与实现jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,…

LeetCode.3146.两个字符串的排列差

题目描述: 给你两个字符串 s 和 t,每个字符串中的字符都不重复,且 t 是 s 的一个排列。 排列差 定义为 s 和 t 中每个字符在两个字符串中位置的绝对差值之和。 返回 s 和 t 之间的 排列差 输入输出示例: 思路一&#xff1…

TMC2209模块开启无限位归零

TMC2209无限位归零配置步骤: 3.1 配置内部采样电阻。具体在GCONF中internal_Rsens 1; 此步发送数据 05 00 80 00 00 00 83 00 3.2 电机电流设置,配置IHOLD_RUN寄存器; 此处发送数据 05 00 90 00 00 16 16 12 3.3 设置失速电流阈…

QT接收并解析GPS模块串口数据

目录 一、QT读取串口数据 二、解析数据 目标: 使用QT,读取gps模块的串口数据,并解析其中的经纬高数据,然后进行处理 一、QT读取串口数据 变量定义 QSerialPort *serial; QSerialPortInfo SerialPortInfo; QByteArray lineData…

Deepin【2】:Deepin系统盘扩容

Deepin【2】:Deepin系统盘扩容 1、进入live系统1.1、live系统入步骤 2、连接网络3、新增系统仓库4、安装gparted应用5、使用gparted进行扩容操作5.1、观察当前分区5.2、压缩data分区5.3、Rootb分区合并空闲空间5.4、Rootb分区压缩空间5.5、Roota合并空闲空间5.6、核…

【学习笔记】STM32F407探索者HAL库开发(二)STM32F4最小系统设计

【学习笔记】STM32F407探索者HAL库开发(二)STM32F4最小系统设计 0 什么是最小系统1 电源电路1.1 数字部分电源1.2 模拟部分电源1.3 参考电压1.4 VBAT 2 复位电路3 BOOT启动电路(F4)4 晶振电路4.1 低速晶振4.2 高速晶振 5 下载调试…

计算机操作员试题(公共科目)

计算机操作员试题(公共科目) ★★★ RZer整理 仅供参考 ★★★ 单项选择题 “人的本质”这一概念是人对自身的认识发展到一定阶段形成的,它力图从根本上回答“人是什么”或“什么是人”这一重大问题。马克思主义认为,人的本质( )。 A.永恒不变 B.可随主观意志而任意改变 C…

【Material-UI】Radio Group中的 Color 属性详解

文章目录 一、Radio Group 组件概述1. 组件介绍2. 基本用法 二、Color 属性详解1. Color 属性的作用2. 使用 Color 属性设置颜色3. 自定义颜色 三、Color 属性的实际应用场景1. 品牌一致性2. 状态指示3. 突出特定选项 四、注意事项1. 色彩对比2. 无障碍设计3. 主题定制 五、总结…

electron仿微信,点击子窗口以外的区域时、关闭子窗口

环境 windows:PC微信 我们可以看到,微信聊天界面点击右上角三个点时,会显示这个人的聊天信息窗口,我们把鼠标点击在其他位置时,这个聊天信息窗口就消失了,那么,这是怎么实现的呢,能…

Git的使用教程及常用语法02

四.将文件添加到仓库 创建仓库 git init查看仓库的状态 git status 添加到暂存区 git add提交 git commitgit status 可以查看当前仓库的状态信息,例如包含哪些分支,有哪些文件以及这些文件当前处在怎样的一个状态。 由于当前没有存储任何的东西&…