答案 0 :(得分:0)
陷阱是用户进程中的一个例外。它是由零除或无效的内存访问引起的。它也是调用内核例程(系统调用)的常用方法,因为它们的优先级高于用户代码。处理是同步的(因此用户代码被暂停并在之后继续)。从某种意义上说,他们是活跃的" - 大多数情况下,代码期望陷阱发生并依赖于这一事实。这个答案来自here
okey到目前为止我认为很好
我将举例说明,当您使用 fork
时,它几乎所有内容都会复制到新创建的子项中,并且会复制{{1}从父级到子级,您可能会问trapframe
是什么方式来确保父级和子级都从您调用fork的位置完成运行,所以最后运行此操作的子级和父级都在内核中发生,所以在end trap是移动到一个名为kernel的权限,每个进程都有自己的内核空间,在内存中我们有一个内核没有重复
答案 1 :(得分:0)
进入内核模式有两种方法:
当发生任何一种情况时,处理器将调度到其中断调度表(或类似机制)中的相应处理程序。该表由操作系统定义。
陷阱是无法重新启动指令的异常。相反,故障是可以重新启动指令的例外。
我所知道的每个处理器都有一些指令明确导致异常以进入内核模式。这些指令用于实现操作系统服务。
答案 2 :(得分:0)
“陷阱指令”有两种不同的含义: