Linux--进程

进程和程序

“执行一个命令或者程序”便可以触发一个事件而取得一个PID,这就产生了一个进程。而当我们想要系统进行工作时,我们就得需要启动一个二进制文件,而这个二进制文件就是程序

每个进程都有三组人的权限,每组人都具有r/w/x的权限,不同的用户执行这个程序时,系统所给予的权限也不一样。

例如当我们登录并执行bash的时候,系统就已经根据etc/passwd来赋予登陆者相应的权限和PID了。而当这个进程进行其他工作的时候,例如执行touch命令时,那么由这个进程衍生出来的其他进程在一般状况下,也都会沿用这个进程的相关权限。

  • 程序:通常为二进制程序放置在存储媒介中。
  • 进程:程序被触发后,执行者的权限与属性、程序的程序代码与所需数据等都会被加载到内存中,操作系统会给予这个内存中的单元一个标识符,这就是PID进程就是一个正在执行中的程序。

子进程与父进程

上文所述的“衍生出来的进程”就是一个子进程,而衍生出它的进程就是父进程。例如,在bash执行touch命令,这些另外执行的命令也会被触发成为PID,那么这个PID就是子进程的PID,而那个bash环境就是父进程。子、父进程的关系可以通过PPID(ParentID)看出。

例如当我在当前bash环境中再次触发bash,使用ps -l命令可以看出,新触发的bash的PPID就是原先bash的PID。

在这里插入图片描述

进程调用的流程

进程调用的流程通常称为fork-and-exec的流程。进程会通过父进程以复制的方式(fork)来产生一个一模一样的子进程,然后被复制出来的子进程再以exec的方式来执行实际要进行的进程。

系统先以fork的方式复制一个与父进程相同的暂存进程,这个进程与父进程区别就是PID不同,还有就是暂存进程还会多一个PPID。然后暂存进程就会以exec的方式加载实际要执行的程序。

服务

常驻在内存中的进程通常都是负责一些系统所提供的功能以服务用户,因此这些常驻的进程通常被称为服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值