ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux编程知识点2:进程

2021-12-01 00:01:33  阅读:90  来源: 互联网

标签:知识点 编程 PID init 线程 内核 Linux 进程


文章目录


前言

今天跟大家分享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环境编程》

标签:知识点,编程,PID,init,线程,内核,Linux,进程
来源: https://blog.csdn.net/DU_YULIN/article/details/121645433

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有