首页 > 系统相关 >进程在用户态和内核态的区别[独家解析]

进程在用户态和内核态的区别[独家解析]

时间:2023-06-12 16:03:55浏览次数:36  
标签:中断 程序 用户 独家 内核 进程 解析 CPU


 先看基础常识:

基础

内核在创建进程的时候,会为进程创建相应的堆栈。
    每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。
  当进程在用户空间运行时,CPU寄存器里面的内容是用户堆栈地址,使用用户栈 
  当进程在内核空间时,CPU寄存器里面的内容是内核栈空间地址,使用内核栈。
切换过程:
    当发生系统调用时,用户态的程序发起系统调用。用户态程序权限不足,因此会中断执行,发生中断后,当前CPU执行的程序会中断,跳转到中断处理程序。内核程序开始执行,也就是开始处理系统调用。内核处理完成后,这样会再次发生中断,切换回用户态工作。

 区别:

   最重要的差别就在于特权级的不同,即权力的不同。运行在用户态下的程序不能直接访问操作系统内核数据结构和程序 
  
 系统中执行的程序大部分时间运行在用户态,在其需要操作系统帮助完成某些它没有权力和能力完成的工作时就会切换到内核态。

   用户态切换到内核态的3种方式

    1. 系统调用

    这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如前例中fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。

    2.异常

    当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。

    3.外围设备的中断

    当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。


 

标签:中断,程序,用户,独家,内核,进程,解析,CPU
From: https://blog.51cto.com/u_14689911/6463135

相关文章

  • 内核在Linux启动中的中流砥柱
        内核时操作系统中最基本的部分,它在系统启动时被加载到内存里面,然后留在内存中管理系统的资源、调度进程等。 内核可以管理进程、用户、内存等主要部分。在编译过程中静态链接到主机的内核模块中。有一种可加载的内核模块,在编译时没有链接到主机,但是在系统启动时或启动......
  • 字符设备驱动-9.内核定时器
    1引入定时器前面的gpio按键驱动引入了中断,当按键按下会记录按键信息,理想状况是按下一次按键记录一组数据,但实际上按下机械振动导致电平反复跳动最后才稳定,按下一次gpioirq会触发多次,这个被叫做“抖动”,那么可以利用定时器进行“去抖”。到linux_5.10版本structtimer_list......
  • 解析汽车APP面临的18种攻击风险
    近日,顶象发布《车企App安全研究白皮书》。该白皮书总结了目前汽车公司App所面临的主要技术威胁和合规风险,详细分析了这些风险产生的原因,并提供了相应的安全解决方案。  现在,自有App已成为各汽车品牌的标配。这些汽车厂商的App不仅可以帮助用户实现远程开启空调、门锁、启动......
  • [转]POI 解析excel报错 java.lang.NoClassDefFoundError: org/apache/poi/ss/usermode
    前几天做了一个excel上传导入功能,为了通用想同步支持xls和xlsx格式。代码编写期并没有报错,所需要的类也都有。可是应用启动完测式功能的时候报了这么一个错Causedby:java.lang.NoClassDefFoundError:org/apache/poi/ss/usermodel/Date1904Support这是为什么呢?我第一感觉是jar......
  • PHP json_decode 关键词不被解析的处理方法
    如果JSON数据中包含了PHP的关键字,如true、false或者null,则json_decode()函数将无法成功解析该数据。因此可以使用单独判断的方式$v=$v===true?'true':$v;$v=$v===false?'false':$v;$v=$v===null?'null':$v;sha256demo<......
  • 消费者组重平衡全流程及状态机解析
    一、重平衡流程介绍   消费者组重平衡的作用就是让消费者组达成一致,完成消费者与哪些主题分区达成一致。重平衡需要借助Kafkabroker端的协调者组件,在coordinator的帮助下完成整个消费者分组的分区重分配。触发与通知重平衡触发的3个条件消费者组的成员数量变化消......
  • 业财一体化:供应链业务到财务核算的全貌解析
    编辑导语:在供应链的范畴里,从供应链的进销存业务开始,到财务的核算结束,才算是一个完整的物流、信息流和资金流。本文为大家详细介绍了供应链业务到财务核算的全貌,一起看看吧!因为财务的内容比较多,本篇文章,我们先介绍供应链的财务处理全貌,后面找机会再来展开介绍应收、应付和存货相关内......
  • 数据中心产业链深度解析
    国务院印发“十四五”数字经济发展规划。规划提出,推进云网协同和算网融合发展。加快构建算力、算法、数据、应用资源协同的全国一体化大数据中心体系。数据中心行业是数字经济的“基础底座”。在当前数字经济发展需求和政策红利的双重作用下,近年来国内市场规模持续扩张,2020年中国数......
  • 解析快捷方式指向的路径
    简介在做垃圾文件清理的时候,会涉及到快捷方式的解析,以确定其是否有效工作原理操作系统提供了解析快捷方式的API,其中新型的msi快捷方式,多见于Office的程序,其文件路径是类似msi:xxxx的ID信息,可以使用MsiGetShortcutTarget进行解析。普通的快捷方式,可以使用IShellLink来进......
  • 刷脸支付的奥秘解析
    一、刷脸支付简介刷脸支付目前比较流行的是支付宝或微信刷脸支付,支付宝是蜻蜓系列,微信是青蛙系列,但是你们知道他们采用的是什么技术么?二、刷脸支付技术分析首先无论是微信还是支付宝都发布了第二代的新产品,基于3D结构光技术实现对人活体进行识别,结构光三维成像的硬件主要由相机和投......