Windows XP 系统进程管理机制
windows XP操作系统

2.1.4 操作系统的基本功能
从资源管理的观点来看,操作系统 具有以下几个主要功能:
1.处理机管理
2.存储管理
3.设备管理 4.文件管理 5.网络与通信管理 6.用户接口
8
1.处理器管理 处理器的分配调度 处理器管理 处理中断事件
批处理方式 分时处理方式配、存储共享、存储 保护和存储扩充。
(1)没有组策略功能; (2)只支持1个CPU和1个显示器(专业版支持2个CPU和9 个显示器); (3)没有远程桌面功能; (4)没有EFS文件加密功能; (5)没有IIS服务; (6)不能归为域; (7)没有连接Netware服务器的功能。
16
2.2.2文件系统
• 什么是文件系统? • 文件系统是对文件存储器空间进行组织和 分配,负责文件的存储并对存入的文件进 行保护和检索的系统。具体地说,它负责 为用户建立文件,存入、读出、修改、转 储文件。
29
2.3 Windows XP的桌面
4.快捷方式
1. 图标
回目录
扩展名为.lnk 的文件
2.开始按钮
3.快捷按钮
30
2.3.2 Windows XP桌面的基本设置
1. 个性化你的桌面 2. 设置显示属性 3. 设置任务栏和“开始”菜单
31
个性化你的桌面
•用鼠标拖动桌面 上的图标调整位置。 •按规律排列桌面 上的图标。 •桌面的任意空白 处右击,出现一个 快捷菜单。
2. FAT32
1)文件名可长达255个字符。 2)FAT32可以支持等大的磁盘分区。 3)于采用了更小的簇,FAT32文件系统可以更有效 率地保存信息。
20
3. NTFS NTFS文件系统是专用于Windows NT/2000/XP 的高级文件系统,特点是:
第二部分2 windows xp体系结构

贵 州 师 范 大 学 计 算 机 组 装 与 维 护 第 二 节
Windows xp 的体系结构
• Windows XP的核心态组件,它们都运行在统一 的核心地址空间中。 • 核心态组件包括以下五项: • 核心 • 硬件抽象层 • 执行体 • 设备驱动程序 • 图形引擎。
贵 州 师 范 大 学 计 算 机 组 装 与 维 护 第 二 节
贵 州 师 范 大 学 计 算 机 组 装 与 维 护 第 二 节
Windows xp 的体系结构
• 历史上的众多操作系统不外乎都采用了这些体 系结构。 • 例如我们熟知的DOS就是“模块组合结构”的 代表。 • 作为一个实际应用型的操作系统,Windows XP 没有单纯地采用某一种体系结构,而是把分层 结构操作系统和客户/服务器结构操作系统的 特点融合到了一起。
贵 州 师 范 大 学 计 算 机 组 装 与 维 护 第 二 节
Windows xp 的体系结构
• Win32环境子系统的程序实体是csrss.exe文件, 而且它必须始终处于运行状态,否则Windows XP就不能正常工作。同时,Win32子系统还包 括以下重要组件:各种可供调用的函数; • 核心态设备驱动程序(Win32k.sys),用于控制 窗口显示、屏幕输出以及收集来自鼠标、键盘 的输入信息; • 图形设备接口(Graphics Device Interface, GDI),提供文本、图形输出的各种函数;
Windows xp 的体系结构
• 1.核心(Kernel) Windows XP的核心(程序实体是 Ntoskrnl.exe)始终运行在核心态,其代码短小紧凑, 可移植性很好,主要提供下列功能:线程安排和调度; 异常情况处理和调度;中断处理和调度;多处理器同 步;为执行体提供“内核对象”调用。 • 2.硬件抽象层(Hardware Abstraction Layer,HAL) 在多种硬件平台上的可移植性是Windows XP设计的一 个至关重要的方面,除了核心以外,硬件抽象层(HAL) 是完善可移植性的另一个关键部分。在实际的系统中, HAL表现为一个可加载的核心态模块hal.dll,它运行 在最靠近硬件的地方,将核心、设备驱动程序以及执 行体同硬件分隔开,从而使Windows XP能适应多种硬 件平台。
实验二Windows任务管理器的进程管理

实验⼆Windows任务管理器的进程管理实验⼆ Windows任务管理器的进程管理⼀实验⽬的1)在Windows 任务管理器中对程序进程进⾏响应的管理操作;2)熟悉操作系统进程管理的概念;3)学习观察操作系统运⾏的动态性能。
⼆实验环境需要准备⼀台运⾏Windows XP操作系统的计算机。
三背景知识Windows XP的任务管理器提供了⽤户计算机上正在运⾏的程序和进程的相关信息,也显⽰了最常⽤的度量进程性能的单位。
使⽤任务管理器,可以打开监视计算机性能的关键指⽰器,快速查看正在运⾏的程序的状态,或者终⽌已停⽌响应的程序。
也可以使⽤多个参数评估正在运⾏的进程的活动,以及查看CPU 和内存使⽤情况的图形和数据。
四实验内容与步骤启动并进⼊Windows环境,单击Ctrl + Alt + Del键,或者右键单击任务栏,在快捷菜单中单击“任务管理器”命令,打开“任务管理器”窗⼝。
当前机器中由你打开,正在运⾏的应⽤程序有:1) 实验⼆Windows任务管理器的进程管理Windows“任务管理器”的窗⼝由 5 个选项卡组成,分别是:1) 应⽤程序2) 进程3) 性能4) 联⽹5) ⽤户当前“进程”选项卡显⽰的栏⽬分别是(可移动窗⼝下⽅的游标/箭头,或使窗⼝最⼤化进⾏观察) :1) 映像名称2) ⽤户名3) CPU4) 内存使⽤1. 使⽤任务管理器终⽌进程步骤1:单击“进程”选项卡,⼀共显⽰了36 个进程。
请试着区分⼀下,其中:系统(SYSTEM) 进程有19 个,填⼊表2-1中。
表2-1 实验记录服务(SERVICE) 进程有4 个,填⼊表2-2中。
表2-2 实验记录⽤户进程有9 个,填⼊表2-3中。
步骤2:单击要终⽌的进程,然后单击“结束进程”按钮。
终⽌进程,将结束它直接或间接创建的所有⼦进程。
例如,如果终⽌了电⼦邮件程序(如Outlook 98) 的进程树,那么同时也终⽌了相关的进程,如MAPI后台处理程序mapisp32.exe。
简述WINDOWS进程管理工具的原理和实现

简述W I N D O W S进程管理工具的原理和实现(总25页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--简述WINDOWS进程管理工具的原理和实现摘要Windows自带的任务管理器存在功能上的缺陷,比如不能查看进程的模块及线程信息。
课题设计就是模拟Windows任务管理器,开发一个功能更完善的Windows进程管理软件。
主要设计的是一个基于对话框的VC++程序,在主对话框上面放置了一个标签控件,并创建了任务、进程和系统信息三个页面,标签控件用于选择并显示页面。
三个页面分别用于显示当前运行的窗口程序、进程及进程模块、系统资源使用情况。
程序还实现了结束任务、切换任务、终止进程等对进程管理的基本功能。
在程序的设计过程中,通过调用Windows API函数而获得任务、进程、线程模块,以及系统资源使用情况等信息。
最后在Windows XP系统上进行测试,实现了进程管理的基本功能,为用户了解当前进程及系统资源使用情况提供了很好的参考。
关键词:任务管理器;线程;进程;APIThe Design and Implementation of the ProcessesManagement Tool for WindowsAbstractThere are some defects in the Task Manager built-in Windows. For example, it doesn't show us the information of process modules and threads. The work of my design is to follow the Windows Task Manager and develop the software which has improved function for managing process. This software is designed to be a program based on a dialog write in the VC++. There is a label control in the main dialog box, and there are three pages for task, process and system information. The label control is used to select the page and to show it. The three pages are used respectively to display the information of task runs at current, process and process modules, the utilization of system resources. This software also realized some basic function for managing process, such as ending the task, switching the task, terminating the process and so on. During the process of my program, the information for tasks, process, thread modules and the utilization of system resource is got by calling the Windows API functions. Finally I test it on the Windows XP system. And it achieves the basic function for managing process. It provides a good reference for users to view the process at current and the utilization of system resources.Key words: Task Manager; Threads; Process; API目录论文总页数:25页1 引言..................................................... 错误!未定义书签。
超全XP系统进程详解(免费)

XP系统进程详解系统进程:SystemIdleProcess进程文件:SystemIdleProcess进程名称:处理器分派描述:每一个CPU上作为单线程。
(支持多处理器的窗口系统和单处理器的系统区别就在此)。
SystemIDLEProcess这是一个当没有任何程序或者进程对CPU发出请求的时候调用的普通进程,该进程不能被结束,如果它显示CPU占用率是“97%”,那就意味着只有3%的CPU进程被真正的程序占用着,如果你发现这个IdleProcesses一直保持很低的数值(比如一直显示3%),那么肯定有一个应用程序一直在运行着,需要检查一下!taskmgr.exe这个进程挺有意思的(翻译这个的时候我乐了半天),如果你看到了这个进程在运行,呵呵,其实就是你看这个进程的任务管理器。
它大约占用了3.2MB的内存,当你优化你的系统的时候,不要忘了把它也算进去。
taskmgr.exe进程文件:taskmgr或者taskmgr.exe进程名称:窗口任务管理者描述:用于窗口任务管理器。
它显示你系统中正在运行的进程。
该程序使用Ctrl+Alt+Delete打开,这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。
svchost.exe进程文件:svchost或svchost.exe进程名称:服务主机过程描述:服务主机过程是一个标准的动态连接库主机处理服务。
Svchost.exe仅位于x:windowssytem32下。
启动时,依据以下注册表来加载:HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWSNT\CURRENTVERSION\SCHOST,每个键值都是REG_MULTI_SZ类型,包括多个运行服务。
svchost.exe这实际上是一个服务(service),有时候你会经常在任务管理器里面看到好几个一样的该进程(system、network、user或者其他),在WindowsXP里面,如果你结束了这个进程,那么系统就会在一分钟之内自动关闭,在Windows2000中,该进程将显示为关键进程,禁止结束!进程详解:Svchost.exe是一个系统的核心进程,并不是病毒进程。
Windows系统中Svchost进程详解

计 算 机 与 瓣 络 创 新 生 活
Wi ws n 蘩统牵 翱 ◇ 瓤 黼 弹解
W id ws 统 的 S c ot x no 系 v h se e和 E — . x
来 查 看 , 该 命 令 是 wi 0 0 sp o t n 2 0 u p r to 提 供 的 。 W i XP则使 用 “ slt ol s 在 n tk s a i / c命 令 。 s ” v W id w 系 统 进 程 分 为 独 立 进 程 no s 和 共 享 进 程 两 种 . S c ot x ” 文 件 存 “ v h se e .
指 向 S c ot v h s.由 S c ot 用 相 应 服 务 vh s调
不 能 够 查 看 进 程 的 路 径 , 可 以 使 用 第 三 方 进 程 管 理 软 件 ,通 过 这 些 工 具 就 可 很 容 易 地 查 看 到 所 有 的 S c ot v h s 进
( c  ̄ NT 等 。 d pc e ) h
己却 不 能 给 用 户提 供 任 何 服 务 。那 这 些 服 务 是 如 何 实现 的呢 ?
ቤተ መጻሕፍቲ ባይዱ
多 个 S cot 程 是 很 正 常 的 ,假 设 vh s 进
W id ws no XP系 统 被 病 毒 感 染 了 。正 常
的 S c o t 件 存 在 于 “ :W id wsss vh s文 c\ n o \y—
的 动 态链 接 库 来 启 动 服 务 。 S c ot 那 v h s 又 怎 么 知 道 某 个 系 统 服 务 该 调 用 哪 个 动 态链 接 库 呢 ? 这 是通 过 系统 服 务 在 注 册 表 中设 置 的参 数 来 实现 。
(完整版)操作系统复习题答案

一、基本概念1 用户使用操作系统提供的操作接口操作计算机,常见的操作接口有:终端命令、图形用户接口、和( ④ )。
① 高级指令② 宏命令③ 汇编语言④作业控制语言2 操作系统在执行系统调用时会产生一种中断,这种中断称为(④)。
① 外中断② I/O中断③ 程序性中断④ 访管中断3 在下列操作中,不会引起处理器模式转换的操作是(④).①中断② 键盘命令③ 系统调用④ 程序调用4 ( ④)中断事件是正在运行的进程所期待的自愿中断事件。
① 程序② I/O③ 时钟④访管5 当用户程序执行访管指令时,系统( ④)。
① 维持在目态② 维持在管态③ 从管态到目态④从目态到管态注:管态又叫核心态;目态又叫用户态。
6 从作业提交到作业完成的时间间隔是(②)。
① 响应时间②周转时间③ 运行时间④ 等待时间7 既考虑作业等待时间,又考虑作业运行时间的调度算法是(④)。
① 优先数调度② 先来先服务③ 短作业优先④最高响应比优先8 有三个作业J1,J2,J3同时提交,其运行时间分别是a、b、c且a〈b〈c。
系统按单道程序方式运行且采用短作业优先调度算法,则平均周转时间是(④)。
① a+b+c ② 2(a+b+c) ③ a+2b+3c ④ 3a+2b+c注:原题"④3a+2b+t3”应改为”④3a+2b+c”9 以下选项中何种处理不属于系统内核的范围( ④ )。
① 进程调度② 执行原语③执行外设基本操作④命令解释10 在同步控制中,所谓的临界区是指(③ )。
① 一个缓冲区② 一段共享数据区③ 一段程序④ 一个互斥的硬件资源11 创建I/O进程一般是在( ②)。
① 系统调用时②系统初启时③ 有设备中断时④ 输入输出时12 一个进程被唤醒意味着( ④ )。
①进程重新占有CPU并变为运行状态②进程保持等待状态③ 进程PCB移到等待队列首部④ 进程变为就绪状态注:原题漏掉第2选项。
13 在下列事件中不立即进入进程调度程序进行调度的是(④)。
第2章 Windows XP操作系统实验指导附答案

第2章Windows XP操作系统2.1 学习指导2.1.1 操作系统概述一、教材导读操作系统的发展与计算机硬件的发展息息相关,早期的计算机没有操作系统,人们通过各种操作按钮来控制计算机,后来出现了汇编语言等一些程序,随着这些程序功能的不断完善和扩充,逐步形成了较为实用的系统软件——操作系统。
在微机上,早期运行的主要操作系统是MS-DOS。
1995年8月,微软公司推出了采用图形化用户界面的操作系统——Windows 95,之后,微软公司又相继推出了Windows 98、Windows NT、Windows 2000、Windows XP等操作系统。
在本节中,主要让学生掌握以下内容:操作系统的概念、发展、主要特性、基本功能和分类。
二、重点分析与补充知识本节的重点和难点:操作系统的主要特性、基本功能和分类。
现在的计算机离不开操作系统,其它软件都是在操作系统的支持下来运行的,掌握操作系统的有关知识,将为今后的学习打下坚实的基础。
三、教材知识巩固1.单项选择题1)下列关于操作系统的主要特性的说法错误的是。
A.并发性是指两个或两个以上的运行程序在同一时间间隔段内同时执行B.共享是指操作系统中的资源可被多个并发执行的进程所使用C.异步性(Asynchronism),也称随机性D.采用了并发技术的系统称为单任务系统2)计算机能及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统是。
A.分时操作系统B.实时操作系统C.批处理操作系统D.分布式操作系统3)大量的计算机通过网络联结在一起,可以获得极高的运算能力及广泛的数据共享,这种系统被称为。
A.分时操作系统B.实时操作系统C.网络操作系统D.分布式操作系统4)下面有关操作系统的说法,错误的是______。
A.按运行环境将操作系统分为实时操作系统、分时操作系统和批处理操作系统B.分时操作系统具有多个终端C.实时操作系统是对外来信号及时做出反应的操作系统D.批处理操作系统指利用CPU的空余时间处理成批的作业5)分时操作系统又称为操作系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows XP 系统进程管理机制进程可利用系统调用功能来创建新的进程,创建者称为父进程,而被创建的新进程称为子进程。
子进程从父进程继承一些属性,又与父进程有区别,形成自己独立的属性。
按子进程是否覆盖父进程和是否加载新程序,子进程的创建可分为fork,spawn和exec三种类型。
进程的退出是通过相应的系统调用进行的。
进程退出过程中,操作系统删除系统维护的相关数据结构并回收进程占用的系统资源。
Windows 2000/XP进程是作为对象来管理的,可通过相应句柄(handle)来引用进程对象,OS提供一组控制进程对象的服务。
Win32环境子系统是整个系统的主子系统,放置一些基本的进程管理功能,其他子系统利用Win32子系统的功能来实现自身的功能。
Windows 2000/XP中的每个Win32进程都由一个执行体进程块(EPPROCESS)表示,执行体进程块描述进程的基本信息,并指向其他与进程控制相关的数据结构。
Win32子系统的进程控制系统调用:——CreatProcess创建新进程及其主进程,并可指定从父进程继承的属性。
——ExitProcess和TerminateProcess都可用于进程退出,终止一个进程和它的所有线程,区别在于ExitProcess终止操作完整,TerminateProcess终止操作不完整,通常只用于异常情况下对进程的终止。
2. Windows XP中进程调度机制2.1 Windows 2000/XP的线程调度特征Windows 2000/XP的处理器调度的调度单位是线程而不是进程。
线程调度机制是基于优先级的抢先式多处理器调度,依据优先级和分配时间片来调度。
调度系统总是运行优先级最高的就绪线程。
在同一优先级的各线程按时间片轮转算法进行调度。
如果一个高优先级的线程进入就绪状态,当前运行的线程可能在用完它的时间片之前就被抢先。
线程调度可由以下事件触发:1)一个线程进入就绪状态。
2)一个线程的时间片结束。
3)线程由于调用系统服务而改变优先级或被系统本身改变其优先级。
4)正在运行的线程被改变了所运行的处理器(在多处理器系统中)。
当Windows 2000/XP选择运行一个新线程时,将执行一个线程上下文切换以使新线程进入运行状态,即保存正在运行线程的相关运行环境,加载另一个线程的相关运行环境。
2.2 线程优先级Windows 2000/XP内部使用32个线程优先级,范围从0到31,数值越大,优先级越高。
1)实时线程优先级:16~312)可变线程优先级:1~153)级别0保留为系统使用,仅用于对系统中空闲物理页面进行清零的零页线程。
线程优先级的指定:1)通过Windows 2000/XP内核控制2)通过Win32应用程序编程接口指定:由进程优先级类型(进程创建时指定)和线程相对优先级(进程内各线程创建时指定)共同控制。
——SetPriorityClass:设置进程基本优先级——GetPriorityClass:读取进程优先级——SetTreadPriority:设置线程相对优先级——GetTreadPriority:读取线程相对优先级一个进程仅有单个优先级取值,即基本优先级,而一个线程有当前优先级和基本优先级两个优先级取值。
在Windows 2000/XP中,实时优先级(16~31)线程的基本优先级和当前优先级总是相同的,可变优先级线程的当前优先级可在一定范围(1~15)内动态变化。
中断优先级与线程优先级的关系:——用户态进程运行在中断优先级0,内核态的异步调用过程运行在中断优先级1,它们会中断线程的运行。
——只有内核态线程可提升自己的优先级,用户态线程不管优先级是多少都不会阻塞硬件中断。
——线程调度代码运行在DPC/线程调度中断优先级。
这样可防止调度器代码与线程在访问调度器数据结构时发生冲突。
在下列5种情况下,Windows 2000/XP会提升线程的当前优先级:——I/O操作完成——信号量或事件等待结束——前台进程中的线程完成一个等待操作——由于窗口活动而唤醒图形用户接口线程——线程处于就绪状态超过一定时间,但没能进入运行状态(处理器饥饿)前两条针对所有线程,后三条针对某些特殊线程在正常优先级提升基础上进行额外的优先级提升。
Windows 2000/XP永远不会提升实时优先级范围内(16至31)的线程优先级。
即优先级提升策略仅适用于可变优先级范围(0~15)内的线程。
2.3 线程时间配额(Quantum)当一个线程被调度进入运行状态时,它运行一个称为时间配额的时间片,时间配额是Windows2000/XP允许一个线程连续运行的最大时间长度。
时间配额不是一个时间长度值,而一个称为配额单位(quantum unit)的整数。
缺省时,在Windows 2000专业版中线程时间配额为6;而在Windows 2000/XP服务器中线程时间配额为36。
每次时钟中断,时钟中断服务例程从线程的时间配额中减少一个固定值(3)。
时间配额的控制:在系统注册库中的一个注册项“HKLM\SYSTEM\CurrentControlSet\Contr ol\PriorityControl\Win32PrioritySeparation”,允许用户指定线程时间配额的相对长度(长或短)和前台进程的时间配额是否加长。
2.4 调度数据结构内核维护了一组称为“调度器数据结构”的数据结构,它负责记录各线程的状态。
调度器就绪队列(KiDispatcherReadyListHead):由一组子队列组成,每个调度优先级有一个队列,包含该优先级的等待调度执行的就绪线程。
就绪位图(KiReadySummary):一个32位量,每一位指示一个调度优先级的就绪队列中是否有线程等待运行。
空闲位图(KiIdleSummary):一个32位量,每一位指示一个处理器是否处于空闲状态。
调度器自旋锁(KiDispatcherLock):多处理器系统中修改调度器数据结构。
其他与线程调度相关的内核变量:KeNumberProcessors(字节,说明系统中的可用处理器数目)、KeActiveProcessor(32位量,描述系统中各处理器是否处于运行状态)2.5 单处理器系统调度策略Windows 2000/XP在单处理器系统和多处理器系统中的线程调度是不同的,下面介绍单处理器系统中如何基于线程实现优先级驱动的抢先式多任务。
1.主动切换一个线程可能因为进入等待某个对象而主动放弃处理器的使用。
当该线程等待的事件出现时,它会排到相应优先级的就绪队列尾。
通常进入等待状态线程的时间配额不会被重置,而是在等待事件出现时,线程的时间配额被减1,相当于1/3个时钟间隔;如果线程的优先级大于等于14,在等待事件出现时,线程的优先级被重置。
2.抢先当一个高级优先级线程进入就绪状态时,正在处于运行状态的低优先级线程被抢先。
可能在两种情况下出现:——高优先级线程的等待完成,即一个线程等待的事件出现。
——一个线程的优先级被增加或减少。
调度器只是根据线程优先级判断一个线程是否被抢先,而不管线程是处于用户态还是内核态。
当线程被抢先时,它被放回相应优先级的就绪队列的队首。
——处于实时优先级的线程在被抢先时,时间配额被重置为一个完整的时间片;——处于动态优先级的线程在被抢先时,时间配额不变,重新得到处理机使用权后将运行到剩余的时间配额用完。
3.时间配额用完处于运行状态的线程用完它的时间配额时,Windows 2000/XP会中断该线程的运行,判断是否需要降低该线程的优先级,并查找是否有其他高优先级或相同优先级的线程等待运行。
——如果该线程的优先级降低了,Windows 2000/XP会寻找一个优先级高于该线程的新设置值的就绪线程来调度;——如果该线程的优先级没有降低,并且有其他优先级相同的就绪线程,Windows2000/XP将选择相同优先级的就绪队列中的下一个线程进入运行状态,刚用完时间配额的线程被排到就绪队列的队尾。
——如果没有优先级相同的就绪线程可运行,刚用完时间配额的线程将得到一个新的时间配额并继续运行。
4.结束当线程完成运行时,它的状态从运行状态转到终止状态。
2.6 对称多处理器系统上的线程调度Windows 2000/XP只保证一个优先级最高的线程处于运行状态。
亲合关系Affinity——描述该线程可在哪些处理器上运行——线程的亲合掩码是从进程的亲合掩码继承得到——SetProcessAffinityMask或SetThreadAffinityMask函数可以指定亲合掩码线程的首选处理器和第二处理器——首选处理器:线程运行时的偏好处理器,是基于进程控制块的索引值在进程创建时随机选择的。
SetThreadIdealProcessor函数可以设置线程的首选处理器。
——第二处理器:线程第二个选择的运行处理器就绪线程的处理器选择——当线程进入运行状态时,首先试图调度该线程到一个空闲处理器上运行。
如果有多个空闲处理器,则调度顺序为线程的首选处理器、线程的第二处理器、当前执行处理器,如果它们都不是空闲的,则依据处理器标识从高到低扫描系统中的空闲处理器状态,选择找到的第一个空闲处理器。
——如果线程进入就绪状态时,所有处理器都处于繁忙状态,则将检查一个处于运行状态或备用状态的线程,判断它是否可抢先。
检查的顺序为线程的首选处理器、线程的第二处理器,如果它们都不在线程的亲合掩码中,则将依据活动处理器掩码选择该线程可运行的编号最大的处理器。
为特定的处理器调度线程——在多处理器系统,Windows 2000/XP 不能简单地从就绪队列中取第一个线程,它要在亲合掩码限制下寻找一个满足下列条件之一的线程。
1)线程的上一次运行是在该处理器上;2)线程的首选处理器是该处理器;3)处于就绪状态的时间超过2个时间配额;4)优先级大于等于24;——如果能找不到满足要求的线程,它将从就绪队列的队首取第一个线程进入运行状态。
最高优先级就绪线程可能不处于运行状态空闲线程一个处理器上没有可运行的线程时,Windows 2000/XP会调度相应处理器上对应的空闲线程。
在多处理器系统中,每个处理器都有一个对应的空闲线程。