目录
一个进程,要被操作系统管理,需要先描述再组织,也就是每个进程就有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不是为了快速调度某些进程(如果快速调度的话,值相差很大)是为了进程在一个时间段内较为均衡地获取对应的资源。维持计算机的平衡。