在Linux系统中,nice值和静态优先级用于控制进程调度的优先级,但它们的范围和含义有所不同。让我们详细解释一下两者的区别和联系。

1. Nice值

  • 范围nice值的范围是从 -20 到 19。

    • -20:最高优先级。
    • 19:最低优先级。
  • 作用nice值用于调整进程的相对优先级。nice值越低,进程的优先级越高,调度程序会更频繁地调度该进程。
  • 修改方式:可以通过命令行工具如 nicerenice 来修改进程的 nice 值。

2. 静态优先级

  • 范围:静态优先级的范围是从 0 到 139。

    • 099:实时进程的优先级。
    • 100139:普通进程的优先级(由 nice 值确定)。
  • 关系:普通进程的静态优先级是由 nice 值计算得来的。计算公式是:
    静态优先级 = nice值 + 20 + 100

    因此:

    • nice 值为 -20 的进程,静态优先级为 -20 + 20 + 100 = 100(最高优先级)。
    • nice 值为 19 的进程,静态优先级为 19 + 20 + 100 = 139(最低优先级)。

区别与联系

  • nice值:是一个用户友好的方式,用于设置和调整进程优先级。用户可以方便地通过调整 nice 值来影响进程的优先级。
  • 静态优先级:是内核实际使用的优先级数值,用于调度程序决定进程的执行顺序。普通进程的静态优先级是由 nice 值换算而来的,范围在 100 到 139 之间。

示例

其中DEFAULT_PRIO的默认值为120,对应于Nice值为0。

NICE_TO_PRIO(nice) = nice + DEFAULT_PRIO
PRIO_TO_NICE(prio) = prio - DEFAULT_PRIO
  • 一个进程的 nice 值为 0,它的静态优先级为:
  -20 + 120 = 100
  • 一个进程的 nice 值为 -10,它的静态优先级为:
    -10 + 120 = 110

总结一下,nice 值是用户设置的相对优先级,而静态优先级是内核使用的绝对优先级。普通进程的静态优先级是通过 nice 值计算得来的,用于确定进程的调度顺序。

NICE与静态优先级的关系的更多相关文章

  1. 窥探 kernel --- 进程调度的目标,nice值,静态优先级,动态优先级,实时优先级

    http://blog.chinaunix.net/uid-24227137-id-3595610.html 窥探 kernel --- 进程调度的目标,nice值,静态优先级,动态优先级,实时优先级 ...

  2. STM32——CAN协议帧的标准格式和扩展格式与优先级的关系

    一.CAN数据帧的标准格式和扩展格式 我们知道CAN总线上的数据帧都可以配置一个ID号,其可以为11位(标准ID格式)或者29位(扩展ID格式),这也是数据帧的标准格式和扩展格式的区别所在. 这个ID ...

  3. Linux2.6内核进程调度系列--scheduler_tick()函数3.更新普通进程的时间片

    RT /** * 运行到此,说明进程是普通进程.现在开始更新普通进程的时间片. */ /* 首先递减普通进程的时间片计数器.如果用完,继续执行以下操作 */ if (!--p->time_sli ...

  4. 嵌入式系统Linux内核开发工程师必须掌握的三十道题(转)

    嵌入式系统Linux内核开发工程师必须掌握的三十道题 如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师,试试看! 1) Linux中主要有哪几种内核 ...

  5. 浅析Linux内核调度

    1.调度器的概述 多任务操作系统分为非抢占式多任务和抢占式多任务.与大多数现代操作系统一样,Linux采用的是抢占式多任务模式.这表示对CPU的占用时间由操作系统决定的,具体为操作系统中的调度器.调度 ...

  6. Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)

    1 前言 1.1 进程调度 内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来. 调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创造并行执行的错觉, 该任务分为两个 ...

  7. Linux进程调度策略的发展和演变(转)

    转发:http://blog.csdn.net/gatieme/article/details/51701149  1 前言 1.1 进程调度 内存中保存了对每个进程的唯一描述, 并通过若干结构与其他 ...

  8. 802.1p 优先级与内部优先级的映射关系

    缺省情况下,所有华为 S 系列交换机的 802.1P 优先级 与内部优先级的映射关系是 一 样的,如表 10-3 所示.从中可以看出,这些交换机中 802.1p 优先级与内部优先级的缺省映射关系是按等 ...

  9. 测试误区《二》 python逻辑运算和关系运算优先级

    关系运算 关系运算就是对2个对象进行比较,通过比较符判断进行比较,有6种方式. x > y 大于 x >= y 大于等于 x < y 小于 x <= y 小于等于 x = y ...

  10. 进程的优先级 与 CFS 进程调度

    在Linux下改变进程的优先级 作者:曾老师,华清远见嵌入式学院讲师. 作为多任务的操作系统,Linux内核为每个创建的进程分配时间片并根据其优先级进行调度.当进程被创建时,其对应的task_stru ...

随机推荐

  1. 【Mybatis】05 官方文档指北阅读 vol3 配置 其二

    对象工厂(objectFactory)[省略,入门阶段实在不懂] 插件(plugins)[省略,入门阶段实在不懂] 环境配置(environments) MyBatis 可以配置成适应多种环境,这种机 ...

  2. 【Mybatis-Plus】06 代码生成器 CodeGenerator

    导入生成器需要的依赖坐标: <dependency> <groupId>com.baomidou</groupId> <artifactId>mybat ...

  3. 人形机器人操作系统(开源) —— FreeRTOS

    地址: https://www.freertos.org/zh-cn-cmn-s/index.html

  4. 华为显卡已经支持pytorch计算框架

    相关链接: https://support.huawei.com/enterprise/zh/doc/EDOC1100079287/a21c08de https://www.zhihu.com/que ...

  5. Apache DolphinScheduler社区又一PMC获推选通过!

    PROFILE 姓名:程鑫 公司:阿里云 职位:开发工程师 Github ID: rickchengx 从事领域:大数据调度系统开发 兴趣爱好:健身 推举理由 他于2022年8月2日开始了他的Dolp ...

  6. RabbitMq高级特性之死信队列 通俗易懂 超详细 【内含案例】

    RabbitMq高级特性之死信队列 又称 死信交换机 DLX 介绍 当消息成为 Dead message 后,会重新发送到另一个交换机,这个交换机就是 DLX(死信交换机) 消息成为死信的情况公有三种 ...

  7. C语言/实现MD5加密

    本文详细视频讲解,已经发布到B站 https://www.bilibili.com/video/BV1uy4y1p7on/ 更多仔细,请关注公众号:一口Linux 一.摘要算法 摘要算法又称哈希算法. ...

  8. 华为交换机S5700-52C-EI配置以太网和snmp服务

    配置以太网 通过超级终端Hyper Terminal和console串口线链接华为交换机 # 用超级终端打开,配上串口线,用9600波特率链接 system-view interface Vlanif ...

  9. SNMP基础概念

    一.什么是SNMP?     SNMP=Simple Network Management Protocol (简单网络管理协议) SNMP是被广泛接受并投入使用的工业标准,提供了一个框架来定义管理信 ...

  10. .NET 6 使用Nlog 记录日志到本地并写入SQLserver数据库

    1. 安装Nlog 对应Nuget包版本 NLog:5.0.4 NLog.Database:5.0.4 NLog.Web.AspNetCore:5.1.4 Microsoft.Data.SqlClie ...