【发布时间】:2019-06-05 19:15:38
【问题描述】:
开始学习操作系统,有人问我们什么是 TRAP 操作以及何时调用它。
试图通过阅读“现代操作系统”\Tanenbaum(第 1 章)来确定我的答案,我注意到 2 个概念,这就是我所理解的:
a) “TRAP” - 在用户程序进行系统调用后调用的操作:
系统调用->
编译器将参数压入堆栈,并将系统调用键保存在寄存器中 ->
编译器调用一个库函数 ->
库函数调用TRAP ->
TRAP 从用户模式切换到内核模式 ->
操作系统调用相关的系统调用处理程序。
b) “陷阱” - 任何从用户模式切换到内核模式的情况。 不一定通过 TRAP(但通过除以 0 等例外情况,操作 浮动……还有……更多……我不知道……)
所以我的问题:
TRAP 和 trap 是 2 个不同(尽管很接近)的概念?
操作系统能否以除 TRAP 之外的其他方式从用户模式切换到内核模式(陷阱)?
(继续 (2))除了系统调用之外,还有什么触发 TRAP 调用?
【问题讨论】: