用户程序从用户态切换到内核态:系统调用(软中断),异常,中断。
系统调用是系统开放给用户程序的接口。
库函数是对系统调用的封装。
shell也对系统调用进行了封装。
系嫌镇统调用,库函数,shell是用户程序主动访问内核程序的三种方式。
参考: Linux | 为什么用户态和内核态的切换耗费时间? - JH_Zhai的博客 - CSDN博客
访管指令是一条可以在用户态(又称目态)下执行的指令。在用户程序中,因要求 *** 作系统提供服务而有意识地使用访管中断,从而产生一个中断事件(自愿中断),将 *** 作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向 *** 作系统请求服务羡拆。
为什么要在 *** 作系统中引入访管指令呢?这是因为用户程序只能在用户态(目郑卖态)下喊派逗运行,如果用户程序想要完成在用户态下无法完成的工作,该怎么办?解决这个问题要靠访管指令。 访管指令本身不是特权指令 ,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。
当处于用户态的用户程序使用访管指令时,系统根据访管指令的 *** 作数执行访管中断处理程序,访管中断处理程序将按系统调用的 *** 作数和参数转到相应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。
注:访管指令是非特权指令,是程序员主动获得使用特权指令的手段。
用户态 = 目态
和心态 = 管态
*** 作系统中的状态分为管态和目态。特权指令:一类只能在核心态下运行而不能在用户态下运行的特殊指令。不同的 *** 作系统特权指令会有所差异,但是一般来说主要是和硬件相迟吵春关的一些指令。访管指令:本身是一条特殊的指令,但不是特权指令。基本功能:"自愿进管",能引起访管码耐异常。
用户程序只在用户态下运行,有时需碰尘要访问系统核心功能,这时通过系统调用接口使用系统调用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)