首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于线程和进程解决方法

2012-04-08 
关于线程和进程最近在看《现代操作系统》,看完了process 和 thread 有点晕,特来请教大家。1)书上讲线程分为 u

关于线程和进程
最近在看《现代操作系统》,看完了process 和 thread 有点晕,特来请教大家。

1)书上讲线程分为 user-level thread 和 kernel-level thread。说 user-level thread 因为没有时钟中断而在切换线程上会很困难,kernel-level thread没有这方面的问题,但是会增加CPU的开销。
我的问题就是,为什么 kernel-level thread 开销会很大???我认为只要是涉及到切换任务的问题,开销都应该一样的啊(很明显,我的想法是错滴)

2)在用程序实现上,这两种有什么区别,或者说这两种方式是怎么实现的?

3)书上原文“with kernel-level threads, having a thread block on I/O does not suspend the entire process as it does with user-level threads”为什么会有这两种不同的结果的产生???

求大牛出来解释,不胜感激~~

[解决办法]
不了解user-level thread 和 kernel-level thread的区别,
但是第三点,在linux上,一个线程阻塞了,并不会阻塞整个进程啊!难道是操作系统不一样?在linux上,线程又叫轻量级进程,与进程的区别在于地址空间是否独立。
[解决办法]
linux下进程比较好用,windows下线程比较好用
[解决办法]
说说我的理解:内核态的线程运行在内核态,需要内核去调度,比较繁杂,而用户态的线程运行在用户态调度,内核应该不知情或是不感兴趣,因此不增加CPU开销。
[解决办法]
内核态有时钟在走,最简单的进程调度策略就是按时间优先,或按时间片轮流运行或切换进程;
用户态进程,需要用户自己来切换,如果用户不能够获得时钟中断,用户就不知何时应该切换进程。
[解决办法]

探讨

引用:

说说我的理解:内核态的线程运行在内核态,需要内核去调度,比较繁杂,而用户态的线程运行在用户态调度,内核应该不知情或是不感兴趣,因此不增加CPU开销。

恩,你跟书上说的一样,我想问的是为什么会出现这两种不同情况?

热点排行