解析Windows 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来终止。如果处于终止状态的线程对象上没有未关闭的句柄,则该线程将被从进程的线程列表中删除,相关数据结构将被释放。

时间: 2024-08-07 14:59:48

解析Windows XP 线程调度策略的相关文章

Windows XP线程调度策略

  Windows XP线程调度策略 Windows 2000/XP基于线程实现优先级驱动的抢先式多任务,并且在单处理器系统和多处理器系统中的线程调度策略是不同的.下面介绍单处理器系统中的线程调度策略.在单处理机系统中,处理机的切换有以下儿种情况. 1.主动切换 一个线程可能因为进入等待状态而主动放弃处理器的使用,此时Windows 2000/XP将选杼一个新线程开始运行.许多WIN32等待函数调用(如WaitForSingkObject或WaitFor-MultipkObjects等)都使线程

解析Windows XP系统的管理

现在很多个人用户都使用了Windows XP系统,但你知道吗?在Windows操作系统中自带了一系列的工具,这些工具中很多都是用来对系统进行维护的,本文中笔者将向大家介绍这些工具如何使用.同时笔者将从系统维护.管理性能.系统安全和磁盘空间管理四方面入手,来为大家介绍如何更有效,更好的维护我们的Windows系统. 第一部份.操作系统的维护 一.自动实现Windows系统更新 对于使用Windows XP系统的用户,微软所提供了自动更新服务可确保你的操作系统随时获得自动更新.Windows XP可

解析Windows XP的单击锁定功能

在Windows中,鼠标的使用大大方便了操作,但你是不是有累坏食指的感觉呢?Windows XP提供了一个"单击锁定"功能,可以解放你的食指. 启用单击锁定 1.单击"开始"菜单中的"控制面板",然后双击"鼠标",系统弹出"鼠标属性"对话框: 2.单击"鼠标键"选项卡,然后在"单击锁定"标题下,选中"启用单击锁定"复选框: 3.如要更改设置&quo

Windows XP登录方式解析

平时我们在使用Windows XP时,总要先进行登录.Windows XP的登录验证机制比Windows 98严格很多,理解并掌握Windows XP的登录验证机制和原理对我们来说很重要,能增强对系统安全的认识,并能够有效预防.解决黑客和病毒的入侵. 一.了解Windows XP的 几种登录类型 1. 交互式登录 交互式登录是我们平常登录时最常见的类型,就是用户通过相应的用户账号(User Account)和密码在本机进行登录.有些网友认为"交互式登录"就是"本地登录&quo

Windows XP下BOOT.INI文件解析

电脑中安装有多个操作系统的朋友知道,在电脑加电自检后会出现一个启动菜单,它列出了在这台电脑上安装的所有的操作系统,用户使用"↑""↓"键可以选择进入哪个系统.实际上这一切都源于一个名为BOOT.INI的文件,自Windows NT开始它就存在于Windows系统中.Windows XP主要依赖BOOT.INI文件来确定计算机在重启(引导)过程中显示的可供选取的操作系统类别.一般情况下,它位于C盘根目录下,在默认状态下是一个隐藏只读的系统配置文件.要查看它,只要去掉

使用 Windows XP 的两种强大的工具在您的代码中检测并堵塞 GDI 泄漏

在以前的一篇文章中,作者设计了一种简单的方法来检测图形设备接口 (GDI) 对象,这些对象并未由 Windows 9x 平台上基于 Win32 的应用程序正确地进行发布.因为有些更新版本的 Windows 需要一种不太相同的 GDI 泄漏方法,作者已经更新了针对那些操作系统的方法.他构建并说明了两种工具,这两种工具旨在检测并消除在 Windows XP.Windows 2000 和 Windows NT 上运行的应用程序中的 GDI 泄漏. 在 Windows 95.Windows 98 和 W

Windows XP 技巧-应用篇

为了能更好的应用Windows,下面笔者就来介绍几个搜索到的应用方面的小技巧. 1.关掉调试器Dr. Watson: Dr.Watson会在程序加载失败或崩溃时显示.运行drwtsn32,把 "转储全部线程上下文"之外的全都去掉,否则一旦有程序出错,硬盘会响很久,而且会占用很多空间.如果以前遇到过这种情况,请查找user.dmp文件并删掉,这样可以节省几十M的空间.然后打开注册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Cu

Windows XP系统下禁用不需要的系统服务

  Windows XP系统下禁用不需要的系统服务           第1步,在Windows XP系统桌面上右键单击"我的电脑"图标,选择"管理"命令. 第2步,打开"计算机管理"窗口,在左窗格中展开"服务和应用程序"目录,并选中"服务"选项. 然后在右窗格中双击准备禁用的服务名称(如Terminal Services),如图2010040531所示. 图2010040531 "计算机管理&q

140个Windows XP技巧

  1. 重装Windows XP不需再激活 如果你需要重装Windows XP,通常必须重新激活.事实上只要在第一次激活时,备份好WindowsSystem32目录中的Wpa.dbl文件,就不用再进行激活的工作了.在重装Windows XP后,只需要复制该文件到上面的目录即可. 2. 如何知道自己的Windows XP是否已激活 打开开始→运行,在bomb出的对话框中输入:oobe/msoobe /a,回车后系统会bomb出窗口告诉你系统是否已经激活. 3. 关闭zip文件夹功能 你是不是觉得