其他分享
首页 > 其他分享> > 明确地捕获并处理的异常会导致切换到内核模式吗?

明确地捕获并处理的异常会导致切换到内核模式吗?

作者:互联网

从一本操作系统书中,我了解到异常(例如算术溢出,未定义指令,无效的内存访问)将导致cpu从用户模式切换到内核模式,以便操作系统可以处理异常

在高级编程语言中,我们可以捕获和处理程序中的默认(如上所述)或自定义异常,例如在C中,通过使用try and catch以及JavaPython中的类似构造.
我注意到在这种情况下,在用户程序中提供了异常处理程序.

通过这样明确地捕获和处理用户程序中的异常,

>默认异常是否仍会导致cpu从用户模式切换到内核模式,以便OS可以处理异常?
>自定义异常是否仍会导致cpu从用户模式切换到内核模式,以便OS可以处理异常?

谢谢! (如果需要特定于操作系统,则为Linux)

解决方法:

冒着过于简化的风险,操作系统通常允许进程定义异常处理程序(Unix中的信号处理程序).硬件异常进入内核模式.然后,内核模式处理程序将寻找用户模型处理程序并进行调用.

语言运行时设置操作系统特定的异常处理程序,以便它将调用语言定义的异常处理程序.

标签:operating-system,exception,exception-handling,linux
来源: https://codeday.me/bug/20191120/2046371.html