解析Windows XP 线程调度策略
发布时间:2023-04-21 22:14:07
Windows 2000/XP基于线程实现优先级驱动的抢先式多任务,并且在单处理器系统和多处理器系统中的线程调度策略是不同的。下面介绍单处理器系统中的线程调度策略。在单处理机系统中,处理机的切换有以下儿种情况
1.主动切换
一个线程可能因为进入等待状态而主动放弃处理器的使用,此时Windows 2000/XP将选杼一个新线程开始运行。许多WIN32等待函数调用(如WaitForSingkObject或WaitFor-MultipkObjects等)都使线程等待某个对象,等待的对象可能有事件、互斥信号量、资源信号M、I/O操作、进程、线程、窗口消息等。如果进入等待线程的时间配额有剩余,在等待事件出现时,线程的时间配额被减1,相当于1/3个时钟间隔;如果线程的优先级大于等于14,在等待事件出现时,线程的优先级被重置。
2.抢先
当一个高优先级线程的等待完成,即一个线程等待的事件出现,高优先级线程进入就绪状态,或者一个线程的优先级被增加或减少,出现正在处于运行状态的低优先级线程低于就绪队列中的某个线程时,系统都要确定是否让当前线程继续运行或当前线程是否要被一个高优先级线程抢先。在Windows 2000/XP中的用户态下运行的线程也可以抢先内核态下运行的线程。在判断一个线程是否被抢先时,并不考虑线程处于用户态还是内核态,调度器只是依据线程优先级进行判断。
当线程被抢先时,它被放回相应优先级的就绪队列的队首。处于实时优先级的线程在被抢先时,时间配额被重置为一个完整的时间片;而处于动态优先级的线程在被抢先时,时间配额不变,重新得到处理器使用权后将运行到剩余的时间配额用完。
3.时间配额用完
当一个处于运行状态的线程用完它的时间配额时,Windows 2000/XP首先必须确定是否需要降低该线程的优先级,然后确定是否需要调度另一个线程进入运行状态。
如果刚用完时间配额的线程的优先级被降低了,Windows 2000/XP将寻找一个更适合的线程进入运行状态,所谓更适合的线程是指优先级高于刚用完时间配额的线程的新设S值的就绪线程。如果刚用完时间配额的线程的优先级没有降低,并且有其他优先级相同的就绪线程,Windows 2000/XP将选杼相同优先级的就绪队列中的下一个线程进入运行状态,刚用完时间配额的线程被排到就绪队列的队尾(即分配一个新的时间配额并把线程状态从运行状态改为就绪状态如果没有优先级相同的就绪线程可运行,刚用完时间配额的线程将得到一个新的时间配额并继续运行。
4.线程运行结束
当线程完成运行时,它的状态从运行状态转到终止状态。此时系统将处理器调度给另一个线程。线程完成运行的原因可能是通过调用ExhThread而从主函数中返回或被其他线程通过调用TerminateThread来终止。如果处于终止状态的线程对象上没有未关闭的句柄,则该线程将被从进程的线程列表中删除,相关数据结构将被释放。


猜你喜欢
- 打开一个word文档,此时我们可以看到很多字体下方都有双蓝线,按键盘上的Ctrl+A键,将文档中的所有内容全选点击工具栏中的审阅然后点击拼写
- 微软已经着手计划让Windows 10变的更加纯净,名为NEON的全新UI界面已经默默酝酿了超过一年时间,并计划在Windows 10 Re
- 方法/步骤点击桌面左下角开始菜单。在命令处输入U盘修复命令“chkdsk F: /f”。这里大写F代表U盘名为F盘。根据你自己的实际情况来写
- 分享腾讯视频怎么扫码登录别人的会员的方法。我们在使用其他用户的会员账号的时候,可以使用扫码的方法。这个方法不用验证,更简单。只需要号主将二维
- word文章中怎么插入数学公式?word中需要插入一些数学公式,该怎么插入呢?我们可以使用公式编辑器,下面我们就来看看word编辑公式的详细
- 在Excel中经常录入好数据以后都需要进行数据统计,如果把不同值的数据进行标注颜色,那就显得更加直观了。下面是由小编分享的excel利用公式
- 对于很多新手来说,重装系统需要学习不少知识,而且安装驱动与常用软件也有着一定的难度。所以很多有经验的人都会给自己或家人朋友的电脑做一个一键还
- gnetmous.exe是Genius网际鼠标相关程序。用于对该产品进行配置进程文件: gnetmous or gnetmous.exe 进
- 据《财富》杂志网络版北京时间7月10日报道,在美国人最希望为之效力的公司方面,Alphabet、微软等科技公司仍然名列前茅。在最近一次对《财
- 电脑使用时间长了,就会积累越来越多的文件和程序,电脑系统内存逐渐不够了,就有用户想要对C盘进行扩展。C盘的扩展卷主要是通过分配多余的空间来进
- 早在 2021 年 5 月 17 日的时候,苹果发布公告称,将在6月推送发布支持杜比全景声的空间音频,并将为整个曲库带来无损音频,目前,在6
- 对于一个办公族来说,经常避免不了在制作表格的时候办公室突然停电,或者电脑突然死机,往往遇到这样的事情以后我们第一反应就是:完了,一下午的劳动
- Win7任务栏不显示时间如何处理?如果用户发现Win7系统任务栏上没有显示时间,则可以借鉴开关任务栏图标的方法,将时间显示出来,详细过程请参
- Excel中经常需要录入身份证进行登记数据,身份证位数错误的具体该如何筛选呢?下面是小编带来的关于excel中筛选身份证位数错误的教程,希望
- 1.打开编辑的Word文档,点击工具栏的“插入”,然后插入图片 2.插入图片后点击“图片效果”然后在图片效果里选择
- windows预览体验计划错误代码0x0和0x800BFA07是什么问题呢?windows预览体验计划在中出现"抱歉!很多用户在加
- 无论Windows 10打过多少补丁,官方说的有多么完美,运行卡顿和程序假死还是常有的事儿。这个时候常规的解决方案就是用任务管理器(Ctrl
- 在浏览网页的过程中,有时候会碰到一些很小的图片或者文字,如果用肉眼正常看的话是无法看清的,那么此时我们可以借助系统中的放大镜工具。下面将以W
- 一直以来用户在面对众多的办公软件时会选择使用wps这款办公软件,wps软件在众多办公软件中脱颖而出,是因为在wps软件中用户可以编辑word
- Win10的快速启动功能,可以很快速启动您的电脑,那么win10如何快速启动?下面小编就为大家介绍四种优化win10方法,不会的朋友可以参考