linux 轻量级进程 线程,进程,线程,轻量级进程的概念。Linux中线程是何如实现的?...

本文介绍了轻量级进程(LWP)的概念,它是操作系统实现多任务的一种方式,与普通进程和线程的区别,以及在Linux系统中的应用。LWP提供了一种用户级线程的实现方案,但与普通进程相比,它共享更多的资源。

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

进程[jìn

chéng]

进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例

;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,

一个当前状态和一组相关的系统资源所描述的活动单元。

轻量级进程

在计算机操作系统中,轻量级进程(LWP)是一种实现多任务的方法。与普通进程相比,LWP与其他进程共享所有(或大部分)它的逻辑地址空间和系统资源;与线程相比,LWP有它自己的进程标识符,优先级,状态,以及栈和局部存储区,并和其他进程有着父子关系;这是和类Unix操作系统的系统调用vfork()生成的进程一样的。另外,线程既可由应用程序管理,又可由内核管理,而LWP只能由内核管理并像普通进程一样被调度。Linux内核是支持LWP的典型例子。

在大多数系统中,LWP与普通进程的区别也在于它只有一个最小的执行上下文和调度程序所需的统计信息,而这也是它之所以被称为轻量级的原因。一般来说,一个进程代表程序的一个实例,而LWP代表程序的执行线程(其实,在内核不支持线程的时候,LWP可以很方便地提供线程的实现)。因为一个执行线程不像进程那样需要那么多状态信息,所以LWP也不带有这样的信息。

LWP的一个重要作用是提供了一个用户级线程实现的中间系统。LWP可以通过系统调用获得内核提供的服务,因此,当一个用户级线程运行时,只需要将它连接到一个LWP上便可以具有内核支持线程的所有属性。

而因为LWP之间共享它们的大部分资源,所以它在某些应用程序就不适用了;这个时候就要使用多个普通的进程了。例如,为了避免内存泄漏(a

process can be replaced by another one)和实现特权分隔(processes can run

under other credentials and have other permissions)。

程是一个执行单元

,

维护着执行相关的动态资源

.

同时

,

它又引用着程序所需的

静态资源

.

通过系统调用

clone

创建子进程时

,

可以有选择性地让子进程共享父进程所

引用的资源

.

这样的子进程通常称为轻量级进程

.linux

上的线程就是基于轻量级进程

,

由用户态的

pthread

库实现的

.

使用

pthread

以后

,

在用户看来

,

每一个

task_struct

对应一个线程

,

而一组线程以及它们所共同引用的一组资源就是一个进程

.

但是

,

一组

线程并不仅仅是引用同一组资源就够了

,

它们还必须被视为一个整体

.

对此

,

程是一个执行单元

,

维护着执行相关的动态资源

.

同时

,

它又引用着程序所需的

静态资源

.

通过系统调用

clone

创建子进程时

,

可以有选择性地让子进程共享父进程所

引用的资源

.

这样的子进程通常称为轻量级进程

.linux

上的线程就是基于轻量级进程

,

由用户态的

pthread

库实现的

.

使用

pthread

以后

,

在用户看来

,

每一个

task_struct

对应一个线程

,

而一组线程以及它们所共同引用的一组资源就是一个进程

.

但是

,

一组

线程并不仅仅是引用同一组资源就够了

,

它们还必须被视为一个整体

.

对此

,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值