陷阱指令在操作系统中的作用

时间:2018-03-10 03:55:56

标签: operating-system

在研究操作系统概念时,我看到了陷阱指令。 "执行TRAP指令以切换 用户模式到内核模式。"我无法理解陷阱指令的作用。

3 个答案:

答案 0 :(得分:0)

陷阱是用户进程中的一个例外。它是由零除或无效的内存访问引起的。它也是调用内核例程(系统调用)的常用方法,因为它们的优先级高于用户代码。处理是同步的(因此用户代码被暂停并在之后继续)。从某种意义上说,他们是活跃的" - 大多数情况下,代码期望陷阱发生并依赖于这一事实。这个答案来自here

okey到目前为止我认为很好

我将举例说明,当您使用 fork 时,它几乎所有内容都会复制到新创建的子项中,并且会复制{{1}从父级到子级,您可能会问trapframe是什么方式来确保父级和子级都从您调用fork的位置完成运行,所以最后运行此操作的子级和父级都在内核中发生,所以在end trap是移动到一个名为kernel的权限,每个进程都有自己的内核空间,在内存中我们有一个内核没有重复

答案 1 :(得分:0)

进入内核模式有两种方法:

  1. 中断
  2. 异常
  3. 当发生任何一种情况时,处理器将调度到其中断调度表(或类似机制)中的相应处理程序。该表由操作系统定义。

    陷阱是无法重新启动指令的异常。相反,故障是可以重新启动指令的例外。

    我所知道的每个处理器都有一些指令明确导致异常以进入内核模式。这些指令用于实现操作系统服务。

答案 2 :(得分:0)

“陷阱指令”有两种不同的含义:

  1. 中断指令(例如,I/O中断指令);
  2. 处理器异常(例如,Data Abort (ARM),当数据传输指令尝试在非法地址加载或存储数据时会发生此异常。