<转>用户线程和内核线程
2013-04-22 23:05
183 查看
用户线程与内核线程
用户线程不需要内核支持,在用户程序中实现。
内核线程,需要内核参与,依赖于操作系统核心。需要在内核态和用户态切换。有利于发挥多处理器并发优势。
用户级线程和内核级线程的区别:
(1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。
(2)用户级线程的创建、撤消和调度不需要OS内核的支持,是在语言(如Java)这一级处理的;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。
(3)用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。
(4)在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。
(5)用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。
用户线程不需要内核支持,在用户程序中实现。
内核线程,需要内核参与,依赖于操作系统核心。需要在内核态和用户态切换。有利于发挥多处理器并发优势。
用户级线程和内核级线程的区别:
(1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。
(2)用户级线程的创建、撤消和调度不需要OS内核的支持,是在语言(如Java)这一级处理的;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。
(3)用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。
(4)在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。
(5)用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。
相关文章推荐
- <?>getCurrentSession绑定的线程,需不需要taskExecutor
- <读书笔记>Windows内核安全 ---串口过滤驱动(3) 相关知识总结
- <寒江独钓>Windows内核安全编程__一个简单的Windows串口过滤驱动程序的开发
- <寒江独钓>Windows内核安全编程__键盘过滤之内核级Hook(二)
- <为知更新>Android内核驱动开发中的Kconfig文件结构分析(图文)
- &lt;liunx 学习&gt; mysql 中新建用户和用户权限
- <转>监测用户浏览器是否有缩放
- Windows核心编程<读书笔记九>线程与内核对象的同步
- <读书笔记> windows内核安全 --- 串口过滤(1)
- <<推荐系统实战>>笔记1,基于用户的协同过滤算法
- <转>Linux查看进程的所有子进程和线程
- <iOS>关于子线程和block中操作主线程界面的控件讨论
- <备份>10月12日 内核编译与日志
- <读书笔记>Windows内核安全 —— 第四章 键盘的过滤
- <读书笔记>Windows内核安全 ---- 串口过滤(2)
- <寒江独钓>Windows内核安全编程__具有还原功能的磁盘卷过滤驱动
- <操作系统>进程与线程的有趣理解
- 微软报表rdlc有类似dephi的FastReport的<运行时报表 最终用户 调节位置>功能吗?
- <寒江独钓>Windows内核安全编程__键盘过滤之内核级Hook(一)
- <base href="<%=basePath%>"