跟涛哥一起学嵌入式 14:Linux下的进程江湖

2024-03-21 00:50

本文主要是介绍跟涛哥一起学嵌入式 14: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其它进程的稳定运行。

 

《Linux系统编程》第04期:打通进程与终端的任督二脉  视频教程发布

 

从本期课程开始,将正式进入多任务并发编程的学习。本期课程的主要内容:如何通过Linux的系统调用接口fork/exec/wait/exit去创建、控制和运行一个进程;进程与终端的关系是怎样的?为什么我们可以使用shell/SSH/xshell/putty/串口等环境运行我们的程序并且可以把运行结果打印到这些软件的界面上?为什么我们可以使用ctrl+C去终止一个进程的执行?各个进程之间是如何相互协作工作的?什么是前台进程?后台进程?守护进程?孤儿进程?僵尸进程?已经购买课程的学员可以

CSDN学院课程学习地址:https://edu.csdn.net/course/detail/20776

:

这篇关于跟涛哥一起学嵌入式 14:Linux下的进程江湖的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/831275

相关文章

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用