用户态与核心态浅析

Posted 嗯嗯你说的对

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户态与核心态浅析相关的知识,希望对你有一定的参考价值。

cpu有两种操作模式,一种是用户态(又称目态),一种是核心态(也叫内核态,管态)

应用程序运行在用户态,操作系统内核程序运行在核心态

1.用户态

        当cpu处于用户态时,cpu只能执行非特权指令,它不能直接访问计算机的软硬件资源,仅限于访问用户的地址空间,目的是防止用户程序对系统造成破坏

2.核心态

        当cpu处于核心态时,cpu可以执行除访管指令之外的所有指令(访管指令:后面会讲),包括非特权指令和特权指令(特权指令:不允许用户直接使用的指令,例如:I/O指令、置中断指令等)

3.用户态和核心态的切换

        1)用户程序系统调用造成的切换

                        介绍

                                用户通过操作系统运行上层程序,而这个上层程序的运行需要操作系统的底层管理程序提供支持(即系统调用),系统则通过硬件中断机制进入核心态。注意,中断程序可以在用户态执行,而中断处理程序在核心态执行

                        过程  

                                用户程序执行陷入指令(也称访管指令或trap指令)来发起系统调用----->产生中断事件----->cpu检测到该中断事件----->cpu打断当前应用程序------>cpu模式位置零----->cpu转到相应的中断处理程序去执行----->执行完毕----->cpu模式位置1----->从系统调用返回

        2)异常造成的切换

                        介绍

                                异常也称内中断,分为故障、自陷、终止,其中,故障和自陷属于软件中断,终止和外部中断属于硬件中断。

                        过程

                                与系统调用过程类似

                                

                        

        

操作系统王道考研 p5 中断和异常

知识总览

概念和作用

本质:==发生中断意味着需要操作系统介入,==开展管理工作

当中断发生时,CPU立即进入核心态
当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
对于不同的中断信号,会进行不同的处理


用户态与核心态之间的相互切换
用户态–>核心态,通过中断实现。且中断是唯一途径
核心态–>用户态,通过执行一个特权指令,改变PSW的标志位。

分类

分类方式1:

分类方式2:

记法:外中断是人工干预和外设请求,其他都是内中断。

处理过程

总结

以上是关于用户态与核心态浅析的主要内容,如果未能解决你的问题,请参考以下文章

ch2 系统调用实验

Linux:用户态与内核态

Linux 操作系统原理 — 内核态与用户态

用户态与内核态的理解

浅析 Servlet 的三种创建方法

保研复习——操作系统重点