用户态和内核态转换以及中断机制

一、内核态、用户态 的切换:
CPU 上会运行两种程序,一种是操作系统内核程程序,一种是应用程序。
内核态→用户态:执行一条特权指令--修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权。
用户态→内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。

e7e6e165c9e4426ba6a6b1d31c7c41d6.jpg
二、中断的分类:

24ec463ab46c47aabbba7ed788942653.jpg
依据中断信号是来自cpu内部还是cpu外部分为内中断和外中断。
内中断(异常):陷入,故障,终止。
陷入:在执行应用程序的时候执行陷入指令(访管指令),主动向操作系统让出cpu的主动权。
故障:由错误条件引起,可能被内核程序修复。内核程序修复故障后会将cpu的主动权让给应用程序。如:缺页故障。
终止:由致命错误引起,不能被内核程序修复。因此一般不将cpu的主动权还给应用程序。如:整数除0,非法使用特权指令。
外中断:时钟中断,IO中断请求
三、中断机制的基本原理:
不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。中断是让cpu从用户态转为内核态的唯一方式。
四、什么时候要进行系统调用?
应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服0务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

dddeb4a1c77b4dc0ac1e985470e231c3.jpg

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值