如何修改进程的优先级
linux中进程的查看和修改
优先级的本质就是进程PCB里面的一个或者多个数字,在Linux操作系统中优先级由两个数字决定一个是PRI一个是NI,通过指令ps -al便可以查看到每个进程对应的优先级也就是PRI和NI的值,
PRI是该进程的最终优先级的值,该值是由老的优先级+NI的值觉得那个其中老的优先级的值一直为80,所以这些进程的PRI值都为80,而修改进程优先级的方式是通过修改NI的值来实现进程整体优先级的修改,比如说下面的代码:
1 #include<stdio.h>
2 #include<unistd.h>
3 int main()
4 {
5 while(1)
6 {
7 printf("我的pid为:%d\n",getpid());
8 sleep(1);
9 }
10 return 0;
11 }
将这段代码运行起来然后输入ps -al指令就可以看到该进程的优先级:
那么修改优先级的方式就是先执行top指令
然后再输入一个r就可以输入你想要修改优先级的程序的PID如果不输入的话就默认是9888
myproc进程的PID为10086,所以将其输入以后就会出现这样的现象:
让我们输入想要修改的NI的值,那么这里我们输入一个10然后再用指令ps -al就可以看到myproc程序的NI的值变成了10,PR的值变成了90
那么这就是修改程序优先级的方法,但是这里大家要注意一点虽然可以通过修改NI的值来修改进程的优先级,但是操作系统为了防止有些进程过度的占用cpu的资源给NI的值设定了一些限制NI的值最低只能为-20最高为19比如说下面的操作,我们将NI的值修改成100但是执行的NI的结果却为19
将NI的值修改为-100但是执行的结果却为-20,
那么这里大家要注意一下,PRI的值越低说明该进程的优先级越高,PRI的值越高说明该进程的优先级越低。