linux——进程概念总结

基本概念

在计算机结构中,进程是程序的基本执行(担当分配系统资源,包括像CPU时间,内存空间)的实体。
通俗来说,进程就是我们具体执行程序的那个过程。当我们执行一段代码时,就是一个进程。
而每一个进程都有属于本进程的一些属性信息。这些信息被存放在内核的一个结构体当中。包括像进程的标识符,状态,优先级等信息。
在linux操作系统中,可以在/proc系统文件夹中查看。
在这里插入图片描述

创建进程

一般我们可以通过fork()函数来创建一个进程。当我们通过fork()创建一个进程时,如果创建成功,会返回一个值

  • 如果这个值是大于0的,则意味着这是一个父进程
  • 如果这个值是等于0的,则意味着这是一个子进程
  • 如果这个值是小于0的,则意味着进程创建失败。

所以我们一般在创建一个进程后,需要对程序进行分流。让父子进程完成相对应的工作。
虽然父子进程执行的意义不一样。但是父子进程是会共享代码的。但是在进程创建后,再改变的的值是不会共享的。例如原本有a=5; 在子进程中改为1=10;此时在父进程中的a依然还是5。

int main(){
	int a=5;
	int pid =fork();
	if(pid == 0){
		a=10;
		cout<<"this is child"<<getpid()<<": "<<a<<endl;
	}
	else if(pid>0){
		sleep(2);
		cout<<"this is parent"<<getpid()<<": "<<a<<endl;
		}
		return 0;
}

执行上面的代码可以看到控制台打印信息:
在这里插入图片描述

进程状态

一个进程是拥有很多状态的。虽然我们在使用计算机时,可以开启很多进程。但是实际上进程还是一个一个交叉执行的。这也是并发的概念。
当我们的计算机有用多核时,就可以同时运行多个进程,这也叫做并行。
所以一个进程除了在运行中——运行状态。还有:
睡眠状态——即进程在等待其他时间的完成
休眠状态 僵尸状态 孤儿进程 停止状态 死亡状态。
死亡状态是指返回状态。所以我们是看不到一个任务列表里的进程处于死亡状态的。
我们可以通过命令ps一系列命令来查看进程状态
在这里插入图片描述
UID: 执行者
PID: 进程号
PPID:父进程号
PRI:执行优先级。(越小优先级越高)
NI:进程的NICE 值

进程优先级

通过上面我们可以看到 我们注意到两个PRI NI 两个信息。PRI即一般来说进程的优先级。进程的优先级会决定cpu执行进程的顺序。一般进程的PRI值为80。
NI值是对进程优先级修正。取值是-20~19的值。一共四十个级别。
当接入NI值时,进程的优先值就会变为PRI+NI的新值。
当我们需要改变一个进程的NI值时,可以利用
命令top->r->输入进程的PID->输入NI值

在这里插入图片描述
我们就将进程的PID为12431的进程NI值改为了19。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值