74
M i c r o s o f t W i n d o w s 2 0 0 0 / X P Windows Windows 操操操 操操 操操操 操操

Windows 操作系统原理

  • Upload
    mare

  • View
    75

  • Download
    4

Embed Size (px)

DESCRIPTION

Windows 操作系统原理. os.cs.tsinghua.edu.cn os.pku.edu.cn. 本书结构. 全书共九章,含盖了操作系统原理课程的全部理论内容以及 Windows 2000/XP 操作系统构成的各个方面 九章的内容依次是: 第 1 章 操作系统概述 第 2 章 Windows 2000 / XP 的体系结构. 第 3 章 进程管理 第 4 章 存储管理 第 5 章 文件系统 第 6 章 I/O 系统 第 7 章 网络 第 8 章 应用程序设计 第 9 章 驱动程序设计. 章节结构. - PowerPoint PPT Presentation

Citation preview

Page 1: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

WindowsWindows操作系统原理操作系统原理

Page 2: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

os.cs.tsinghua.edu.cnos.cs.tsinghua.edu.cnos.pku.edu.cnos.pku.edu.cn

Page 3: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

本书结构本书结构• 全书共九章,含盖了操作系统原理课程的全部理论内容以及 Windows 2000/XP操作系统构成的各个方面

• 九章的内容依次是:– 第 1 章 操作系统概述– 第 2 章 Windows 2000 / XP 的体系结构

Page 4: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

– 第 3 章 进程管理– 第 4 章 存储管理– 第 5 章 文件系统– 第 6 章 I/O 系统– 第 7 章 网络– 第 8 章 应用程序设计– 第 9 章 驱动程序设计

Page 5: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

章节结构章节结构• 一般性原理+ Windows 2000/XP 原理– 一般性原理占全章篇幅的 1/3 ~ 1/2– Windows 2000/XP 作为与原理映照的实例约占 1/2 ~ 2/3 篇幅

• 每章配有习题或思考题若干,可配合教学使用

• 实习

Page 6: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

Windows 2000/XPWindows 2000/XP 的体系结的体系结构构

Page 7: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

本章要点本章要点• 操作系统的设计目标• 操作系统的设计阶段• 几种常见的操作系统体系结构范型• Windows 2000/XP 的操作系统模型• Windows 2000/XP 的体系结构– Windows 2000/XP 的重要组成部分– Windows 2000/XP 的系统机制

• Windows 2000/XP 注册表、服务控制与管理机制

Page 8: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

操作系统的设计问题操作系统的设计问题• 操作系统设计有着不同于一般应用系统设计的特征:– 复杂程度高– 研制周期长– 正确性难以保证

• 解决途径:– 良好的操作系统结构– 先进的开发方法和工程化的管理方法– 高效的开发工具

Page 9: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

操作系统的设计目标操作系统的设计目标• 可靠性:正确性和健壮性 • 高效性:提高系统的运行效率 • 易维护性:易读、易扩充、易剪裁、易修改性 • 易移植性:一次开发,多处使用• 安全性:计算机软件系统安全性的基础 • 可适应性• 简明性

%100

smsuu

suu

TTT

TT

Page 10: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

Windows 2000/XPWindows 2000/XP 的设计目标的设计目标• 总原则:市场需求 驱动 设计目标• 需求:– 提供一个真 32 位抢占式可重入的虚拟内存操作系统– 能够在多种硬件体系结构和平台上运行– 能够在对称多处理系统上运行并具有良好的可伸缩性– 优秀的分布式计算平台,既可作为网络客户,又可作为网络服务器

– 可运行多数现有 16 位 MS-DOS 和 Microsoft Windows 3.1 应用程序

– 符合政府对符合 POSLX 1003.1 的要求– 符合政府和企业对操作系统安全性的要求– 支持 Unicode ,适应全球市场的需要

Page 11: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• Windows 2000/XP 的设计目标:– 可扩充性 – 可移植性– 可靠性及坚固性– 兼容性– 性能

Page 12: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

操作系统的设计考虑操作系统的设计考虑• 功能设计:操作系统应具备哪些功能 • 算法设计:选择和设计满足系统功能的算法和策略,并分析和估算其效能

• 结构设计:选择合适的操作系统结构

Page 13: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

操作系统结构设计操作系统结构设计

按照系统的功能和特性要求,选择合适的结构,使用相应的结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、简单、可靠、易读、易修改,而且使用方便,适应性强

Page 14: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

操作系统结构操作系统结构• 程序结构– 程序结构的两层含义– 程序的结构良好的准则

• 软件结构• 操作系统结构– 重要性 – 解决什么问题 ,目标何在– 困难在那里

Page 15: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

几种常见的操作系统结构几种常见的操作系统结构

• 模块组合结构

模块组合结构的特点与适应性– 模块间转接随便– 数据基本上作为全程量处理– 常常关中断,系统的并发性难以提高

Page 16: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 层次结构– 层次结构设计方法的核心思想– 例如 E.W.Dijkstra 的 THE 系统:

1

2

3

4

5

处理器分配和多道程序

内存和磁盘管理

操作员-进程通信

输入 /输出管理

用户程序

操作员

0

Page 17: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 层次结构的特点– 分解成许多功能单一的模块,各模块之间有清晰的组织结构和依赖关系

– 具有更高的可读性和可适应性– 层次结构是单向依赖的,上层模块建立在下层基础上,设计了比较可靠的基础

– 很容易增加或替换掉一层而不影响其它层次– 便于修改、扩充

Page 18: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

层次结构的层间关系层次结构的层间关系• 全序• 半序

第 3层

第 2层

第 1层

第 0层

Page 19: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 进程分层结构

• 实现代价较大:– 必须设立一个进程控制块,用以保留进程的状态信息,增加了内存开销

– 进程之间的控制转移、状态保留及信息传送,均由核心去管理,时间消耗多,效率下降

– 系统并发活动过多,调度负担过重,且同步操作过于分散,易于造成死锁,影响了系统的安全性

层次结构的两种类型层次结构的两种类型核心

Page 20: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 层次管程结构– 进程:并发单位– 类程:专用资源的抽象 – 管程:共享资源的抽象 – 一个动态的系统则由内核和一组有限个满足规定调用关系的进程 P 、类程 C 和管程 M构成。其中进程是系统中唯一能动的成分,管程和类程都是被动成分

– 存取图

Page 21: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 优点– 采用层次管程结构的系统结构清晰、统一– 同步操作相对集中,系统安全性较高– 用高级语言书写程序,研制周期短,通过编译技术获取更高的灵活性和效率

– 只用一种概念描述并发,减少了不必要的并行性,减少了系统开销。

• 缺点:– 管程嵌套问题比较难于高效的解决– 不便于管理多个资源和全局性资源

Page 22: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

虚拟机结构 虚拟机结构 • 如 IBM大型机上的系列操作系统• 基本思想:系统应该提供 1)多道程序能力 2)一个比裸机有更方便扩展界面的计算机 。但是二者的实现应该相互独立

• 优缺点– 虚拟机概念可以实现完全保护– 用软件从硬件逐层扩展– 虚拟机方法把多道程序和扩充机器的功能完全分开了,使每一部分都简单、灵活,更易于维护。

Page 23: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

370裸机

VM/370

CMS CMS CMS

系统调用陷入

I/O指令陷入

若干个 370 虚拟机

Page 24: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

微内核(客户微内核(客户 // 服务器结构)服务器结构)• CMU 的 Mach 、早期的 Windows NT……• 非常适宜于应用在网络环境下,应用于分布式处理的计算环境中

• 由下面两大部分组成 :– “微”内核– 若干服务

• 主要特点:– 机制与策略分离比较彻底– 可靠– 灵活– 适合分布式计算的需求– 缺点:效率较低

Page 25: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

其它体系结构其它体系结构• 外展式核心( Exokernels)– 这种观点认为操作系统应该只负责在竞争的用户之间安全、有效的分配计算资源

– 传统操作系统的绝大部分功能应该在系统库中以可选的方式链接进用户程序

• 可扩展系统– 可扩展系统认为应该将尽可能多的模块以一种受保护的方式放进核心当中。操作系统的构造者可以先构造从一个只包含稍微多余核心保护机制的一个最小核心。而其它的功能则通过不断的往核心中添加受保护的模块实现。

Page 26: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

Windows 2000/XPWindows 2000/XP 系统模型系统模型• 融合了分层操作系统和微内核操作系统的设计思想,使用面向对象的分析与设计,采用整体式的实现

• Windows 2000/XP通过硬件机制实现了核心态以及用户态两个特权级别 。对性能影响很大的操作系统组件运行在核心态。核心内没有保护。

• 设计充分体现了机制与策略分离的思想

Page 27: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• Windows 2000/XP 的核心态组件使用了面向对象设计原则

• 出于可移植性以及效率因素的考虑,大部分代码使用了基于 C语言的对象实现。

• Windows 2000/XP 的很多系统服务运行在核心态,这使得Windows 2000/XP更加高效,而且也是相当稳定的。

Page 28: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

系统支撑处理器

系统支持进程 服务进程 用户程序 环境子系统

子系统动态链接库

用户态用户态

核心态核心态

HAL硬件抽象层( )

执行体

核心 设备驱动程序图形引擎

Page 29: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

Windows 2000/XPWindows 2000/XP 的构成的构成• 用户态组件– 系统支持进程( system support process),不是 Win

dows 2000/XP 服务,不由服务控制器启动。– 服务进程( service process), Windows 2000/XP 的服务。

– 环境子系统( enviroment subsystems),它们向应用程序提供操作系统功能调用接口包括: Win32 、 POSIX 和 OS/2 1.2。

– 应用程序( user applications),五种类型: Win32 、Windows 3.1 、 MS-DOS 、 POSIX 或 OS/2 1.2。

– 子系统动态链接库:调用层转换和映射

Page 30: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 核心态组件– 核心( kernel)包含了最低级的操作系统功能,例如线程调度、中断和异常调度、多处理器同步等。同时它也提供了执行体( Executive)用来实现高级结构的一组例程和基本对象。

– 执行体包含基本的操作系统服务,例如内存管理器、进程和线程管理、安全控制、 I/O 以及进程间的通信。

– 硬件抽象层( HAL, Hardware Abstraction Layer)将内核、设备驱动程序以及执行体同硬件分隔开来,实现硬件映射。

– 设备驱动程序( Device Drivers)包括文件系统和硬件设备驱动程序等,其中硬件设备驱动程序将用户的 I/O函数调用转换为对特定硬件设备的 I/O请求。

– 窗口和图形系统包含了实现图形用户界面( GUI , Graphical User Interface)的基本函数。

Page 31: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

可移植性的获得可移植性的获得• 两种手段– 分层的设计。依赖于处理器体系结构或平台的系统底层部分被隔离在单独的模块之中,系统的高层可以被屏蔽在千差万别的硬件平台之外。提供操作系统可移植性的两个关键组件是 HAL 和内核。依赖于体系结构的功能在内核中实现,在相同体系结构中,因计算机而异的功能在 HAL中实现。

– Windows 2000/XP大量使用高级语言——执行体、设备驱动程序等用 C语言编写,图形用户界面用 C++编写。只有那些必须和系统硬件直接通信的操作系统部分,或性能极度敏感的部分是用汇编语言编写的。汇编语言代码分布集中且少。

Page 32: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

对称多处理器支持对称多处理器支持• 代码对处理器的可伸缩性好• IPC 和锁机制完善• 核心态组件代码可重入程度极高• 多优先级占式调度,多数核心态组件代码都可以被抢占

• 设计抽象度高, SMP 硬件设置对绝大多数组件不可见、也无需关心

Page 33: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

系统支持进程 服务进程 应用程序 环境子系统

服务管理器

本地安全验证服务

Wi ndows登陆

会话管理器

任务管理器

Wi ndows浏览器用户级应用程序

子系统动态链接库

系统级线程 用户态

核心态

系统级服务调度进程

核心态可调用接口

图形驱动程序

I /O设备管理器

设备、文件系统驱动程序

局部过程调用

注册表配置管理器

进程和线程

虚拟存储器

电源管理器

即插即用设备管

理器

对象管理器

文件系统缓存管

理器

系统核心

HAL硬件抽象层( )

硬件接口( I /O DMA )总线、 设备驱动、中断、时钟间隔、直接内存存取( )、存储器缓存控制器等等

安全指向监视器

Windows 2000/XPWindows 2000/XP 的关键系统组件的关键系统组件

Page 34: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

内核内核• 功能– 线程安排和调度– 陷阱处理和异常调度– 中断处理和调度– 多处理器同步– 供执行体使用的基本内核对象

• 始终运行在核心态,代码精简,可移植性好。除了中断服务例程( ISR , interrupt service routine),正在运行的线程不能抢先内核。

Page 35: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 内核对象– 帮助控制、处理并支持执行体对象的操作,以降低系统策略代价

– 控制对象,这个对象集和包括内核进程对象、异步过程调用( APC , asynchronous procedure call)对象、延迟过程调用( DPC , deferred procedure call)对象和几个由 I/O 系统使用的对象,例如中断对象。

– 调度程序对象集合负责同步操作并影响线程调度。调度程序对象包括内核线程、互斥体(Mutex)、事件( Event)、内核事件对、信号量( Semaphore)、定时器和可等待定时器

Page 36: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 内核与硬件–使得执行体和设备驱动程序同硬件无关 –实现手段:一组在多个体系结构上可移植、同语义的接口–内核也有部分代码不具有移植性•支持虚拟 8086 模式的代码,用以运行一些古老的 16 位 DOS 程序•高速缓存管理•描述表切换

Page 37: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

硬件抽象层(硬件抽象层( HALHAL ))• 实际硬件与 Windows 2000/XP 抽象计算机描述的接口层和功能映射层

• 隐藏各种与硬件有关的细节,例如 I/O接口、中断控制器以及多处理器通信机制等

• 实现多种硬件平台上的可移植性

Page 38: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

执行体执行体• 提供的功能性调用– 从用户态导出并且可以调用的函数。这些函数的接口在 NTDLL.DLL中。通过Win32API 或一些其他的环境子系统可以对它们进行访问。

– 从用户态导出并且可以调用的函数,但当前通过任何文档化的子系统函数都不能使用。

– 在 Windows 2000 DDK中已经导出并且文档化的核心态调用的函数。

– 在核心态组件中调用但没有文档化的函数。例如在执行体内部使用的内部支持例程。

– 组件内部的函数。

Page 39: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 包含的功能实体– 进程和线程管理器创建及中止进程和线程。对进程和线程的基本支持在 Windows 2000 内核中实现,而执行体给这些低级对象添加附加语义和功能。

– 虚拟内存管理器实现“虚拟内存”。内存管理器也为高速缓存管理器提供基本的支持。

– 安全引用监视器在本地计算机上执行安全策略。它保护了操作系统资源,执行运行时对象的保护和监视。

– I/O 系统执行独立于设备的输入 /输出,并为进一步处理调用适当的设备驱动程序。

– 高速缓存管理器通过将最近引用的磁盘数据驻留在主内存中来提高文件 I/O 的性能,并且通过在把更新数据发送到磁盘之前将它们在内存中保持一个短的时间来延缓磁盘的写操作,这样就可以实现快速访问。

Page 40: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

– 对象管理:创建、管理以及删除Windows 2000/XP 的执行体对象和用于代表操作系统资源的抽象数据类型,例如进程、线程和各种同步对象。

– 本地过程调用( LPC , Local Procedure Call)机制,在同一台计算机上的客户进程和服务进程之间传递信息。 LPC 是一个灵活的、经过优化的“远程过程调用”( RPC , Remote Procedure Call)版本。

– 一组广泛的公用运行时函数,例如字符串处理、算术运算、数据类型转换和完全结构处理。

– 执行体支持例程,例如系统内存分配(页交换区和非页交换区)、互锁内存访问和两种特殊类型的同步对象:资源和快速互斥体。

Page 41: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

设备驱动程序设备驱动程序• 可加载的核心态模块 • I/O 系统和相关硬件之间的接口 • 使用 WDM 以及加强的 WDM 方式• 分类– 硬件设备驱动程序操作硬件。– 文件系统驱动程序接受面向文件的 I/O请求,并把它们转化为对特殊设备的 I/O请求。

– 过滤器驱动程序截取 I/O 并在传递 I/O到下一层之前执行某些特定处理。

Page 42: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

环境子系统环境子系统• 将基本的执行体系统服务的某些子集以特定的形态展示给应用程序,函数调用不能在不同子系统之间混用,因此每一个可执行的映像都受限于唯一的子系统

• 三种环境子系统: POSIX 、 OS/2 和 Win32( OS/2 只能用于 x86 系统)

• Win32子系统必须始终处于运行状态,其他两个子系统只是在需要时才被启动,Win32子系统是 Windows 2000/XP 运行的基本条件之一。

Page 43: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• Win32子系统– Win32环境子系统进程 CSRSS ,包括对下列功能的支持:控制台(文本)窗口、创建及删除进程与线程、支持 16 位 DOS 虚拟机( VDM)进程的部分。

– 核心态设备驱动程序(WIN32K.SYS)。– 图形设备接口( GDI , Graphics Device Interfaces)– 子系统动态链接库,它调用 NTOSKRNL.EXE 和 WIN

32.SYS 将文档化的 Win32 API函数转化为适当的非文档化的核心系统服务。

– 图形设备驱动程序,包括依赖于硬件的图形显示驱动程序、打印机驱动程序和视频小型端口驱动程序。

– 其他混杂的函数,如几种自然语言支持函数。

Page 44: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• POSIX子系统– 设计的强迫性目标– 实现了 POSIX.1 ,功能局限,用处不大– Windows XP 实际上并不包含 POSIX子系统– 今后产品的 POSIX/UNIX子系统将大大加强

Page 45: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

Page 46: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

NTDLLNTDLL• 主要用于子系统动态链接库的特殊系统支持库

• 功能– 提供系统调用入口– 为子系统、子系统动态链接库、及其他本机映像提供内部支持函数

– NTDLL也包含许多支持函数,例如映像加载程序、堆管理器和 Win32子系统进程通信函数以及通用运行库。

– 用户态异步过程调用( APC)调度器和异常调度器。

Page 47: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

系统支持进程系统支持进程• Idle 进程• 系统进程• 会话管理器 SMSS• Win32子系统 CSRSS• 登录进程 WINLOGIN• 本地安全身份验证服务器 LSASS• 服务控制器 SERVICES 及其相关的服务进程

Page 48: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

Windows 2000/XPWindows 2000/XP 的系统机制的系统机制• 陷阱调度,包括中断、延迟过程调用( DPC , De

ferred Procedure Call)、异步过程调用( APC ,Asynchronous Procedure Call)、异常调度( Exception Dispatching)和系统服务调度( System Service Dispatching)

• 执行体对象管理器( Executive Object Manager)• 同步( Synchronization),包括自旋锁( Spin lo

ck)、内核调度程序对象(Kernel Dispatcher Objects)

• 本地过程调用( LPC , Local Procedure Call)

Page 49: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

陷阱调度陷阱调度中断服务例程

陷阱处理程序

中断

系统服务系统服务调用

硬件异常软件异常

异常结构 异常调度程序

异常处理程序

虚拟地址异常 虚拟存储器页面管理程序

• 当异常或中断发生时,硬件或软件可以检测到,处理器会从用户态切换到核心态,并将控制转交给内核的陷阱处理程序,该模块检测异常和中断的类型,并将控制交给处理相应情况的代码

Page 50: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 异常和中断– 中断是异步事件,可能随时发生,与处理器正在执行的内容无关。中断主要由 I/O 设备、处理器时钟或定时器产生,可以被启用或禁用

– 异常是同步事件,它是某一特定指令执行的结果。在相同条件下,异常可以重现。例如内存访问错误、调试指令以及被零除。

– 系统服务调用也视作异常。– 软件和硬件都可以产生异常和中断。

• 陷阱帧:完整的线程描述表的子集,用于现场保护

• 陷阱处理程序处理少量事件,多数转交给其他的内核或执行体模块处理

Page 51: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

中断调度中断调度

硬件中断

高优先级

电源故障

处理器内部中断

时钟中断

软件中断

设备

设备

低优先级 正常线程执行

配置文件

• 中断分类和优先级– 中断请求级别( IRQL , Interrupt Request Level)

– 硬件中断– 软件中断

• APC

• DPC

Page 52: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 硬件中断处理过程– 保存计算机的状态 – 禁用中断 – 调用中断调度程序 – 提高处理器的 IRQL到中断源的级别 – 重新启用中断– 在中断分配表中查找处理特定中断的例程– 服务例程执行 – 降低处理器的 IRQL到该中断发生前的级别 – 加载保存的机器状态 – 中断返回

Page 53: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

定时器到时,系统核心将一个DPC DPC放入 队列中。并且释放正在等待定时器的线程。然后核心请求软件中断

当中断优先级低于DPC/di spatch的时候,

DPC中断产生 DPC/di spatch

低优先级

电源故障

高优先级

中断调度表

队列

调度程序

DPC中断之后,系统控制权交给(线程)调

度程序

DPC调度程序执行 队列中的每一个例DPC程,直到 队列为空。如果需要,调

度程序也会重新安排处理器。

• 软件中断的处理– 延迟过程调用

Page 54: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

–异步过程调用•异步过程调用为用户程序和系统代码提供了一种在特殊用户线程的描述表(一个特殊的进程地址空间)中执行代码的方法 •有用户态 APC 和核心态 APC

Page 55: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

异常调度异常调度• 异常直接由运行程序的执行所产生。• 除了那些可由陷阱处理程序解决的简单异常外,所有异常都是由异常调度程序接管

• 结构化异常处理• 基于框架的异常处理程序• 异常调度过程

Page 56: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

陷阱处理程序

异常记录

异常调度程序

调试器端口

调试器端口

异常端口

调试器(第一次)

调试器(第二次)

环境子系统

核心缺省处理例程

函数调用

基于框架的处理例程

Page 57: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

系统服务调度系统服务调度• 在 Alpha 处理器上执行 syscall指令或在

Intel x86 处理器上执行 int 2E指令都会引起系统服务调度

• 系统服务调度程序将依次作下面几件事:– 校验参数– 调用者的参数从线程的用户堆栈复制到它的核心堆栈中

– 执行系统服务

Page 58: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

WIN32 API核心

WIN32应用程序

Kernel32.dl lWri teFi l e中的

调用Wri teFi l es(). . .

调用NtWri teFi l e返回

结果

Win32专用

Ntdl l .dl l中的NtWri teFi l e

返回结果用于所有子系统

软件中断

Ntoskrnl .exe中的KISystemServi ce

Ntoskrnl .exe中NtWri teFi l e的

NtWri teFi l e调用关中断

执行操作返回结果

Win32 USER GDI API和

应用程序USER调用 或

GDI服务例程

Gdi32.dl lUser32.dl l或 返回结果

Win32专用

软件中断

Ntoskrnl .exe中的KISystemServi ce

Win32k.sys中的服务入口点

执行操作返回结果

Win32调用 例程关中断

用户态

核心态

Page 59: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

对象管理器对象管理器• 执行体组件之一• 用于创建、删除、保护和跟踪对象• 提供使用系统范围内资源使用的公共、一致的机制

• 实现对象的集中保护• 实现了资源的访问控制• 对象管理器有一套对象命名方案和统一的保留规则,能够容易地操纵现有对象

Page 60: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 执行体对象– 由执行体的各种组件实现 – 进程管理器、内存管理器、 I/O子系统等

• 内核对象– 由内核实现的原始的对象集合– 这些对象对用户态代码是不可见的,它们仅在执行体内创建和使用

• 内核对象提供了一些基本性能,许多执行体对象内包含着一个或多个内核对象。

Page 61: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 对象命名• 对象头:存储对象管理信息和描述信息• 类型对象:保存特定对象类型的类型信息• 对象的生存周期• 对象方法• 对象句柄• 对象安全• 配额和资源记帐

Page 62: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

同步机制同步机制A处理器 B处理器

尝试获得DPC队列的spi nl ock

尝试获得DPC队列的spi nl ock

DPC队列

临界区

成功成功 成功

DPC从队列移出 DPC向队列加入

DPC spinlock释放 队列中的 DPC spinlock释放 队列中的

• 内核同步– 内核的临界区是修改共用数据结构的代码段

– 最大问题是中断

– 自旋锁

Page 63: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 执行体同步– 自旋锁使用的限制• 被保护的资源必须被快速访问,并且没有与其他代码的复杂的交互作用。• 临界区代码不能换出内存,不能引用可分页数据,不能调用外部程序(包括系统服务),不能生成中断或异常情况。

– 调度程序对象

Page 64: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

本地过程调用本地过程调用• 一个用于高速信息传输的进程间通信机制(使用共享内存)

• LPC 常常被使用在一个服务器进程与该服务器的一个或多个客户进程之间,以及在两个用户态进程之间或一个核心态组件和一个用户态进程之间

• 常被视作经过高度优化的 RPC 的本地版本

Page 65: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• LPC 的三种交换信息的方法:– 使用包含信息的缓冲区调用 LPC 可以发送少

于 256字节的信息。然后,这个信息又从发送进程的地址空间复制到系统地址空间,再从那里拷贝到接收进程的地址空间。

– 如果用户和服务器想交换大于 256字节的数据,那么他们可以选择使用双方都映射了的共享区。发送方将信息数据放到共享区,然后向接收方发送一小段信息表明在共享区的什么地方可以找到数据。

– 当服务器想读或写大量数据,而共享区又太小时,数据可以直接从客户地址空间读出或向客户地址空间写入。

Page 66: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

系统工作线程系统工作线程• 代表其它线程履行职责• 三种系统工作线程 – 延迟工作线程运行在优先级 12 ,处理非时间关键的工作项,它们的堆栈在等待工作项时可以被换出到页交换文件。

– 关键工作线程运行在优先级 13 ,处理时间关键工作项,在 windows2000 server中它们的堆栈始终在物理内存中。

– 一个单独的高度关键工作线程运行在优先级 15 ,堆栈也始终在物理内存中,处理管理器使用这种工作线程的“收割机”功能释放终止的线程。

Page 67: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

注册表注册表• 保存所有有关系统和每个用户的设置信息 • Windows 2000 系统管理机制的关键数据库• 组成:– 主键– 键值– 主键可以包含若干主键(或称为这个主键的子键)和键值,而键值则存储数据,顶级主键称为根键

– 六个根键

Page 68: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• HKEY_CURRENT_USER 存储与当前登录用户有关的信息。

• HKEY_USER 存储了所有用户的信息。 • HKEY_CLASSES_ROOT 存储与文件类型和 COM 对象相关的信息

• HKEY_LOCAL_MACHINE 存储与系统设置相关的信息

• HKEY_PERFORMANCE_DATA 存储与系统性能相关的信息

• HKEY_CURRENT_CONFIG 存储了当前硬件配置文件的信息

Page 69: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

Window 2000/XPWindow 2000/XP 服务服务

• Win32 服务由三部组成:– 服务应用程序– 服务控制程序( SCP)– 服务控制管理器( SCM)

• 服务帐号– 本地系统帐号方式– 备用帐号方式

Page 70: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

主线程

主流程

服务处理程序调度

暂停服务处理程序

服务处理程序 服务处理程序表

SCM连接 的管道

服务线程

登记服务处理程序

初始化

处理客户请求

客户服务的连接

Page 71: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 服务的控制– 服务的启动• 正常启动• 特殊启动(接受最近一次的正确配置)• 启动的参数传递

– 服务的关闭– 服务错误– 服务失败– 共享– 服务控制程序

Page 72: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

WindowsWindows 管理机制管理机制• 基于 Web-Based Enterprise Management:

WBEM 标准的实现• 事务数据收集和管理 • 强伸缩性和强扩展性• 四个主要的组件:– 管理程序– WMI 基础设施– 数据生产者– 被管理的对象集合

Page 73: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

数据库应用程序 Web浏览器 C/C++应用程序 管理程序

Acti veX控制

Windows 管理程序接口

WMI的基础设施仓库 CMI CMIOM对象管理( )

SNMP对象生产者

Win32对象生产者

寄存器对象生产者 对象生产者

接受管理的对象寄存器对象Win32对象SNMP对象

Page 74: Windows 操作系统原理

Micro

soft

Win

do

ws

2000/XP

• 数据生产者– 定义对象– 为 WMI 提供这些对象的编程接口

• CIM 和 MOFL

• WMI名字空间• WMI 对象浏览器• WMI 的安全