栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

内核态与用户态、内核空间与用户空间、内核栈与用户栈

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

内核态与用户态、内核空间与用户空间、内核栈与用户栈

1.内核态与用户态、内核空间与用户空间、内核栈与用户栈 1.1 内核态与用户态

内核态和用户态是指两种运行状态,这两种状态的设置是为了区分不同运行权限
CPU的两种运行状态
操作系统的运行级别
进程的运行状态
以CPU为例
内核态:说明CPU正在运行内核程序,此时可以执行特权指令
用户态:说明CPU正在运行用户程序,此时只能执行非特权指令

CPU是如何区分特权指令和非特权指令的?
通过程序状态字寄存器(PSW)来区分,1代表CPU处于内核态,0代表CPU处于用户态

1.2 状态转换

内核态 → rightarrow →用户态:设置PSW会导致此种状态转换

用户态 → rightarrow →内核态:外中断、内中断(异常)、系统调用会导致此种状态转换

下图来自《小林coding》

1.3 内核空间与用户空间

内核空间与用户空间是对内存的划分

将内存分为内核空间和用户空间,内核空间只有内核程序才能访问,用户空间专门给用户程序使用

⽤户空间的代码只能访问⼀个局部的内存空间
内核空间的代码可以访问所有内存空间

下图来自:Linux 内核空间与用户空间

下图来自:进程用户态和内核态

进程间的通信必须通过内核(内核是由多个内核程序组成,内核在内核空间中,这块区域通过页表来控制访问权限)来作为中介

下图来自《小林coding》

1.4 内核栈与用户栈

一个进程有两个栈:一个内核栈、一个用户栈

用户栈是用户空间内的一块小区域
用户栈的作用用于保存用户进程的子程序间相互调用的参数、返回值、返回点以及子程序 (函数)的 局部变量

内核栈是内核空间内的一块小区域
内核栈的作用是存放上下文切换时的进程信息

下图来自:一文让你明白CPU上下文切换


内核空间与内核栈、用户空间与用户栈的关系示意图

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941755.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号