【Linux进程】进程优先级和其他概念 {查看进程优先级,PRI和NI,修改进程优先级;竞争性,独立性,并发和并行,进程上下文}

news2024/11/16 17:30:32

进程优先级和其他概念

在这里插入图片描述

一、进程优先级

1.1 基本概念

什么是优先级?

  • 进程的优先权(priority)就是用来确定CPU资源分配的先后顺序的。
  • 进程的优先级是调度器调度进程到CPU执行的重要指标。

为什么要存在优先级?

  • 由于CPU资源有限,但是等待被执行的进程却很多,这时就需要通过某种方式竞争资源。

配置进程优先权的好处?

  • 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以使系统高效完成任务,更合理地配置相关资源,从而改善系统性能。
  • 进程还可以在指定的CPU上运行,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。

1.2 查看进程优先级

ps -l 命令

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

在这里插入图片描述

我们很容易注意到其中的几个重要信息,有下:

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

PRI and NI

进程的PRI为:PRI = Default_PRI + NI

  1. PRI 即进程的优先级,或者通俗点说就是程序被CPU执行的先后顺序,此值越小进程的优先级别越高。
  2. Default_PRI:为默认优先级,是操作系统为进程自动设定的优先级。
  3. NI 即进程的nice值,其表示相对进程默认优先级的修正数值。
  4. 当nice值为负值的时候,该程序的PRI将变小,其优先级会变高;
  5. 所以,调整进程优先级,在Linux下就是修改进程的nice值。

注意:

  • 如果将进程的nice值设置为负数,即将进程的优先级调高,需要root权限。

  • nice其取值范围是-20至19,一共40个级别,也就是进程优先级的变化范围。

  • 限制nice值的范围有以下几个原因:

    1. 防止滥用系统资源:如果允许进程设置任意的nice值,那么恶意进程可能会将自己的优先级设置得非常高,从而占用大量的CPU资源,导致其他进程无法正常运行。
    2. 维护系统的稳定性:通过限制nice值的范围,可以确保系统中的关键进程(如系统服务)具有较高的优先级,以保持系统的稳定性和响应性。
    3. 避免优先级倾斜:如果允许进程设置过低或过高的nice值,可能会导致优先级倾斜,即某些进程过于优先处理,而其他进程则无法得到足够的CPU时间。

    通过限制nice值的范围,系统可以更好地管理进程的优先级,确保资源的合理分配和系统的正常运行。


1.3 修改进程优先级

使用top命令更改进程的nice值:
进入top后按“r”–>输入进程PID–>输入nice值

将myproc进程的nice值设为-20后又设为19:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


二、其他概念

2.1 竞争性和独立性

  • 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理配置相关资源,便具有了优先级
  • 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰

2.2 并发和并行

  • 并行(Parallel):是指多个CPU同时执行多个任务或操作。在并行计算中,多个任务可以同时进行,每个任务都有自己的处理器或计算资源。并行计算可以显著提高计算速度和系统的吞吐量。例如,多核处理器可以同时执行多个线程或进程,从而实现并行计算。
  • 并发(Concurrency):是指一个CPU通过采用进程切换的方式,在一段时间之内让多个进程都得以推进。在并发计算中,多个任务可以交替执行,通过时间片轮转、抢占与出让CPU资源或者事件驱动的方式来切换执行。并发计算可以提高系统的响应性和资源利用率。

2.3 进程上下文

进程的上下文(Context)是指操作系统在调度和切换进程时需要保存和恢复的进程相关的信息。上下文包括了进程的执行状态、寄存器的值、内存映射、打开的文件描述符、信号处理器等。

进程的上下文保存了进程的执行环境,以便在进程被中断或切换时能够恢复到之前的状态,并按照之前的逻辑继续向后运行,就如同没用中断过一样。 当操作系统决定切换到另一个进程时,它会保存当前进程的上下文,并加载下一个进程的上下文,以便继续执行。上下文切换通常发生在以下情况下:

  1. 时间片用尽:当一个进程的时间片用尽时,操作系统会保存当前进程的上下文,并加载下一个进程的上下文。

  2. 中断处理:当发生硬件中断或软件中断时,操作系统会保存当前进程的上下文,并转而处理中断请求。

  3. 优先级调度:当一个优先级更高的进程就绪并等待执行时,操作系统会保存当前进程的上下文,并加载优先级更高的进程的上下文。

上下文切换是一项开销较大的操作,因为需要保存和恢复大量的进程信息。因此,减少上下文切换的次数可以提高系统的性能和响应性。优化上下文切换是操作系统设计和调度算法的重要考虑因素之一。

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

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

相关文章

注册登录账号系统

目录 前言 一、项目介绍 二、项目分析 1.框架介绍 框架流程图:​ 板块分析: 前提: (1)注册板块 (2)登录板块 (3)main方法主板块 2.实操展示 (1&#x…

并发List:CopyOnWriteArrayList

CopyOnWriteArrayList 适合写多读少 介绍 JUC包中的并发List只有CopyOnWriteArrayList。CopyOnWriteArrayList是一个线程安全的ArrayList,使用了写时复制策略,对其进行的修改操作都是在底层的一个复制的数组上进行的。 CopyOnWriteList 实现的接口和 Ar…

async异步任务_同步任务选项

需要先看完上文:async创建异步任务_御坂美琴1的博客-CSDN博客 让类里面的一个成员函数当作线程的参数。 async里面有三个参数,一个是成员函数的地址,第二个是 类,第三个是传入的参数。 接下来介绍async的同步线程创建。 asy…

C++类Day2,作业思维

1.昨天的基础上完成运算符重载 #include <iostream> using namespace std;class Complex { private:int real;int vir; public://无参构造Complex(){cout << "无参构造" << endl;}//有参构造Complex(int a,int b):real(a),vir(b){cout << &q…

Ubuntu18.04本地部署Stable-Diffusion-webui绘画

记录Ubuntu下安装Stable-Diffusion-webui&#xff0c;比较简单,以供参考。 系统&#xff1a;Ubuntu 18.04.4 LTS 内存&#xff1a;40G 显卡&#xff1a;32G 硬盘&#xff1a;500G 一、安装cuda 支持安装的cuda版本可以用nvidia-smi命令查看&#xff1a; ----------------…

Tomcat的优化及多实例部署

文章目录 一.Tomcat的优化1.tomcat启动速度优化——random2.Tomcat配置文件参数优化2.1 常用的优化相关参数2.2 优化的配置文件 二.Tomcat多实例部署1.为什么会有tomcat多实例部署2.多实例部署图示3.多实例部署的配置3.1 安装JDK3.2 安装启动Tomcat3.3 配置 tomcat 环境变量3.4…

筹码分布图高级用法——历史换手衰减系数自动计算公式

在使用筹码分布图时&#xff0c;很多人习惯于采用软件的默认设置&#xff0c;然而默认设置不一定能满足我们的要求。今天将向大家介绍筹码分布图的高级用法——历史换手衰减系数&#xff0c;并编写历史换手衰减系数自动计算公式。有些网友认为通过修改衰减系数&#xff0c;可以…

【远程控制】向日葵连接Ubuntu黑屏

Ubuntu 远程黑屏 Ubuntu 22.04 方法 1&#xff1a;切换桌面工作模式方法 2&#xff1a;安装 lightdm 插件来渲染界面客服工单回答 Ubuntu 22.04 方法 1&#xff1a;切换桌面工作模式 进入到登录页 点击用户名 点击右下角&#xff0c;切换桌面工作模式为Ubuntu on xorg即可 …

基于Python+MySQL所写的音乐网管理系统

点击以下链接获取源码资源&#xff1a; https://download.csdn.net/download/qq_64505944/87971719?spm1001.2014.3001.5503 《甜橙音乐网》程序使用说明 在虚拟环境下输入命令“python manage.py runserver”启动项目&#xff0c;启动成功后&#xff0c;访问“http://127.0…

x264 deblock filter 代码解读

在x264源码里&#xff0c;void x264_frame_deblock_row( x264_t *h, int mb_y )函数中定义了如下的宏片段&#xff0c;这段代码旨在完成对MB的deblocking 操作&#xff0c;其中针对edge 取不同的值的时候&#xff0c;有的做deblocking&#xff0c; 有的不做&#xff0c;看这部分…

计算机网络的89个核心概念

主机&#xff1a;计算机网络上任何一种能够连接网络的设备都被称为主机或者说端系统&#xff0c;比如手机、平板电脑、电视、游戏机、汽车等&#xff0c;随着 5G 的到来&#xff0c;将会有越来越多的终端设备接入网络。 通信链路&#xff1a;通信链路是由物理链路&#xff08;…

[nexus]基于nexus搭建npm仓库及上传插件到仓库

目录 环境信息搭建npm仓库创建存储位置创建proxy仓库创建hosted仓库创建group仓库配置域 下载及上传登录下载上传 环境信息 nexus: 3.29.2-02node: v14.18.2npm: 6.14.15 搭建npm仓库 创建存储位置 这一步不是必须的&#xff0c;可以跟之前创建的复用 依次打开 [设置] ->…

【Docker】Docker的简介安装以及使用Docker安装Mysql案例

Docker docker概述 Docker是一个开源的应用容器引擎诞生于2013年初&#xff0c;基于Go语言实现&#xff0c;dotClou公司出品&#xff08;后改名为Docker inc&#xff09;Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可以直接的容器中&#xff0c;然后发布到任何…

测试的流程

目录&#xff1a; 测试流程价值与体系测试计划业务架构分析思路bug基本概念bug处理流程测试流程管理jira系统-测试用例管理测试流程管理 jira 系统-Bug管理测试总结业务架构分析工具plantuml测试流程管理jira系统-测试流程定制测试流程管理 jira 系统-Bug管理流程定制 1.测试…

HTML5新特性总结

新增语义化标签 新增了很多语义化标签&#xff0c;如header、footer、nav、article、section(页面中的某段文字&#xff0c;或文章中的某段文字)、aside、main 其中article标签里可以包含多个section&#xff1b; section强调的是分段或分块&#xff0c;若想将一块内容分成几…

ARM学习(23)AMP和SMP的认识与理解

笔者来聊聊AMP和SMP架构理解&#xff08;多核下系统&#xff09;。 简介介绍 笔者经常听到ARM架构时&#xff0c;谈到SMP的架构或者AMP的架构&#xff0c;今天特意来了解一下&#xff0c; SMP&#xff1a;Symmetric multiprocessing&#xff0c;对称多处理器AMP&#xff1a;A…

leetcode:2154. 将找到的值乘以 2(python3解法)

难度&#xff1a;简单 给你一个整数数组 nums &#xff0c;另给你一个整数 original &#xff0c;这是需要在 nums 中搜索的第一个数字。 接下来&#xff0c;你需要按下述步骤操作&#xff1a; 如果在 nums 中找到 original &#xff0c;将 original 乘以 2 &#xff0c;得到新…

LangChain大型语言模型(LLM)应用开发(二):Conversation Memory

LangChain是一个基于大语言模型&#xff08;如ChatGPT&#xff09;用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口&#xff0c;可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互&#x…

Java9集合类新增功能

前言 Java8及Java9在集合Collection类中新增了一些很好用的新方法&#xff0c;能方便程序员更便捷的处理集合数据&#xff0c;本文对其中的一些方法进行总结 一. List 1.创建 // 传统方法List<String> list1 new ArrayList<>();list1.add("item1");li…

论文导读 | Operation ResearchManagement Science近期文章精选

推文作者&#xff1a;周梓渊 编者按 本期我们选取了最近来自Operation Research和Management Science的六篇文章以飨读者&#xff0c;前四篇文章来自OR&#xff0c;最后两篇文章来自MS&#xff1b;内容涉及多个方面&#xff0c;实现了方法论与具体应用实践的结合&#xff0c;例…