Linux操作系统及进程(三)进程优先级及特性

目录

一、优先级概念

二、查看系统进程

三、进程切换


一、优先级概念

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

二、查看系统进程

操作系统往往会需要处理很多的进程,可是进程很多处理的顺序总要有个先后,此时就可以引出一个概念:优先级。

ps-la,可以以列表的形式打印出当前用户所创建的进程。

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

8d58b47259764f8380613584ecdf4f59.png

先来简单认识一下第一行的字母分别有什么含义:

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

其中PRI就是优先级,具象化一点就是PCB中的一个整形变量,Linux默认优先级是80,当然优先级的优先级是可以被修改的,其区间是[60,99]数字越小优先级越高,优先级一般不建议去调整。

那NI呢?就是我们所要说的nice值了,其表示进程可被执行的优先级的修正数值。
这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行。
所以,调整进程优先级,在Linux下,就是调整进程nice值。

使用top进入任务管理器,输入R后然后输入pid。然后输入数字,这里的数字是要加到PRI上的。

Linux允许用户修改优先级但是不允许直接修改优先级而是修改nice值,所以PRI=oldPRI+nice:

注意:这个oldpri每次都是从80开始的。

617b10b9280b4a7cb3f33e308ff9a769.png

d6dcd3458fa04227a8f374a65473dbdc.png

而为了符合Linux规定的优先级区间,nice值也是有区间的[-20,19] 。

而为什么要让优先级首先呢?主要是因为如果不加限制,那么很多程序员就可以把自己的优先级调的很小,这样会导致调度上不平衡,会导致优先级高的进程会优先得到资源,最终会导致常规进程很难得到CPU资源,从而迟迟不会被调度,最终会引发进程饥饿问题,所以操作系统必须要求优先级调整在可控范围之内。

所以进程存在以下四个特性:

efff90f9d3f74f52892963f91f4700fb.png

其中并行需要多个CPU来进程,我们一般的电脑不会存在,而并发则是CPU基于时间片快速的对多个进程进行轮转操作来实现多个进程同时运行。

 

三、进程切换

既然需要并发,那进程间一定设计到切换,进程每次被调度CPU时都会给每个进程产生一个调度队列,然后链接到CPU的运行队列,CPU内存在大量寄存器,负责记录在执行进程时的各种属性信息,而当时间片到了的时候,PCB进程会把寄存器内的当前各种信息进行保存,CPU内部的所有数据,都被称为进程的硬件上下文数据。

此时执行下一个进程,再将下一个进程的属性数据覆盖加载到CPU中。当进程被二次调度时,将曾经保存的硬件上下文数据进行恢复然后沿着上次执行到的位置继续执行。

db2bda03908d45a68640816c7c7c9329.png

CPU的寄存器只有一套,寄存器里面的数据都是进程私有的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

不敢想象吧!Anzo Capital发现不仅经济事件影响汇率天气也是

在投资交易中弄懂汇率的走势方向,对各位投资者的交易盈利那还不是小菜一碟,但各位投资者你们想象不到吧!Anzo Capital发现不仅经济事件能影响汇率,就连天气也能轻易影响汇率。 就用2015年1月15日的经济事件来说,当瑞…

【windows】安装 Tomcat 及配置环境变量

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

「MySQL」数据库约束

🎇个人主页:Ice_Sugar_7 🎇所属专栏:数据库 🎇欢迎点赞收藏加关注哦! 数据库约束 🍉约束类型🍌NOT NULL🍌UNIQUE🍌DEFAULT🍌主键🍌外键…

python类属性和global变量区别

数据成员是指在类中定义的变量,即属性,根据定义位置,又可以分为类属性和实例属性。 类属性定义在方法前面。 定义类属性,非全局变量 class MyClass:#global cc 10 ## 类属性def my_function(self):global qwqw 9print(this …

【已解决】vue3+ts使用Element-Plus icon图标不显示|element plus 使用 icon 图标教程

文章目录 使用Element-Plus icon图标不显示的解决方案确保已正确安装和引入Element-Plus及其图标库:检查是否有命名冲突: element plus 使用 icon 图标教程1. 安装 Element Plus2. 引入 Element Plus 和图标全局引入按需引入 3. 在组件中使用图标4. 自定…

【包远程运行安装】SpringBoot+Mysql实现的在线音乐播放系统源码+运行教程+开发文档(参考论文)

今天发布的是由【猿来入此】的优秀学员独立做的一个基于springboot脚手架的千千在线音乐播放系统,主要实现了在线音乐的播放和下载(支持付费和开通VIP功能) 除脚手架功能以外下面是系统的功能: 前台普通用户:注册、登录…

【@changesets/cli】变更集实战教程

一、背景概述 前端目前基于Monorepo架构的npm包开发很普遍,在开发完毕后,我们需要对包进行版本号升级,并且部署,这些操作如果是手动来操作的话,很麻烦,而且容易出错。 例如有这样的场景: -ap…

postgresql多选功能实现

一、背景介绍 在一所乡村小学,教师资源紧张,所以会出现一个教师身兼多职的情况,既是语文老师又是数学老师甚至还是体育老师,这个系统就是为各个班级分配老师,这样一个场景实现 二、代码实现及效果 美术语文英语数学…

qemu+kvm的基本用法

qemukvm的基本用法 1. KVM和QEMU的关系2 QEMU的安装3 使用QEMU3.1 创建虚拟镜像文件3.2 创建虚拟机3.3 使用虚拟机 4 关于kvm用户权限问题 1. KVM和QEMU的关系 首先KVM(Kernel Virtual Machine)是Linux的一个内核驱动模块,它能够让Linux主机…

【项目】均衡代码评测

TOC 目录 项目介绍 开发环境 主要技术 项目实现 公共模块 日志 工具类 编译运行模块 介绍 编译 运行 编译和运行结合起来 业务逻辑模块 介绍 MVC模式框架 模型(Model) 视图(View) 控制器(Controller&#xff09…

【Linux】文件属性信息、文件目录权限修改

Linux文件属性信息 在 Linux 中,ls命令用于列出目录内容,并提供了许多参数以定制输出和显示不同类型的信息。以下是一些常用的ls命令参数 -a显示所有文件和目录,包括以.开头的隐藏文件。-l使用长格式列出文件和目录的详细信息,包…

基于 C++ STL 的图书管理系统213行

定制魏:QTWZPW,获取更多源码等 目录 一、实践项目名称 二、实践目的 三、实践要求 四、实践内容 五、代码框架参考 六、代码效果展示 七、完整代码主函数展示 一、实践项目名称 基于 C STL 的图书管理系统 二、实践目的 通过设计和实现一个基于…

Linux中的常用基础操作

ls 列出当前目录下的子目录和文件 ls -a 列出当前目录下的所有内容(包括以.开头的隐藏文件) ls [目录名] 列出指定目录下的子目录和文件 ls -l 或 ll 以列表的形式列出当前目录下子目录和文件的详细信息 pwd 显示当前所在目录的路径 ctrll 清屏 cd…

专业135+总分400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。

今年分数出来还是比较满意,专业801信号与系统135,总分400,没想到自己也可以考出400以上的分数,一年的努力付出都是值得的,总结一下自己的复习心得,希望对大家复习有所帮助。专业课:(…

C/C++语言相关常见面试题总结

目录 const关键字的作用 volatile 关键字 #define和const有什么区别 decltype和auto的区别 extern 关键字的作用 如何避免野指针 C/C中的类型转换以及使用场景 什么是RTTI?其原理是什么? RTTI 的原理: C中引用和指针的区别 C11用过…

亮剑AIGC,紫光云能否胜人一筹?

【全球云观察 | 科技热点关注】 扎实创新每一步, 先人一步快人一步。 2023年全球科技行业最火的莫过于生成式AI,即Artificial Intelligence Generated Content。在迈向生成式AI的道路上,虽然说不上千军万马,但是国内…

Redis - hash 哈希表

前言 ⼏乎所有的主流编程语⾔都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组、映射。在 Redis 中,哈希类型是指 value 本⾝⼜是⼀个键值对结构,形如 key "key",value { { fiel…

java设计模式(2)---六大原则

设计模式之六大原则 这篇博客非常有意义,希望自己能够理解的基础上,在实际开发中融入这些思想,运用里面的精髓。 先列出六大原则:单一职责原则、里氏替换原则、接口隔离原则、依赖倒置原则、迪米特原则、开闭原则。 一、单一职…

Linux环境基础开发工具yum,vim使用

目录 1.Linux 软件包管理器 yum1.1什么是软件包1.2关于 rzsz1.3注意事项1.4查看软件包1.5如何安装软件1.6如何卸载软件 2.Linux开发工具2.1Linux编辑器-vim使用2.1.1vim的基本概念2.1.2vim的基本操作2.1.3vim正常模式命令集2.1.4vim末行模式命令集2.1.5vim操作总结 2.2简单vim配…

成功案例|全基因组测序+GWAS联合分析揭示不同种族帕金森病的遗传同质性和异质性

发表期刊:npj Parkinson’s Disease 影响因子:8.7 测序方式:WGS 研究对象:人 1 研究背景 帕金森病(PD)是一种常见的与年龄相关的神经退行性疾病,其特征是运动迟缓、姿势不稳定、僵硬和静息…