阅读:1549回复:9
为什么说内核调度是基于线程的?
我知其然而不知其所以然。各位大人给说说呀。。。
|
|
沙发#
发布于:2005-06-23 11:57
windows内核中既有进程结构,又有线程结构,调度不是基于进程的,所以说是基于线程的,
不像linux内核,不区分进程,线程结构,只有一个 task_struct结构 。 |
|
板凳#
发布于:2005-06-23 12:26
为什么说从调度链表KiWaitInListHead,KiWaitOutListHead,KiDispatcherReadyListHead摘除活动进程会分配不到CPU时间? 而只能COPY一个新的调度链表去摘除。
|
|
地板#
发布于:2005-06-23 12:59
你可以看一看inside windows 2k或者第四版,线程调度的讲解
|
|
地下室#
发布于:2005-06-23 13:24
下面是引用zhaock于2005-06-23 12:59发表的: 谢谢指路! 看来要花血本了。。。。。 ![]() |
|
5楼#
发布于:2005-06-24 11:38
"内核调度是基于线程的"是什么含义呢?
|
|
|
6楼#
发布于:2005-06-24 11:50
就是说所谓的“调度”是指对线程的调度,而不是对其它资源例如进程的调度。也就是说,只有线程才会被Block、Resume、Preempt。而进程只是一个地址空间加上一些资源表,进程不会被Block、Resume、Preempt - 这和UNIX是不同的:UNIX的调度是对进程的,对进程执行Block、Resume、Preempt操作。
|
|
7楼#
发布于:2005-06-24 11:51
真糟糕,签名又出来的。
|
|
8楼#
发布于:2005-06-24 17:13
下面是引用liuge于2005-06-24 11:50发表的: 现在的LINUX、UNIX也普遍引入线程的概念,看fork函数的参数 |
|
|
9楼#
发布于:2005-06-25 10:34
看看WIN2K 源代码ntos\ke\i386\ctxswap.asm中的SwapContext函数会有帮助。
|
|