全面解析Linux 内核 3.10.x - 内核进程

本文全面解析Linux内核3.10.x中的进程管理,从概念、轻量级进程、进程描述符到进程创建过程,详细介绍了进程的生命周期和内核如何处理进程。通过do_fork函数分析了进程的创建流程,探讨了内核线程的特性和kernel_thread函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

From: 全面解析Linux 内核 3.10.x - 进程管理

三千大世界,五千小世界,却是由生命组成 - XXXX

进程类似于人类,它们被产生,有或多或少的有效生命。可以产生一个或者多个子进程,最终都要走向”死亡”。为什么说进程是操作系统的灵魂?因为它之于操作系统就犹如生命对于自然,犹如人之于家。

一、透过现象看本质

从用户程序的角度看,进程就是一次运行活动,是程序的执行实体!
从内核的角度看,进程就是担当分配系统资源(CPU资源时间,内存,位置等)的实体,页被称之为任务/线程!
下面我们主要在内核的角度去探索进程。

1、概念

当一个进程被创建的时候,它会继承(拷贝)父进程的内容信息,虽然父子进程可以共享程序代码之间的页,但是始终不要忘记父子毕竟是两个实体,故而它们都拥有自己独立的空间!那就意味着子进程对一个内存单元的修改,父进程是可不见的。反之亦然!
线程呢又是进程的组成单元,在现代操作系统上,一个进程必然是由好几个线程组成的!线程是进程的执行流。

2、轻量级进程

轻量级进程是一种对多线程支持的库,两个轻量级进程基本上可以共享一些资源,诸如地址空间,打开的文件等!只要其中一个改变内容,两一个立马就会看到这种修改!而后执行一个同步!

3、进程描述符

很形象的一个词语,描述符即描述一组对象的符号简称!
内核在某一时间需要知道某一个进程的一些状态,比如想知道进程的优先级,进程的状态,进程是否占用很多内存,允许它可以访问的文件啊等等!很多可以被描述出来的东西!
process_descrption

4、进程描述符的处理

一个进程的生命周期可能是1s,也可能是一天/一月/一年!而内核需要处理N多个这样的进程。既然每个进程都是一个实体,那么反之也就是每个进程都被动态嵌入到一块内存地址的(线性/物理地址可能是连续,也肯不连续)空间(32位一般位于3GB之上),我们称之为动态内存。对于每个进程而言,内核把两个不同的数据结构紧凑的放在一个单独为进程分配的存储区域,一个是内核

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值