[操作系统系列]核心态和用户态

操作系统的核心态和用户态

核心态和用户态:
为了保护操作系统及其数据结构,处理机的运行状态分成两种模式。操作系统运行于核心态,具有较高的特权,能执行一切命令,访问所有寄存器和存储区。用户程序运行于用户态,具有较低特权, 只能执行规定的命令,访问指定的寄存器和存储区。
【指令的划分】
特权指令:只能由操作系统使用、用户程序不能使用的指令(举例:启动I/O,内存清零,修改程序状态字,设置时钟, 允许/禁止终端,停机)。
非特权指令:用户程序可以使用的指令(举例:控制转移,算数运算,取数指令,访管指令(使用户程序从用户态陷入内 核态))

【CPU状态之间的转换】
用户态—>内核态:唯一途径是通过中断、异常、陷入机制(访管指令)
内核态—>用户态:设置程序状态字PSW
(访管指令:是可以在目态(用户态)下执行的指令。当源程序中有需要操作系统服务的要求时,编译程序就会在由源程 序转换成的目标程序中安排一条“访管指令”并设置一些参数。当目标程序执行时,中央处理器若取到了“访管指令”就产生 一个中断事件,中断装置就会把中央处理器转换成管态(核心态),并让操作系统处理该中断事件。操作系统分析访管指 令中的参数,然后让相应的“系统调用”子程序为用户服务。系统调用功能完成后,操作系统把中央处理器的管态改为目态, 并返回到用户程序)
通常来说,以下三种情况会导致用户态到内核态的切换:
1)系统调用
这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工 作。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现。
2)异常
当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常 的内核相关程序中,也就转到了内核态,比如缺页异常。
3)外围设备的中断
当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而 去执行与中断信号对应的处理程序,
如果先前执行的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值