用户模式和内核模式

运行 Windows 的计算机中的处理器有两个不同模式:用户模式 和内核模式 。 根据处理器上运行的代码的类型,处理器在两个模式之间切换。 应用程序在用户模式下运行,核心操作系统组件在内核模式下运行。 虽然许多驱动程序以内核模式运行,但某些驱动程序可能以用户模式运行。
启动用户模式应用程序时,Windows 会为该应用程序创建进程 。 进程为应用程序提供专用的“虚拟地址空间” 和专用的“句柄表” 。 由于应用程序的虚拟地址空间为专用空间,因此一个应用程序无法更改属于其他应用程序的数据。 每个应用程序都隔离运行,如果一个应用程序发生故障,则故障仅局限于该应用程序。 其他应用程序和操作系统不会受该故障的影响。
除了专用之外,用户模式应用程序的虚拟地址空间也受到限制。 在用户模式下运行的处理器无法访问为操作系统保留的虚拟地址。 限制用户模式应用程序的虚拟地址空间可防止应用程序更改以及可能损坏关键的操作系统数据。
在内核模式下运行的所有代码都共享单个虚拟地址空间。 这意味着内核模式驱动程序不会与其他驱动程序和操作系统本身隔离。 如果内核模式驱动程序意外写入错误的虚拟地址,则属于操作系统或其他驱动程序的数据可能会受到安全威胁。 如果内核模式驱动程序发生故障,整个操作系统就会发生故障。

此图说明了用户模式组件与内核模式组件之间的通信。

用户模式组件与内核模式组件之间的通信
[转载】
参考文档

微软文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Linux 中,进程在用户模式内核模式之间切换。用户模式是指进程在执行用户空间代码时所处的模式内核模式是指进程需要执行内核空间代码时所处的模式。 在用户模式下,进程可以执行其自身的代码,访问自己的内存空间以及执行一些系统调用。但是,如果进程需要执行一些需要访问系统资源(如硬件设备、文件系统等)的操作,则需要切换到内核模式。在内核模式下,进程可以访问所有的系统资源,执行所有的系统调用。 进程在用户模式内核模式之间切换的时间就是进程在执行系统调用时所花费的时间。当进程需要执行系统调用时,它会将系统调用的参数传递给内核,然后切换到内核模式执行系统调用。当系统调用完成后,进程再切换回用户模式,并将系统调用的返回值传递给应用程序。这个过程中,进程需要进行上下文切换以及内核态和用户态之间的数据传输,所花费的时间往往比较长。 ### 回答2: 在Linux系统中,进程是程序执行的实体,可以执行指令、访问资源和进行通信。进程的用户模式内核模式时间是指进程在用户空间和内核空间所消耗的时间。 用户模式时间是指进程在用户空间执行代码所消耗的时间。在用户空间,进程可以直接访问用户级别的资源,如用户程序、用户库和用户堆栈。因此,当进程执行用户级别的指令时,其消耗的时间被称为用户模式时间。用户模式时间主要用于处理应用程序的运行,如计算、逻辑处理和数据操作等。 内核模式时间是指进程在内核空间执行操作所消耗的时间。在内核空间,进程可以访问内核级别的资源和服务,如系统调用、设备驱动程序和内核数据结构等。当进程需要执行特权操作时,如IO操作、内存管理和进程调度等,会切换到内核模式。在内核模式下执行的代码,消耗的时间被称为内核模式时间。内核模式时间主要用于处理系统级别的操作,如设备驱动、内存管理和进程调度等。 进程的用户模式时间和内核模式时间统计了进程在不同模式下所消耗的时间,并提供了对进程性能和系统资源的评估。通过监控这两个时间可以了解进程的运行情况,优化程序性能,并对系统进行调优。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值