当前位置: 首页 > news >正文

【Linux】进程周边之优先级

目录

一、优先级

1.为什么要有进程优先级?

2.什么是进程优先级?

3.优先级的初始设定

3.1 PRI 和 NI

3.2如何修改优先级?(sudo/root)

3.2.1 概念:

3.2.2 如何查看进程的优先级?

3.3.3 或者查看某个特定进程的优先级?

3.3.4使用top指令修改NI

3.3.5 使用renice指令修改NI

3.3为什么优先级不能随意修改?

3.4进程相关的一些概念


一、优先级

1.为什么要有进程优先级?

资源过少!

当计算机中的某种资源数量,与即将使用该资源的进程数量相比,比较少。

不能立刻满足进程的需求。

因此,进程需要进行排队,等待这种资源。

使用优先级,确定进程被执行的先后顺序。

2.什么是进程优先级?

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

3.优先级的初始设定

3.1 PRI 和 NI

在Linux中,优先级就是一个int类型的变量。

  • PRI : 代表这个进程可被执行的优先级, 其值越小越早被执行
  • NI :代表这个进程的nice值, 我们通常通过修改nice值来修改PR

在进程控制块PCB中,对于进程优先级、以及相关变量NI 是这样定义的。


在Linux中,默认的优先级是80。

Linux优先级是可以被修改的,Linux的优先级的范围[60,99],总共40个优先级。

Linux优先级本质就是数字,数字越小,优先级越高


3.2如何修改优先级?(sudo/root)

3.2.1 概念:

 PRI(新) = PRI(old)+ NI
 

对以上公式做出解释:

🔥PRI(old) = 80

🔥Linux系统允许用户调整优先级,但是不能直接让你修改pri,而是修改 NI 值 

        NI 不是优先级,而是进程优先级的修正数据!

  • PRI取值范围[60,99]
  • nice值取值范围[-20,19]


3.2.2 如何查看进程的优先级?
ps -al

3.3.3 或者查看某个特定进程的优先级?
ps -al | head -1 && ps -al | grep 特定进程的pid/进程名


3.3.4使用top指令修改NI

  1. 输入top启动任务管理器
  2. 输入r(renice)来修改NI的值
  3. 再输入目标进程的pid来定位
  4. 输入想要修改的NI值(注意不是输入PRI值)

top修改进程优先级

3.3.5 使用renice指令修改NI
renice NI的值 对应进程的pid


 辨析:权限vs优先级

权限:能不能

优先级:可以执行,但是被执行的时间早晚。


3.3为什么优先级不能随意修改?

 为什么修改优先级,只能在规定的【60,99】这个区间,反而不能无下限无上限的修改?

这是因为,操作系统在调度进程时,需要较均衡的让每一个进程都要得到调度。
如果用户无下限的修改优先级,始终会有优先级高的进程不断产生,
而那些,优先级较低的进程,长时间得不到CPU的资源。

这就是是进程饥饿问题的产生。

3.4进程相关的一些概念

  • 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便有了优先级。
  • 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰。
  • 并行: 多个进程在多个CPU下分别同时进行运行,这称之为并行。
  • 并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发

并行与并发在之后的文章中还会提到!大家要对这两个概念有了解。


💗感谢阅读!💗

相关文章:

【Linux】进程周边之优先级

目录 一、优先级 1.为什么要有进程优先级? 2.什么是进程优先级? 3.优先级的初始设定 3.1 PRI 和 NI 3.2如何修改优先级?(sudo/root) 3.2.1 概念: 3.2.2 如何查看进程的优先级? 3.3.3 或…...

Linux高级编程_29_信号

文章目录 进程间通讯 - 信号信号完整的信号周期信号的编号信号的产生发送信号1 kill 函数(他杀)作用:语法:示例: 2 raise函数(自杀)作用:示例: 3 abort函数(自杀)作用:语法:示例: 4 …...

uniapp修改uni-ui组件样式(对微信小程序/H5有效,vue3)

寻找要修改的样式 使用开发者工具找到具体要修改的class类名 修改 <style lang"scss">//.nav为上一级的class.nav::v-deep .uni-navbar--border {border-bottom-style: none !important;} </style>完整代码 <template><view><uni-na…...

Python 封装 socket 为 [TCP/UDP/MULTICAST] 服务端

在新线程中创建 TCP/UDP/MULTICAST 协议的服务端套接字&#xff0c;接收客户端的连接请求或数据&#xff0c;并调用 on_recv 回调函数处理数据。 #!/usr/bin/env python # -*- coding: utf-8 -*- import socket import threading import multiprocessingclass ServerSocket:de…...

c++ STL库 unordered_map

#include <iostream #include <string #include <unordered_map int main() { // 创建一个 unordered_map std::unordered_map<std::string, int> wordCount; // 插入元素 wordCount["apple"] 1; wordCount["banana"] 2;// 使用 insert…...

【接口测试】任务1:登录接口

需要技能竞赛软件测试资料的同学们可s聊我&#xff0c;详细了解 任务实现要求 根据系统管理员—登录—接口API文档&#xff0c;编写接口测试用例&#xff0c;分别使用PostMan及JMeter进行接口测试&#xff0c;需要检查系统接口是否能正常工作&#xff0c;返回值是否正确&#…...

二、Spring Boot集成Spring Security之实现原理

Spring Boot集成Spring Security之实现原理 一、Spring Security实现原理概要介绍二、使用WebSecurityConfiguration向Spring容器中注册FilterChainProxy类型的对象springSecurityFilterChain1、未配置securityFilterChain过滤器链时使用默认配置用于生成默认securityFilterCha…...

基于深度学习的点云处理模型PointNet++学习记录

前面我们已经学习了Open3D&#xff0c;并掌握了其相关应用&#xff0c;但我们也发现对于一些点云分割任务&#xff0c;我们采用聚类等方法的效果似乎并不理想&#xff0c;这时&#xff0c;我们可以想到在深度学习领域是否有相关的算法呢&#xff0c;今天&#xff0c;我们便来学…...

Javascript Object.assgin()详解以及深浅拷贝

Object.assign() 方法是 JavaScript 中用于将所有可枚举属性的值从一个或多个源对象复制到目标对象的方法。它将返回目标对象。这是一种浅拷贝&#xff0c;也就是说&#xff0c;如果源对象中的属性是一个对象或数组&#xff0c;那么这个属性的引用将被复制&#xff0c;而不是对…...

Redis篇(应用案例 - UV统计)(持续更新迭代)

目录 一、HyperLogLog 二、测试百万数据的统计 一、HyperLogLog 首先我们搞懂两个概念&#xff1a; UV&#xff1a;全称Unique Visitor&#xff0c;也叫独立访客量&#xff0c;是指通过互联网访问、浏览这个网页的自然人。 1天内同一个用户多次访问该网站&#xff0c;只记录…...

解锁微信小程序新技能:ECharts动态折线图搭配WebSocket,数据刷新快人一步!

在微信小程序中&#xff0c;数据可视化展示越来越受到开发者的重视。本文将为您介绍如何在微信小程序中使用ECharts绘制折线图&#xff0c;并通过WebSocket实现实时更新图表数据。 一、准备工作 创建微信小程序项目 首先&#xff0c;我们需要创建一个微信小程序项目。如果您已…...

上交所服务器崩溃:金融交易背后的技术隐患暴露杭州BGP高防服务器43.228.71.X

一、上交所宕机事件始末 2024 年 9 月 27 日&#xff0c;上交所交易系统突发崩溃&#xff0c;这一事件犹如一颗巨石投入平静的湖面&#xff0c;引起了轩然大波。当天上午&#xff0c;众多投资者反馈券商交易出现延迟问题&#xff0c;随后上交所发布了《关于股票竞价交易出现异常…...

P4、P4D、HelixSwarm 各种技术问题咨询

多年大型项目P4仓库运维经验&#xff0c;为你解决各种部署以及标准工业化流程问题。 Perforce 官网SDPHelixCore GuideHelixSwarm GuideHelixSwarm Download...

Linux 应用层协议HTTP

文章目录 一、初始HTTP协议二、URL格式网络中怎么通过URL进行定位资源呢&#xff1f;编码和解码 三、HTTP的请求格式和响应格式HTTP的请求格式HTTP的响应格式HTTP的请求方法GET方法POST方法GET Vs PostHTTP的封装和分用文件流操作浏览器获得一个完整的网页流程 HTTP的状态码对3…...

Python和C++混淆矩阵地理学医学物理学视觉语言模型和算法模型评估工具

&#x1f3af;要点 优化损失函数评估指标海岸线检测算法评估遥感视觉表征和文本增强乳腺癌预测模型算法液体中闪烁光和切伦科夫光分离多标签分类任务性能评估有向无环图、多路径标记和非强制叶节点预测二元分类评估特征归因可信性评估马修斯相关系数对比其他准确度 Python桑…...

HTTP 协议的基本格式和 fiddler 的用法

HTTP协议格式 HTTP是⼀个⽂本格式的协议.可以通过Chrome开发者⼯具或者Fiddler抓包,分析HTTP请求/响应的细节. 抓包工具的使用 以Fiddler为例. • 左侧窗⼝显⽰了所有的HTTP请求/响应,可以选中某个请求查看详情. • 右侧上⽅显⽰了HTTP请求的报⽂内容.(切换到Raw标签⻚可以看…...

【计算机网络】详解UDP协议格式特点缓冲区

一、UDP 协议端格式 16 位 UDP 长度, 表示整个数据报(UDP 首部UDP 数据)的最大长度&#xff1b;如果16位UDP检验和出错&#xff0c;报文会被直接丢弃。 1.1、检验和出错的几种常见情况 数据传输过程中的比特翻转&#xff1a;在数据传输过程中&#xff0c;由于物理介质或网络设…...

网络安全cybersecurity的几个新领域

一、电力安全 同学们&#xff0c;今天我们来讨论一下为什么网络安全&#xff08;Cybersecurity&#xff09;和电力系统&#xff08;Power Systems&#xff09;这两个看似不同的领域会有交集。其实&#xff0c;这两个领域之间的联系非常紧密。以下我将从多个角度进行解释&#…...

android 原生加载pdf

implementation("androidx.pdf:pdf-viewer-fragment:1.0.0-alpha02") pdf加载链接...

MAE(平均绝对误差)和std(标准差)计算中需要注意的问题

一、MAE&#xff08;平均绝对误差&#xff09; 计算公式&#xff1a; yi​ 是第i个实际值y^​i​ 是第i个预测值 计算方法&#xff1a; MAE就是求实际值与预测值之间的误差&#xff0c;需要给出预测值和原始的实际值 二、std&#xff08;标准差&#xff09; 计算公式&#x…...

电子设计竞赛必备:RC、运放、TTL信号处理电路实战指南(附避坑技巧)

电子设计竞赛信号处理电路实战&#xff1a;从RC滤波到TTL脉冲的进阶技巧 第一次参加电子设计竞赛时&#xff0c;我在信号处理环节浪费了整整两天时间——原本清晰的方波经过电路后变得面目全非&#xff0c;放大后的信号带着令人头疼的振荡&#xff0c;而评委要求的脉冲宽度总是…...

解锁欧空局10米土地利用数据:从注册到实战应用全流程解析

1. 欧空局10米土地利用数据简介 第一次接触欧空局WorldCover平台的朋友可能会被这个10米分辨率的土地利用数据惊艳到。作为一个长期和遥感数据打交道的从业者&#xff0c;我可以很负责任地说&#xff0c;这个数据集在精度和实用性上确实很能打。简单来说&#xff0c;它把全球地…...

ED-最优设计实战:如何用Python实现鲁棒实验设计(附完整代码)

ED-最优设计实战&#xff1a;如何用Python实现鲁棒实验设计&#xff08;附完整代码&#xff09; 在数据科学和工程领域&#xff0c;实验设计是优化参数估计和模型性能的关键环节。传统D-最优设计虽然经典&#xff0c;但在面对参数不确定性时往往表现不佳。本文将带你深入理解ED…...

React Native Keyboard Controller部署指南:生产环境最佳配置

React Native Keyboard Controller部署指南&#xff1a;生产环境最佳配置 【免费下载链接】react-native-keyboard-controller Keyboard manager which works in identical way on both iOS and Android 项目地址: https://gitcode.com/gh_mirrors/re/react-native-keyboard-…...

CD3抗体如何成为双抗药物的核心靶点?

一、双特异性抗体药物为何发展迅猛&#xff1f;双特异性抗体&#xff08;BsAb&#xff09;是一类能够同时特异性结合两个不同抗原或抗原表位的人工工程抗体。其通过同时阻断两个靶点介导的生物学功能&#xff0c;或将表达不同抗原的细胞拉近&#xff0c;实现单一抗体难以完成的…...

Windows下WVP+ZLMediaKit联动实战:5分钟搞定GB28181摄像头接入(附端口避坑清单)

Windows下WVPZLMediaKit联动实战&#xff1a;5分钟搞定GB28181摄像头接入&#xff08;附端口避坑清单&#xff09; 在智能视频监控领域&#xff0c;GB28181协议作为国家标准协议&#xff0c;正在成为设备互联的主流选择。但对于刚接触这一领域的开发者来说&#xff0c;从零开始…...

基于计算机视觉的AI头像质量评估系统

基于计算机视觉的AI头像质量评估系统 1. 引言 在数字社交时代&#xff0c;头像已经成为个人形象的重要代表。无论是社交平台、专业网站还是在线会议&#xff0c;一个高质量的头像都能显著提升个人形象和可信度。然而&#xff0c;如何快速评估头像的质量一直是个难题——什么样…...

Phi-3-mini-128k-instruct实战:利用VLOOKUP逻辑进行多源数据关联与报告生成

Phi-3-mini-128k-instruct实战&#xff1a;利用VLOOKUP逻辑进行多源数据关联与报告生成 1. 引言 如果你用过Excel&#xff0c;肯定对VLOOKUP这个函数不陌生。它的核心就一句话&#xff1a;根据一个表格里的某个值&#xff0c;去另一个表格里找到对应的信息&#xff0c;然后“…...

Ubuntu22.04微信依赖冲突的终极解决方案

1. 问题现象与原因分析 最近在Ubuntu 22.04上安装微信时&#xff0c;很多朋友都遇到了依赖冲突的问题。具体表现是当你尝试通过命令行安装微信时&#xff0c;系统会提示类似这样的错误信息&#xff1a; 下列软件包有未满足的依赖关系&#xff1a; libldap-2.4-2 : 依赖: libsas…...

Qwen3-TTS-VoiceDesign应用案例:智能硬件设备嵌入式多语种语音播报

Qwen3-TTS-VoiceDesign应用案例&#xff1a;智能硬件设备嵌入式多语种语音播报 1. 智能语音播报的市场需求 现在的智能硬件设备越来越普及&#xff0c;从智能家居到车载系统&#xff0c;从工业设备到消费电子产品&#xff0c;几乎都需要语音交互功能。但很多设备面临一个共同…...