安排进程的执行顺序:CPU調度和优先执行续
1.CPU調度: 指的是cpu对于进程它有自己的一套調度算法。
2.例行性工作調度:用户可以将某些程序安排给系统去让它在某个时间执行。
Priority与nice:这两个参数用来查看进程的优先级
//CPU一秒钟可以运行多达数G的微命令次数,这些命令肯定分主次,要不就乱了,这就考虑到了优先级。
×××××××
优先级最终是通过PRI的值来规定的,它的计算方式:
PRI(new) = PRI(old) + NICE
×××××××
PRI:相当于CPU調度,它的值是由内核进行动态调整,值越低,优先级越高, 用户无法调整它的值。这个是系统调整各个进程优先级最根本的东西。
××××××你可以通过ps -l来查看自己bash的相关进程。
NI:普通用户虽然无法改变PRI的值,但是我们可以通过改变nice的值去影响PRI最终的值,
NICE的取值范围: -20-19;
root和普通用户所能更改的范围不同
root随意这要在-20-19这个范围内
普通用户0-19。相当于只能增高无法降低
————————————————————————————————————————————
执行命令:
nice -n 数字 command 可以放到后台&
例如:root用户
1: nice -n -5 vi &//-5是nice的值
2: ps -l
用于查看,最终PRI的值取决以内核的調度算法,不是简单的1加2.
————————————————————————————————————————————
调整已经存在的进程的nice: renice命令
renice number PID//number是你要给某个PID进程设置的NICE的值
————————————————————————————————————————————————————
执行命令:
renice 10 19343
含义是:给19343这个PID所对应的进程的nice设置一个10.
××××注意:
系统重启后,对进程优先级的调整全部失效,所有进程的调度回到默认的初始级别。
在LINUX系统中,Nice值的范围从-20到+19(不同系统的值范围是不一样的),正值表示低优先级,负值表示高优先级,值为零则表示不会调整该进程的优先级。具有最高优先级的程序,其nice值最低,所以在LINUX系统中,值-20使得一项任务变得非常重要;与之相反,如果任务的nice为+19,则表示它是一个高尚的、无私的任务,允许所有其他任务比自己享有宝贵的CPU时间的更大使用份额,这也就是nice的名称的来意。
进程在创建时被赋予不同的优先级值,而如前面所说,nice的值是表示进程优先级值可被修正数据值,因此,每个进程都在其计划执行时被赋予一个nice值,这样系统就可以根据系统的资源以及具体进程的各类资源消耗情况,主动干预进程的优先级值。在通常情况下,子进程会继承父进程的nice值,比如在系统启动的过程中,init进程会被赋予0,其他所有进程继承了这个nice值(因为其他进程都是init的子进程)。
优先级是系统自动来调整的,一般无需我们自己调整。不过遇到特殊情况,调整一下对电脑使用有好处。比如你想一边看电影一边打文字或干别的什么话,那么就调整那个电影播放器的进程,设置为“低于标准”,系统提示“可能会导致系统不稳定”,不要管它,选“是”继续。这样前台程序就会比后台程序(播放软件)优先,系统会让前台程序优先执行,前台程序空闲的时候再让后台程序满负荷工作。这样就可以充分占用前台程序剩下的系统资源,达到对系统资源的高效利用