上一篇博客也在记录进程的一些知识,这一篇博客是在哪个基础上继续谈谈进程。
一.进程优先级
那么加入NI值之后,PRI的值变成 PRI(new) = PRI(old) + nice;
那么当nice值为负值的时候,进程的PRI将变小,进程的优先级将变大,进程相对于原来的PRI值会更早被执行。那么当nice值为正的时候,相反的情况;
2.调整已经存在的进程nice值:renice
eg:接下来写一个小程序验证一下。
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
int main(int argc,char* argv[],char* env[])
{
pid_t id = fork();
if(id<0)
{
}
else if(id == 0) //child
{
printf("child: pid %d ,ppid %d\n",getpid(),getppid());
sleep(20);
exit(1);
}
else //father
{
printf("father pid: %d,ppid %d\n",getpid(),getppid());
while(1);
}
return 0;
}
上述使用的nice命令:sudo nice -n -5 <可执行文件的路径>
上述使用的renice命令:sudo renice -10 -p <进程号>
二.进程的创建执行
介绍一种进程:孤儿进程
)所收养,并由init进程对它们完成状态手收集工作。
eg:测试程序
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
int main(int argc,char* argv[],char* env[])
{
pid_t id = fork();
if(id<0)
{
}
else if(id == 0) //child
{
printf("child: pid %d ,ppid %d\n",getpid(),getppid());
//sleep(20);
//exit(1);
while(1);
}
else //father
{
printf("father pid: %d,ppid %d\n",getpid(),getppid());
//while(1);
sleep(3);
exit(1);
}
return 0;
}
以上就是本人在学习过程中的一些经验总结。当然,本人能力有限,难免会有纰漏,希望大家可以指正。