明确地捕获并处理的异常会导致切换到内核模式吗?
作者:互联网
从一本操作系统书中,我了解到异常(例如算术溢出,未定义指令,无效的内存访问)将导致cpu从用户模式切换到内核模式,以便操作系统可以处理异常
在高级编程语言中,我们可以捕获和处理程序中的默认(如上所述)或自定义异常,例如在C中,通过使用try and catch以及Java和Python中的类似构造.
我注意到在这种情况下,在用户程序中提供了异常处理程序.
通过这样明确地捕获和处理用户程序中的异常,
>默认异常是否仍会导致cpu从用户模式切换到内核模式,以便OS可以处理异常?
>自定义异常是否仍会导致cpu从用户模式切换到内核模式,以便OS可以处理异常?
谢谢! (如果需要特定于操作系统,则为Linux)
解决方法:
冒着过于简化的风险,操作系统通常允许进程定义异常处理程序(Unix中的信号处理程序).硬件异常进入内核模式.然后,内核模式处理程序将寻找用户模型处理程序并进行调用.
语言运行时设置操作系统特定的异常处理程序,以便它将调用语言定义的异常处理程序.
标签:operating-system,exception,exception-handling,linux 来源: https://codeday.me/bug/20191120/2046371.html