830213
驱动牛犊
驱动牛犊
  • 注册日期2005-06-06
  • 最后登录2006-02-20
  • 粉丝0
  • 关注0
  • 积分43分
  • 威望8点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1549回复:9

为什么说内核调度是基于线程的?

楼主#
更多 发布于:2005-06-23 10:18
  我知其然而不知其所以然。各位大人给说说呀。。。
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-06-23 11:57
windows内核中既有进程结构,又有线程结构,调度不是基于进程的,所以说是基于线程的,
不像linux内核,不区分进程,线程结构,只有一个 task_struct结构 。
830213
驱动牛犊
驱动牛犊
  • 注册日期2005-06-06
  • 最后登录2006-02-20
  • 粉丝0
  • 关注0
  • 积分43分
  • 威望8点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-06-23 12:26
为什么说从调度链表KiWaitInListHead,KiWaitOutListHead,KiDispatcherReadyListHead摘除活动进程会分配不到CPU时间? 而只能COPY一个新的调度链表去摘除。
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-06-23 12:59
你可以看一看inside windows 2k或者第四版,线程调度的讲解
830213
驱动牛犊
驱动牛犊
  • 注册日期2005-06-06
  • 最后登录2006-02-20
  • 粉丝0
  • 关注0
  • 积分43分
  • 威望8点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-06-23 13:24
下面是引用zhaock于2005-06-23 12:59发表的:
你可以看一看inside windows 2k或者第四版,线程调度的讲解


谢谢指路!

看来要花血本了。。。。。
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-06-24 11:38
"内核调度是基于线程的"是什么含义呢?
琢磨悟真知
liuge
驱动牛犊
驱动牛犊
  • 注册日期2004-06-02
  • 最后登录2005-07-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-06-24 11:50
就是说所谓的“调度”是指对线程的调度,而不是对其它资源例如进程的调度。也就是说,只有线程才会被Block、Resume、Preempt。而进程只是一个地址空间加上一些资源表,进程不会被Block、Resume、Preempt - 这和UNIX是不同的:UNIX的调度是对进程的,对进程执行Block、Resume、Preempt操作。
liuge
驱动牛犊
驱动牛犊
  • 注册日期2004-06-02
  • 最后登录2005-07-06
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-06-24 11:51
真糟糕,签名又出来的。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-06-24 17:13
下面是引用liuge于2005-06-24 11:50发表的:
就是说所谓的“调度”是指对线程的调度,而不是对其它资源例如进程的调度。也就是说,只有线程才会被Block、Resume、Preempt。而进程只是一个地址空间加上一些资源表,进程不会被Block、Resume、Preempt - 这和UNIX是不同的:UNIX的调度是对进程的,对进程执行Block、Resume、Preempt操作。


现在的LINUX、UNIX也普遍引入线程的概念,看fork函数的参数
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
A1000S12
驱动牛犊
驱动牛犊
  • 注册日期2002-10-27
  • 最后登录2012-05-14
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望43点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-06-25 10:34
看看WIN2K 源代码ntos\ke\i386\ctxswap.asm中的SwapContext函数会有帮助。
游客

返回顶部