java用户态和内核态「建议收藏」

java用户态和内核态「建议收藏」在<深入理解java虚拟机>这本书上多次看到用户态和内核态两个名词,虽然大概能明白意思.但对于两者具体的定义和区别还是比较,特此查阅之后记录.内核态(KernelMode)与用户态(UserMode)内核态:CPU可以访问内存所有数据,包括外围设备,例如硬盘,网卡.CPU也可以将自己从一个程序切换到另一个程序用户态:只能受限的访问内存,且不允许访问外…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在<深入理解java虚拟机>这本书上多次看到用户态和内核态两个名词, 虽然大概能明白意思. 但对于两者具体的定义和区别还是比较, 特此查阅之后记录.

内核态(Kernel Mode)与用户态(User Mode)

内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序

用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取

为什么要有用户态和内核态

由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 — 用户态内核态

用户态与内核态的切换

所有用户程序都是运行在用户态的, 但是有时候程序确实需要做一些内核态的事情, 例如从硬盘读取数据, 或者从键盘获取输入等. 而唯一可以做这些事情的就是操作系统, 所以此时程序就需要先操作系统请求以程序的名义来执行这些操作.

这时需要一个这样的机制: 用户态程序切换到内核态, 但是不能控制在内核态中执行的指令

这种机制叫系统调用, 在CPU中的实现称之为陷阱指令(Trap Instruction)

他们的工作流程如下:

  1. 用户态程序将一些数据值放在寄存器中, 或者使用参数创建一个堆栈(stack frame), 以此表明需要操作系统提供的服务.
  2. 用户态程序执行陷阱指令
  3. CPU切换到内核态, 并跳到位于内存指定位置的指令, 这些指令是操作系统的一部分, 他们具有内存保护, 不可被用户态程序访问
  4. 这些指令称之为陷阱(trap)或者系统调用处理器(system call handler). 他们会读取程序放入内存的数据参数, 并执行程序请求的服务
  5. 系统调用完成后, 操作系统会重置CPU为用户态并返回系统调用的结果
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192365.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月14日 上午7:22
下一篇 2026年1月14日 上午8:01


相关推荐

  • 【比赛】【树上路径(phantasm)】

    【比赛】【树上路径(phantasm)】—恢复内容开始—题目大意:求1,2,…,n有多少个长为m的子序列a,满足  a1=1,am=n  ∀i,ai+1−ai≥k保证这样的子序列存在。只需判断方案数的奇偶性。数据有T组。n,m,k≤109,T≤2×106.//dfs枚举集合//复杂度预估O(T*2^n)/…

    2022年5月30日
    33
  • 如何画UML类图

    如何画UML类图简单介绍统一建模语言 UnifiedModel UML 是用来设计软件蓝图的可视化建模语言 面向对象的建模语言的国际标准 它的特点是简单 统一 图形化 能表达软件设计中的动态与静态信息 类 接口 类图类类 Class 是指具有相同属性 方法和关系的对象的抽象 它封装了数据和行为 是面向对象程序设计 OOP 的基础 具有封装性 继承性和多态性等三大特性 在 UML 中 类使用包含类名 属性和操作且带有分隔线的矩形来表示 类名类名 Name 是一个字符串 例如

    2025年12月12日
    6
  • python写的hadoop实战_Hadoop实战

    python写的hadoop实战_Hadoop实战Hadoop 实战 1Hadoop 简介 1 1 什么是 Hadoop1 1 1Hadoop 概述 1 1 2Hadoop 的历史 1 1 3Hadoop 的功能与作用 1 1 4Hadoop 的优势 1 1 5Hadoop 的应用现状和发展趋势 1 2Hadoop 项目及其结构 1 3Hadoop 的体系结构 1 3 1HDFS 的体系结构 1 3 2MapReduce 的体系结构 1 4Hadoop 与分布式开发 1 5

    2026年3月20日
    2
  • Spring事物管理器TransactionManager解析

    Spring事物管理器TransactionManager解析Spring 框架支持事务管理的核心是事务管理器抽象 对于不同的数据访问框架 如 Hibernate 通过实现策略接口 PlatformTran 从而能支持各种数据访问框架的事务管理 PlatformTran 接口定义如下 publicinterf Trans

    2026年3月20日
    2
  • pycharm 安装vim插件后的快捷键操作

    pycharm 安装vim插件后的快捷键操作1 查找函数调用 ctrl 2 查找函数在哪个地方被调用 command 或者 ctrl alt f7 进行全局搜索 就能够搜索到所有调用这个函数的地方 3 光标回退 ctrl o4 光标前进 ctrl i5 快捷键运行 alt shift F106 快捷键 debugalt shift F9

    2026年3月17日
    2
  • java学习——java按值传递和按址传递

    java中的按值传递和按址传递(按引用传递),要明白这两个概念,要理解按值和按址。

    2022年2月25日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号