进程的优先级
目录
引言
是什么
为什么
ps指令
用top命令更改已存在进程的nice
问题
引言
在Linux操作系统中,进程的优先级是一个关键的概念,它决定了操作系统如何分配和调度资源,特别是CPU时间。每个进程都根据其优先级被赋予一定的执行权重,从而影响其在系统中的行为和性能表现。Linux系统通过复杂的调度算法来确保高优先级进程能够获得更多的CPU时间,进而保证关键任务和系统服务的响应性和效率。
进程优先级的设定和调整,是Linux系统管理员和开发者优化系统性能、保证关键任务执行和提升用户体验的重要手段。在多任务环境中,合理地分配进程优先级可以显著提高系统的吞吐量和整体稳定性。
接下来,我们将探讨Linux系统中进程优先级的设置机制、如何通过命令行工具来管理进程优先级,以及优先级调整对系统性能的具体影响。通过深入了解进程优先级的管理,我们能够更加有效地利用系统资源,确保Linux系统的高效运行。
是什么
优先级:对于资源的访问,谁先访问,谁后访问。
权限:对于资源,有没有资格去访问。
为什么
因为资源是有限的,我们只有一个CPU,但我们存在大量的进程需要处理,因此进程之间注定是竞争关系(进程的性质之一)
OS为了保证大家良性竞争,因此确认了进程process的优先级。
恶性竞争的实例:在windows中经常出现某个软件被卡死,这就是因为这个进程无法得到cpu很好的计算处理,从而导致卡死。
ps指令
ps -l显示本终端下的所有进程
ps -al显示用户打开的所有进程
//uid是一串数字,linux利用数字去识别信息,uid是用户身份
我们将重点研究这两个分区 :PRI(priority) NI(nice)
pri:优先级 (priority)
ni :nice值:这个是进程优先级的修正数据
用top命令更改已存在进程的nice
(一般不要修改)
问题
当然不是的,linux不希望用户过多干预进程,因此设置ni为【-20,19】
修正nice
发现PRI变成99, NI变成19(虽然输入60,但是只能到边界)
在sudo下执行top
虽然输入-50,但是只能变成-20.同样不能突破边框。
PRI的范围是【60, 99】原因:
PRI(old)默认从80开始调节,调节完之后就变成了60-99
在linux内部,运行队列这个指针数组大小一般是140,也就是说优先级是0-140,但是0-99是给其他种类的进程使用的
100-139才是我们使用的进程。而pri的60 - 99会被映射成100-139