管态和目态

简介: 管态和目态

是什么

1 . 管态又叫特权态,系统态或核心态。CPU在管态下可以执行指令系统的全集。通常,操作系统在管态下运行。 
2.  目态又叫常态或用户态。机器处于目态时,程序只能执行非特权指令。

特点

1. 用户态 不能直接使用系统资源,也不能改变CPU的工作状态,并且只能访问这个用户程序自己的存储空间
2. 管态   则该程序就可以访问计算机的任何资源,即它的资源访问权限不受限制。

目的

 区分内核态和用户态两种操作方式的目的是为了保护操作系统程序
 通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统
 外层的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理
 程序”要执行一些特权指令,而“被管理程序”出于安全考虑不能执行这些指令。所谓特权指令,
 是指计算机中不允许用户直接使用的指令,如I/O指令、 置中断指令,存取用于内存保护的寄存
 器、送程序状态字到程序状态字寄存器等指令。

用户态切换到内核态

1. 系统调用。这是用户态进程主动要求切换到内核态的一种方式,用户态进程通   过系统调用
申请使用操作系统提供的的服务程序完成 工作。系统调用机制的核心还是使用了操作系统为用
户特别开放的一个中断来实现。申请使用操作系统提供的的服务程序完成 工作。系统调用机制
的核心还是使用了操作系统为用户特别开放的一个中断来实现。
2. 异常。当CPU在执行用户态程序时,发生了某些事先不可知的异常,这时会触发由当前运行
进程切换到处理此异常的内核相关程序中,也就转到了内核态,例如缺页异常。进程切换到处
理此异常的内核相关程序中,也就转到了内核态,例如缺页异常。
3. I/O设备的中断。当I/O设备完成用户请求操作后,会向CPU发出相应的中断信号,这时CPU
 会暂停执行下一条即将要执行的指令,转 而去执行与中断信号对应的的处理程序,如果先前执
 行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态 的切换。
 例如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续的操作。会暂停执
 行下 一条即将要执行的指令,转 而去执行与中断信号对应的的处理程序,如果先前执行的指令
 是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态 的切换。例如硬盘
 读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续的操作。
 其中系统调用可以认为是用户进程主动发起的,异常和外部设备中断则是被动的。

相关文章
|
10月前
|
机器学习/深度学习 编解码 Java
YOLOv11改进策略【卷积层】| GnConv:一种通过门控卷积和递归设计来实现高效、可扩展、平移等变的高阶空间交互操作
YOLOv11改进策略【卷积层】| GnConv:一种通过门控卷积和递归设计来实现高效、可扩展、平移等变的高阶空间交互操作
303 0
YOLOv11改进策略【卷积层】| GnConv:一种通过门控卷积和递归设计来实现高效、可扩展、平移等变的高阶空间交互操作
|
10月前
|
机器学习/深度学习 数据采集 编解码
视频生成框架EasyAnimate正式开源!
视频生成框架EasyAnimate正式开源!
427 0
|
Java 测试技术 开发者
探索软件测试的多维度:从单元到系统,再到性能测试
本文深入探讨了软件测试的多个关键维度,包括单元测试、集成测试、系统测试以及性能测试。通过分析每个阶段的目标和方法,本文旨在帮助读者理解如何构建一个全面的测试策略,确保软件产品的质量与性能。我们将通过具体案例和数据来揭示不同测试阶段的重要性及其在软件开发生命周期中的作用。
362 17
|
Linux Anolis 芯片
centos升级龙蜥
centos升级龙蜥
1202 0
|
JavaScript 前端开发 API
使用ort.js的create方法加载onnx模型报错:Fetch API cannot load file…… URL scheme “file“ is not supported.
使用ort.js的create方法加载onnx模型报错:Fetch API cannot load file…… URL scheme “file“ is not supported.
839 0
使用ort.js的create方法加载onnx模型报错:Fetch API cannot load file…… URL scheme “file“ is not supported.
|
Ubuntu 关系型数据库 MySQL
MySQL5.7在Ubuntu安装[单机软件],第一步登录root,sudo su -
MySQL5.7在Ubuntu安装[单机软件],第一步登录root,sudo su -
|
运维 Java
高并发下Netty4底层bug导致直接内存溢出分析
高并发下Netty4底层bug导致直接内存溢出分析
371 0
|
安全 测试技术 Linux
Kali Linux进行移动应用安全测试
Kali Linux进行移动应用安全测试
538 0
|
Java 应用服务中间件 网络安全
Nginx配置静态页面+springboot应用+swagger+SSL的实现
Nginx配置静态页面+springboot应用+swagger+SSL的实现
637 0
|
Java API 容器
java和VB中按键事件处理:解析 KeyCode、KeyAscii; KeyDown/KeyUp/KeyPress 的关系区别及应用
java和VB中按键事件处理:解析 KeyCode、KeyAscii; KeyDown/KeyUp/KeyPress 的关系区别及应用