当前位置: 首页 > 知识库问答 >
问题:

运行中断处理程序是创建新进程,还是现有进程的一部分?

韦锦程
2023-03-14

从一开始https://en.wikipedia.org/wiki/Interrupt,有三种不同类型的中断:

>

  • 硬件中断,

    由处理器本身的异常情况(通常称为陷阱或异常)引起的软件中断

    执行指令集中的特殊指令引起的软件中断。(例如系统调用)

    我的问题是,当cpu切换到运行中断处理程序时,

    >

  • 是否为运行中断处理程序创建了新进程

    或者中断处理程序的运行是现有进程的一部分,例如。

    • 在第一种中断中,从硬件设备请求某些服务,然后等待硬件中断的过程,该硬件中断指示设备操作完成,
    • 在第二种中断中导致异常的过程。
    • 在第三种中断中进行系统调用的过程
  • 共有1个答案

    谭裕
    2023-03-14

    是否为运行中断处理程序创建了新进程?

    正在运行的进程以内核模式处理中断。

    您的三类中断将不同但相关的概念合并为一个术语“中断”。

    故障和陷阱是例外,而不是中断。它们通常以与中断相同的方式处理,但它们与指令流同步发生(中断是异步的),并且(与中断不同)它们不能被阻止。

    通常系统调用是一个FAULT。

     类似资料:
    • 进入中断处理流程 接下来,我们将要手动触发一个 Trap(ebreak),并且进入中断处理流程。 开启中断 为了让硬件能够找到我们编写的 __interrupt 入口,在操作系统初始化时,需要将其写入 stvec 寄存器中: os/src/interrupt/handler.rs use super::context::Context; use riscv::register::stvec; g

    • 所以我想了解java中的线程调度器是如何选择特定线程的。因为它没有考虑优先权。我想知道它的实际工作情况。分享一些资源

    • 我还有一个关于Python多处理的问题。我有一个模块,它创建了一个进程,并在while-True循环中运行。此模块将从另一个Python模块启用/禁用。另一个模块将导入第一个模块一次,并作为进程运行。 我该如何更好地实现这一点? 因此,作为参考: 想象第二个模块是这样的: 不断地运行一个流程来检查循环中的条件似乎是一种浪费,但我很乐意接受这样的解决方案,它只允许我从外部设置值。理想情况下,我希望能

    • 问题内容: 我知道linux确实做了嵌套的中断,其中一个中断可以“抢占”另一个中断,但是其他任务呢。 我只是想了解linux如何处理中断。它们可以被其他用户任务/内核任务抢占吗? 问题答案: 简单答案:中断只能被更高优先级的中断所中断。 因此, 如果 中断的优先级低于内核调度程序中断优先级或用户任务中断优先级,则中断可以被内核或用户任务中断。 注意,“用户任务”是指 用户定义的中断 。

    • 创建进程 本章开始时演示了Hello World程序,其实已经创建了新的进程,通过Bash或者zsh这些Shell很容易创建新的进程,但Shell本身是怎么实现的呢?我们又能不能用Go实现类似Shell的功能呢? 系统调用 原来这一切都是操作系统给我们做好的,然后暴露了使用的API接口,这就是系统调用。Linux或者其他Unix-like系统都提供了fork()和exec()等接口,Bash或者我

    • 主要内容:1. 查看正在运行的进程列表,2. 杀死/终止一个进程,3. 启动一个新的过程在本章中,我们将讨论批处理脚本中涉及的各种进程。 1. 查看正在运行的进程列表 在批处理脚本中,可以使用命令来获取系统中当前正在运行的进程的列表。 语法 以下是命令的选项的说明。 /S system - 指定要连接的远程系统。 /U [domain]user - 指定命令应在其下执行的用户上下文。 /P [password] - 指定给定用户上下文的密码。 提示输入,如果省略。 /M [modul