得知互动
标题:
Linux下的进程江湖
[打印本页]
作者:
CloudService
时间:
2022-5-27 15:37
标题:
Linux下的进程江湖
有人的地方,就有江湖
Linux进程也不例外
有进程的地方,也有江湖
那些年,奢望金盆洗手的江湖大佬们按照武侠小说的套路:一个高手一旦决定金盆洗手、隐退江湖,下场往往会很惨,甚至引发整个武林动荡。比如衡山派的刘正风,早已厌倦了江湖,打算去当一个音乐家,于是整了个金盆洗手大会,结果被嵩山派搞得家破人亡。再比如飞虎镖局老板吕腾空,在金盆洗手大会现场,又稀里糊涂地接了一个大单,天魔琴重现江湖,再次把江湖整得血雨腥风。人在江湖漂,哪能不挨刀,出来混,总是要还的。吃干了,抹净了,想做甩手掌柜脱身很难,正所谓:一入江湖深似海,从此便是局中人。
不仅仅在武侠世界中,在整个社会历史长河中,每个人也基本上被历史进程裹胁、随之沉浮,能做到完美脱身的很少很少。比如胡雪岩、沈万三,比如《大明王朝》中的商人沈一石,再比如《无间道》中的阿仁,活脱脱一个现实版余罪:
“三年后又三年,都快10年了,老大”
“今天是你生日啊,臭小子!”
在一个没有优雅退出机制的游戏中,既想搏一把,又想完美脱身,是需要极高的智慧和执行力的:既要抵制住不赚最后一个铜板的诱惑,又要在战略执行时果敢迅速,绝不拖泥带水。然而,大部分人却没有这个运气和智慧,总觉得自己能控制所有事情,总想干完这一票就金盆洗手,结果把自己所有的一切、甚至性命都搭了进去。为了所想起了执念,人们就容易变得不理性起来,人性的各种弱点开始暴漏,开始容易陷入各种纷争、争夺,比如权力、财富、地位。
不仅人类,进程也是如此,一个计算机系统中的所有进程基本上都在为抢占CPU的控制权、为了能跟终端搭上讪、为了能在前台运行而乐此不疲。
进入Linux进程的江湖世界在Linux的shell环境下敲入top命令,就可以看到整个Linux系统中的所有进程运行情况:
比如我的Ubuntu环境,大家可以很清楚地看到:当前系统一共有195个进程,其中1个在running运行中,其余的194个在睡眠中。除此之外,我们还可以看到内存、CPU的使用率,以及进程的运行状态等。如果我们想看这些进程之间的关系,可以在shell环境下敲入pstree命令:
通过pstree命令我们可以查看整个进程树以及各个进程之间的关系:父进程、子进程、首进程、控制进程……,如果我们继续对进程进行分析,就会发现:每个进程并不是孤立存在的,大多数时候,它们跟其它进程通过各种机制一起协同工作、完成某项工作的。一起协同工作的这些进程就构成了一个进程组,有点类似于武侠小说中的各种组合,比如江南奇怪、天罡北斗阵、罗汉阵、玄冥二老、桃谷六仙等。那它们是如何协作工作的呢?很简单,每个进程要都有自己的角色和定位:父进程、子进程、控制进程、首进程、前台进程、后台进程、守护进程、孤儿进程、僵尸进程……,除了进程机制、还有进程间通信、OS 的调度策略等,正如人类一样:有人的地方,就有江湖,有进程的地方,也有江湖。
一个Linux进程的金盆洗手人在江湖飘,哪能不挨刀?如果一个进程想金盆洗手,终止运行,会不会引起整个Linux江湖发生混乱?答案是不会。因为Linux系统有各种完善的退出机制、托管机制,清理机制。一个进程如果想终止运行,直接调用exit就可以了,就可以优雅地脱离pstree下的进程树,而基本上不会影响整个Linux其它进程的稳定运行。
欢迎光临 得知互动 (https://bbs.dezhifl.com/)
Powered by Discuz! X3.4