【Linux】进程优先级进程切换
创始人
2024-03-26 03:42:46
0

索引

  • ➡️进程优先级
    • 1.什么叫做优先级
    • 2.为什么会存在优先级
    • 3.看看Linux怎么做的
    • 4.查看进程优先级的命令
  • 😊进程的一些特性
  • ➡️进程切换

➡️进程优先级

1.什么叫做优先级

优先级和权限有些区别,权限决定能还是不能,优先级的前提是能,接下来是先做还是后做的问题。在计算机中来看也就是先还是后获得一些资源的问题。cpu资源分配的先后顺序,就是指进程的优先级(priority)。 优先级高的进程有优先执行权利。配置进程优先级对多任务环境的linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。

2.为什么会存在优先级

原因就是因为计算机中的资源相对于要访问它们的进程来说太少了,大家都想争这些个资源,所以才会有进程优先级来确定谁先谁后。

3.看看Linux怎么做的

优先级本质就是PCB里面的一个整数数字。

ps -la

在这里插入图片描述
PRI就是优先级英文priority的前三个字母
NI就是nice的前两个字母

Linux支持进程运行中进行优先级调整,调整的策略就是更改nice值完成。
一般对于Linux来讲priority数字越小优先级越高

nice表示进程可被执行的优先级的修正数值。

Linux的最终优先级=老的优先级(一般默认是80)+nice

当nice值为负值的时候,那么该程序优先级值将变小,即其优先级会变高,则其越快被执行。

nice的取值范围是-20至19,一共40个级别,当然如果你设置的nice值大于19或者小于-20的话默认这个范围也不会改变,小于-20的都当-20处理,大于19的都当19处理。

需要强调一点的是,进程的nice值不是进程的优先级,他们不是一个概念,但是进程nice值会影响到进程的优先级变化。可以理解nice值是进程优先级的修正修正数据。

4.查看进程优先级的命令

用top命令更改已存在进程的nice:

sudo top

1️⃣进入top后按“r”
在这里插入图片描述
2️⃣输入进程PID,输入想要改变的nice值(-20~19)
3️⃣注意:输入的时候不能在小键盘区输入,只能在主键盘区上输入数字。
在这里插入图片描述
最后就改变priority的值啦。

😊进程的一些特性

➡️竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级
➡️独立性: 多进程运行,需要独享各种资源,多进程运行期间进程运行的这个动作互不干扰,就好比父子进程,父进程先退了,我子进程依然运行;子进程先退了,父进程也依然运行。
➡️并行: 一般一个CPU只能运行一个程序,多个进程在多个CPU下分别,同时进行运行,这称之为并行。
➡️并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发。
对于并发的解释:一个进程如果拥有了CPU开始执行代码的时候不是这个进程在CPU上跑完了它才能够才能被从CPU上拿下来,当代计算机它采用的叫做时间片轮转的策略也就是说不管你这个进程未来执行完要花多长时间,反正我只给你比如说10毫秒的时间让你占用CPU,只要时间到了,那么这个进程必须得被操作系统从CPU上剥离下来,放在运行队列里,在运行队列的尾部再继续重新排队,等CPU再重新调度其他进程。其中多进程在同一个CPU下,我们采用进程不断的切换的方式就可以让我们的一个系统内的一个单CPU的计算机在一个时间段内可以同时让多个进程的代码得以推进的这种现象我们称之为并发。所以给我们宏观上是一个CPU在执行多个进程。

➡️进程切换

  • 我们都知道CPU永远在做着三件事情:第一取指令,第二分析指令,第三执行指令。

  • 它内部有各种各样的寄存器,其中有一个叫做pc的寄存器,pc叫做程序计数器或者pc指针:里面存放着当前正在执行指令的下一条指令的地址。

  • 当我们的进程在运行的时候一定会产生非常多的临时数据,这份数据属于当前进程。CPU内部虽然只有一套寄存器硬件但是寄存器里面保存的数据是属于当前进程的。

  • 进程在运行的时候占有CPU进程并不是一直要占有到进程结束。 进程在运行的时候都有自己的时间片,具体和上述的并发类似,这里不过多赘述。

  • 进程在切换的时候要进行进程的上下文保护,当进程在恢复运行的时候要进行上下文的恢复。

  • 在任何时候CPU里面的寄存器的数据看起来是大家都能访问到,但是寄存器内的数据只属于当前运行的进程,寄存器被所有进程共享,寄存器内的数据却是每个进程各自私有的。
    在这里插入图片描述

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...