Linux编程知识点2:进程
2021/12/1 7:06:35
本文主要是介绍Linux编程知识点2:进程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 前言
- 1. 进程控制块
- 2. 三个特殊的进程
- 3. 进程的状态
- 总结
- 参考文献
前言
今天跟大家分享Linux中进程的相关知识。
1. 进程控制块
进程控制块(Process Control Block, PCB)是对并发进程进行控制和管理的数据结构,在Linux内核中由task_struct结构体定义的。PCB中存放了描述进程和控制进程运行的所有信息,部分信息如下:
(1)进程标识符
(2)进程当前状态
(3)进程的程序和数据地址
(4)进程资源清单
(5)进程优先级
(6)CPU现场保护区
(7)用于实现进程间通信所需信息
(8)其他信息:父进程的PID, 有效用户ID,有效组ID, 进程占用CPU的时间,进程退出码、当前目录节点,执行文件节点等
Linux内核将所有进程控制块组织成指针数组形式:
struct task_struct *task[NR_TASK];
上述指针数组即为Linux维护的进程表,每个指针指向一个PCB。NR_TASK规定了最多可同时运行进程的个数。
2. 三个特殊的进程
(1)PID为0的调度进程,是内核的一部分,又称为交换进程或系统进程;
(2)PID为1的init 进程。该进程是在系统自举过程(自举过程:即上电自检,内核检查PC都有哪些硬件,加载硬件驱动,并运行第一个进程)结束时由内核调用,对应的程序文件为/sbin/init。init进程是由内核启动并运行的第一个用户进程。init进程绝不会终止,是一个普通的用户进程,但是以超级用户特权运行。
(3)PID为2de kthreadd内核进程,也是一个内核线程。内核线程是独立运行在内核空间的标准进程,和普通进程间的区别在于内核线程没有独立的地址空间,从不会切换到用户空间。
PID为0的进程是其他所有进程的祖先进程;
init进程是所有其他用户进程的祖先进程;
kthreadd内核线程是其他所有内核线程的父进程。
使用“pstree”和“”ps ax -o pid, ppid, command”命令查看进程间的父子关系。
3. 进程的状态
总结
关于进程的知识点就介绍到这里,上面描述如有问题,还请指正!
参考文献
《Linux环境编程》
这篇关于Linux编程知识点2:进程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法