关于抢占式任务切换的疑问

MSCLUB 2004-08-03 09:28:19
从win2K开始,操作系统开始根据线程优先级,进行抢占式的任务切换。也就是说,一个优先级为n的线程运行时,如果系统接到一个线程优先级为m(m>n)的线程请求,就会转到后者执行,而不管后面的线程和前者是否属于同一个进程。
但大家知道,进程的切换会给系统带来很多开销,所以,我不禁要产生的疑问是,为什么windows不先照顾同一个进程中的线程请求,等同一进程中所有线程都空闲了,再发生进程切换,并转到另一个进程中告优先级的线程中去。这样,不是更能符合调度程序,“在尽量少资源消耗下,调度最多线程“中旨吗?
...全文
161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xory001 2004-08-06
  • 打赏
  • 举报
回复
unix有线程的概念,好像sever5版本的有.
robin97 2004-08-05
  • 打赏
  • 举报
回复
各位说的都是win下的概念吧?线程的概念,linux和unix好像都没有使用。
xory001 2004-08-05
  • 打赏
  • 举报
回复
看看OS的书吧,线程分为用户级线程和内核级线程.win2k是内核级的,所以就没有线程的概念了.切换时都是基于线程切换的.至于为什么,书上有,忘了.
耙子 2004-08-04
  • 打赏
  • 举报
回复
win95 就是抢占式的了,这个是学习OS2的。
当年MS和IB合作开发OS2,后来MS半到反悔,自己开发win95,IBM自己开发OS2,两个同时面世,但是OS2被 MS 5亿美金的广告给彻底打败,放弃了OS2,我还用过OS2呢.
atm2001 2004-08-04
  • 打赏
  • 举报
回复
切换线程消耗的内存会远远大于进程切换的内存消耗,至于为什么,搂主可以自己写一个boot级驱动试一下...
allen_wang 2004-08-03
  • 打赏
  • 举报
回复
在现在如此强劲的硬件环境下面,“进程级的任务切换开销”同“保证高优先级线程运行的重要性”比起来,实在是有点微不足道了。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧