Windows Operating System
C14 Win2000/XP 模型
- Windows 采用什么样的体系结构?
- 融合了分层和客户/服务器系统模型。
- 硬件抽象层HAL的作用是什么?
- 本质: 一个可加载的核心态模块(HAL.dll)
- 直接操纵硬件
- 作用: 向内核, 设备驱动隐藏和硬件有关的细节,使得内核, 设备驱动程序和执行体免受特殊硬件平台差异的影响, 系统可移植性好.
- Windows 系统组件的基本机制。
-
陷阱调度(Dispatching),包括中断、延迟过程调用、异步过程调用、异常调度和系统服务调度
-
属于内核的功能
-
是处理意外事件的硬件机制
-
陷阱处理程序接收中断和异常,检测类型并将控制转交给相应处理程序
-
中断是异步事件;异常是同步事件,系统服务调用被视为异常。
-
-
对象管理器
- 管理操作系统内的所有对象:
- 它将系统公共的资源作为对 象来对待,以控制进程使用对象
- 执行体对象、内核对象
- 执行体对象是对执行体内各种组件实现的对象
- 内核对象是内核实现的初级对象(核心态可见, 用户态不可见)
- 执行体对象包含一个或多个内核对象
- 执行体对象、内核对象
- 跟踪所有对象, 便于对象访问的安全检测。
-
对象之间的同步,包括自旋锁、内核调度程序对象等
- 内核同步
- 定义: 互斥访问内核的临界区
- 内核引入**自旋锁(Spin lock)**实现多处理机互斥机制
- 拥有自旋锁不会被剥夺处理机
- 执行体同步
- 内核以内核对象的形式给执行体提供其他的同步机构,称为**“调度程序对象”**
- 有信号, 无信号两种状态
- 内核以内核对象的形式给执行体提供其他的同步机构,称为**“调度程序对象”**
- 内核同步
-
本地过程调用LPC
- 理解:延迟过程调用 DPC,异步过程调用 APC
- 延迟过程调用 DPC:
- 内核在进行系统嵌套调用时,检测到应该进行重调度。
- 为了保证调度的正确性, 内核用DPC来延迟请求调度的产生。
- 中断服务例程可以把一些相对不紧急得事情放到一个
DPC
对象中,从而缩短处在高IRQL
(中断优先级)的时间IRQL
到DPC/Sidpatcher
以下时产生DPC
中断- 依次执行
DPC 队列
长得每个历程,直到DPC 队列
为空
- DPC队列是系统范围的
- 内核在进行系统嵌套调用时,检测到应该进行重调度。
- 异步过程调用APC:
- 为用户程序和系统代码提供了一种在特定用户线程环境中执行代码的方法。
- 每个线程都有自己的APC队列
- APC队列也由内核管理
- Windows 中有哪些对象,都有什么作用?
-
执行体对象、内核对象
-
执行体对象是对执行体内各种组件实现的对象
- 进程和线程管理器、内存 管理器、I/O管理器、对象管理器等。
-
内核对象是内核实现的初级对象集合 (核心态可见, 用户态不可见, 仅供执行体使用)
-
-
执行体对象包含一个或多个内核对象
- 在多处理机系统中,提供了哪些同步和互斥机制?
-
内核同步
- 定义: 互斥访问内核的临界区
- 内核引入**自旋锁(Spin lock)**实现多处理机互斥机制
- 拥有自旋锁不会被剥夺处理机
-
执行体同步
-
内核以内核对象的形式给执行体提供其他的同步机构,称为"调度程序对象"
- 有信号, 无信号两种状态
-
- 线程如何实现等待一个同步对象的操作?
对象管理器提供了两个系统服务程序, 使线程与调度程序对象同步:
WaitForSingleOb