首页 > 系统相关 >调度器51—进程优先级 prio、static_prio、normal_prio、rt_priority

调度器51—进程优先级 prio、static_prio、normal_prio、rt_priority

时间:2023-04-27 20:35:16浏览次数:41  
标签:rt 优先级 prio normal 实时 static 进程

一、概述

struct task_struct {
    int                prio;
    int                static_prio;
    int                normal_prio;
    unsigned int    rt_priority;
    ...
}

 

二、动态优先级——prio

prio 表示进程的当前优先级,是一个动态值,会在进程运行时不断变化。进程的实际运行顺序是以优先级为基础的,优先级高的进程在竞争CPU时间时,会比优先级低的进程更有可能被内核调度。prio的取值范围一般是0~139。

在某些情况下,内核需要暂时提高进程的优先级(内核同步的实时互斥量可能会提高动态优先级从而使得优先级较低的进程先运行),因此需要新增一个优先级,也就是动态优先级来表示。由于此改变不是永久的,因此静态优先级和普通优先级不受影响。

 

三、静态优先级——static_prio

static_prio 表示进程的静态(初始)优先级,是一个固定的值,在进程创建时被赋予,不会随进程的运行而变化。进程的 static_prio 值也是和进程的调度有关的,但它主要用于计算进程的 nice 值。

进程启动时分配的优先级,可以使用nice和sched_setscheduler系统调用修改,否则在进程运行时保持不变。


四、普通优先级——normal_prio

normal_prio 表示进程的普通优先级,是根据 static_prio 和 nice 值计算得出来的一个值。进程的 normal_prio 值会随着 nice 值的变化而变化,但不会超出 prio 的取值范围。

基于进程静态优先级和调度策略计算出的优先级。因此如果普通进程和实时进程具有相同的静态优先级,它们的调度策略不同,所以计算而来的普通优先级也不同


五、实时优先级——rt_priority

rt_priority 表示进程的实时优先级,只有实时进程才有这个值。如果进程是实时进程,则 rt_priority 表示了进程的实时优先级,其取值范围是0~99,其中0为最高优先级。


六、小结

总之,进程的优先级值从 static_prio、nice 值的计算到 normal_prio、再到实时优先级的计算,构成了一个完整的优先级体系。prio 值是在进程运行过程中动态变化的,实时反映了进程的运行情况,而 static_prio 和 normal_prio
则用于计算进程在调度队列中的位置,以及在内核的调度过程中选择合适的进程。同时,rt_priority 主要用于实时进程的调度,由于实时进程需要更高效的调度,因此它们有自己的优先级体系。

 

标签:rt,优先级,prio,normal,实时,static,进程
From: https://www.cnblogs.com/hellokitty2/p/17360131.html

相关文章

  • 使用TortoiseGit(小乌龟)管理gitee和本地代码仓库
    一、安装git二、安装TortoiseGitTortoiseGit(小乌龟)的安装三、创建版本库创建一个文件夹,右键,选择Git在这里创建版本库 点击确定 然后我们就会发现多了一个.git的文件,如果没有的话,把查看-->显示-->隐藏的项目勾选就可以看见了 点击拉取 点击管理远端 ......
  • TortoiseGIt的安装
    一、什么是TortoiseGit?TortoiseGit是一个开放的Git版本控制系统的客户端,为git提供了图形化的操作,操作更加简便 二、下载TortoiseGit官网2.1点击下载图标 2.2找到对应的版本,点击下载 2.3默认是英文,可以根据自己的语言习惯来选择 2.4打开安装程序,点击Next......
  • 常见网络摄像机(摄像头)的端口及RTSP地址
    海康威视默认IP地址:192.168.1.64/DHCP用户名admin密码自己设端口:“HTTP端口”(默认为80)、“RTSP端口”(默认为554)、“HTTPS端口”(默认443)和“服务端口”(默认8000),ONVIF端口80。RTSP地址:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream......
  • start minikube with Kubernetes 1.26
    适合于--kubernetes-version=v1.23.3之后的版本,可以使用docker驱动运行minikubestart--driver=docker--image-mirror-country='cn'--force--kubernetes-version=1.26.0--extra-config=apiserver.runtime-config=admissionregistration.k8s.io/v1alpha1--feature-gates=......
  • TypeError: Cannot read properties of undefined (reading 'filter')
    TypeError:Cannotreadpropertiesofundefined(reading'filter')constfilterTableData=computed(()=>store.data.users!.filter((data)=>!search.value||data.nick.toLowerCase().includes(search.value......
  • imagenomic portraiture安装方法, portraiture插件下载
    portraiture插件下载ImagenomicPortraiture是一款专业的人像磨皮插件,适用于AdobePhotoshop、AdobeLightroom和AppleAperture等软件。它提供了丰富的人像磨皮和美容修饰工具,可以帮助用户快速、高效地进行人像后期处理。imagenomicportraiture安装方法 下载好Portraiture......
  • JDBC使用List和Map键值封装多表查询结果 java JDBC insert查询返回List对象
    JDBC使用List和Map键值封装多表查询结果https://www.cnblogs.com/zengyu1234/p/15451812.html查询结果的处理Java.sql.ResultSet接口是jdbcAPI中唯一用来封装查询结果记录行的组件。ResultSet接口唯一创建方式是通过执行SQL查询返回创建此对象 遍历结果集中数据truenext......
  • highchart 生成一个3d的柱状图
    highchart生成一个光秃秃的柱状图Highcharts.chart('container',{chart:{type:'column',margin:0,options3d:{enabled:true,alpha:15,//控制x轴角度beta:15,//控制y轴角度depth:50,//柱子深度viewDistance......
  • 为Flowportal 流程库 增加 按流程关键字 全局搜索功能
    用户在Flowportal后台流程库中维护已建好的流程时,如果已建立的流程比较多且分布在多个文件夹下时,由于系统提供的流程查找功能,仅局限于在某个文件夹中按流程关键字过滤,导致查找流程效率底,速度慢,鉴于此,本人特别根据广大用户的实际需求,改进流程库的查找功能,使用户可以根据流程关键......
  • web: pdf_converter | DASCTF Apr.2023 X SU战队2023开局之战
    题目内容这道题是给源码的,是个thinkphp项目,可以直接看看控制器就一个pdf方法,用了dompdf库,然后把用户传入的content写到pdf中。既然这么明显,那就搜索dompdf漏洞知识点首先看到:https://ghostasky.github.io/2022/03/19/dompdf/首先看到这里说,如果传入自定义的c......