内核级线程与用户级线程

本文介绍了操作系统中的执行流概念,强调执行流是调度单元,而线程是实现并发的机制。线程分为用户级线程和内核级线程。用户级线程在用户空间实现,调度灵活但存在进程阻塞时所有线程挂起的问题;内核级线程由操作系统支持,能更好地管理线程并分配时间片,减少因阻塞带来的影响。
摘要由CSDN通过智能技术生成

       回想大二刚上操作系统课的时候老师讲了进程和线程的知识,当时模棱两可,写下了一篇疏浅的博客(点击打开链接)。现在转眼即将毕业,为了找工作开始系统地复习学过的知识,看了《操作系统真象还原》后,加上这么长时间的知识积累,对线程实现也有了进一步了解。

执行流

       操作系统就是一个无限循环,处理器不断取指、执行、取指……就是计算机所做的事情。通过加入中断调用让处理器先执行其他指令再跳转回内核程序执行,来实现各种各样的功能。所谓执行流是处理器执行指令的一段轨迹,也可以说是一段逻辑上独立的指令区域。执行流是独立的,它有自己的栈空间、寄存器映像和内存资源,这就是上下文环境。因此任何大小的代码块都可以独立称为执行流,只要在它在运行的时候提前准备好所需的上下文环境。

       在任务调度器的眼中只有执行流才是调度单元,即处理器运行的每个任务都是由调度器分配的执行流。程序中独立的执行流就是进程和线程。而所谓的上下文切换本质上就是改变了处理器中程序计数器的指向,即改变了执行流。

线程

       有了前面对执行流的概念理解,线程的理解就容易多了。线程其实是一种机制,它为代码(指令)提供所依赖的上下文环境(寄存器映像、栈等),从而使代码块具有独立性,使之成为调度单元(执行流),从而可以占有处理器资源。引入线程概念后,进程 = 线程 + 资源。对于处理器来说,进程就是执行流集合,里面至少包含一条执行流,执行流之间相互独立,但共用进程的资源,这些执行流就

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值