C# 线程基础——用户模式、内核模式

参照:用户模式和内核模式 - Windows drivers | Microsoft Docs

基础概念

  1. 运行 Windows 的计算机中的处理器有两个不同模式:用户模式 和内核模式 。
  2. 应用程序用户模式下运行;核心操作系统组件内核模式下运行。

大多数驱动程序在内核模式运行,但少数也能以用户模式运行。

用户模式

  • 启动一个用户模式应用程序时,Windows 会为该应用程序创建进程
  • 进程为应用程序提供专用的虚拟地址空间和专用的句柄表 (提供运行环境)。
  • 虚拟地址空间为专用空间,每个程序彼此独立隔离运行。因此应用程序发生故障时不会对其他程序及操作系统有影响

用户模式限制:

用户模式下的处理器无法访问操作系统保留的虚拟地址。(防止应用程序运行更改甚至损坏操作系统数据)

内核模式

内核模式运行下的代码都共享单个虚拟地址空间。即所有操作系统及大多数驱动程序代码运行时都共享一片内存。他们任一发生故障,都可能引起整个操作系统发生故障。

用户模式和内核模式的通信

通信示例