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

进程管理4——进程优先级

目录

为什么要有优先级呢?

什么是优先级呢?

Linux下具体的优先级做法

意义


一个进程,要被操作系统管理,需要先描述再组织,也就是每个进程就有task_struct结构。一般在运行或者调度某些进程的时候,也是有先后的。这与优先级有关。

为什么要有优先级呢?

优先级是谁先谁后享受到某种资源的问题,某种资源指的就是CPU资源。只有一个CPU,可能有几十个或者上百个进程。因此进程通过竞争,才能获取对应的CPU资源。也就是说,进程太多,需要通过某种方式来竞争资源。

本质:CPU是有限的。CPU资源稀缺,所以会有优先级。

优先级就是竞争的某种方式。

什么是优先级呢?

进程优先级本质上决定一个进程是否被放在CPU上。什么时候被放在CPU上。

进行确认是谁应该先获得某种资源,谁后获得某种资源。优先级调度器调度的某种窗口。由调度器来评判优先级的。

我们是可以通过一些数据来表明优先级的。PCB中的一些数字就是来表达她的优先级的。

Linux下具体的优先级做法

ps显示当前系统的进程状态 

-l 以列表的形式查看当前我登录的会话中的所有进程

-a 所有终端机下执行的程序。

我们先查看一下进程的对应信息。

PRI(new)=PRI(old)+NI 

PRI:这个进程可被执行的优先级。值越小,优先级越高,相比之下越先被执行。PRI(od)默认值是80

NI:nice值,用来修正状态的优先级。取值范围:-20——19。

因此,调整状态的优先级,在Linux下就是调整进程的nice值。

如何更改进程的优先级?

更改优先级:

用top命令或者ps命令或者getpid来获取对应的pid之后

renice+对应的nice+对应进程的pid

一般情况下,普通用户只能降低进程的优先级,只有超级用户才能提升优先级。也就是说nice设置成负值需要使用sudo来提升权限。

 

意义:

通过观察我们发现,优先级的调整是在一个较小的范围内的。优先级的取值在60——99.为什么?

OS不是为了快速调度某些进程(如果快速调度的话,值相差很大)是为了进程在一个时间段内较为均衡地获取对应的资源。维持计算机的平衡。

相关文章:

  • 外网访问内网80端口【内网穿透】
  • Android性能优化技术,在大厂中为何这么看重?进大厂必学好
  • 基于自建数据集【海底生物检测】使用YOLOv5-v6.1/2版本构建目标检测模型超详细教程
  • 水平分表之基因法
  • Gorm笔记
  • 抽空做了个“胃肠镜”,唠唠嗑
  • 现在工作是不是很难找?
  • Colmap算法pipeline
  • QCC51XX---TwsTopology_Init(goals分析)
  • 新概念英语第2册-第01课笔记
  • linux环境下基于opengl的3*3可控魔方绘制
  • C#——控件
  • Elk-Metricbeat配置对ELK的监控 (Metricbeat-part4)(待续)
  • Opengl ES之纹理贴图
  • 淘宝天猫商品全网搜索接口
  • es6(二):字符串的扩展
  • ES6系统学习----从Apollo Client看解构赋值
  • EventListener原理
  • gf框架之分页模块(五) - 自定义分页
  • Java的Interrupt与线程中断
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Linux CTF 逆向入门
  • MySQL-事务管理(基础)
  • vuex 学习笔记 01
  • - 概述 - 《设计模式(极简c++版)》
  • 机器学习 vs. 深度学习
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端自动化解决方案
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 少走弯路,给Java 1~5 年程序员的建议
  • 协程
  • 函数计算新功能-----支持C#函数
  • # centos7下FFmpeg环境部署记录
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (4)Elastix图像配准:3D图像
  • (分类)KNN算法- 参数调优
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (三)c52学习之旅-点亮LED灯
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)编辑寄语:因为爱心,所以美丽
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • /etc/shadow字段详解
  • [100天算法】-二叉树剪枝(day 48)
  • [20160902]rm -rf的惨案.txt
  • [C#]扩展方法
  • [C++][基础]1_变量、常量和基本类型
  • [IE9] IE9 RC版下载链接
  • [java]删除数组中的某一个元素
  • [LeetCode] 2.两数相加
  • [MAC OS] 常用工具