陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令。
广义指令:也就是系统调用命令(可能在用户态调用,但处理必须在核心态)
用户程序(用户自编or系统外层应用程序)工作在用户态;内核程序工作在核心态。特权指令:只能在核心态运行的指令
如:I/O指令、置中断指令、存取用户内存保护的寄存器、送程序状态字(可区分目态、管态)到程序状态字寄存器。(包括系统调用类、时钟类、中断和原语指令,清内存、分配系统资源、修改虚拟存储里的页表段表、修改用户访问权限等)
中断和异常:引入中断技术的初衷是提高多道程序运行环境中CPU的利用率
中断的分类:①内中断(异常、例外、陷入trap)(不可被屏蔽!)
自愿中断一指令中断:访管指令(只能用户态使用)强迫中断-硬件故障(缺页)
一软件中断(非法操作码、地址越界、算数溢出、虚存系统缺页以及
专门的陷入)
②外中断(强迫中断)
外设请求:I/O结束、时钟中断人的干预:用户按ESC or退出键
注:区分内/外中断看信号来源:CPU内部/外部。
访管中断:用户程序在用户态下要使用特权指令(由访管中断引起)引起的中断。用户程序需要输入/输出时(I/O),调用OS提供的接口,此时引起访管中断。
所有中断都是在核心态下执行的!(进程切换、对资源的释放)
用户态(发生中断or异常)一>核心态(通过硬件、系统调用、访管指令实现)核心态(使用特权指令)->用户态(通过中断返回指令)
注:中断系统(OS必需)和地址映射需要硬件支持,进程调度不需要。
原语
处于最底层;不可分割的指令序列;运行时间短,调用频繁
PV操作是一种低级的进程通信语言,由两个不可中断的过程组成,并非系统调用。
体系结构:
①大内核(高性能;结构混乱)、微内核(内核功能少;
②在用户态、核心态之间切换频繁,性能低;
③结构清晰;
④添加系统服务时不必修改内核;使系统更可靠)