LINUX 内核线程和用户线程

本文介绍了Linux系统中的内核线程、用户线程和轻量级线程的概念及其区别。内核线程由内核调度,用户线程则由用户空间决定。内核线程在多处理机环境下可并发执行,但调度由内核控制,而用户线程创建和调度成本低,但遇到系统调用会导致整个进程阻塞。同时,文章提到了僵尸进程、孤儿进程和守护进程的定义及清理僵尸进程的方法。
摘要由CSDN通过智能技术生成

概念:

内核线程:内核线程使用内核栈和进程上下文切换的寄存器,只能运行在内核态

用户线程:完全不受内核态影响,线程的创建、同步、调度、销毁都是由用户空间所决定的,也因此这种极其低消耗和高效的

此外还有  轻量级线程:建立在内核空间支持内核调度的用户线程,属于内核线程的高度抽象,轻量线程只能由内核来调度,只不过调度方法像普通用户线程,每个轻量级的线程必须关联特定的内核线程,也因此轻量级线程切换的代价和内核线程一致。

区别:

(1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。

(2)用户级线程的创建、撤消和调度不需要OS内核的支持,是在语言(如Java)这一级处理的;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。

(3)用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。

(4)在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。

(5)用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序

内核线程的优点:

(1)当有多个处理机时,一个进程的多个线程可以同时执行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值