Linux - 嵌套中断[关闭]

2024-04-13

Linux 是否使用嵌套中断?

我的意思是,例如,当从任何设备提供中断服务时,可以允许在此例程中进一步中断吗?或者它涉及上半部和下半部?

EDIT:

如果Linux使用嵌套中断,如何关心它们的堆栈?


是的,Linux 中断是可重入的。https://unix.stackexchange.com/a/7172/40346 https://unix.stackexchange.com/a/7172/40346

Linux 内核是可重入的(与所有 UNIX 内核一样),这意味着 CPU 可以执行多个进程。他不必等到磁盘访问读取被极其缓慢的 HDD 控制器处理,CPU 可以处理其他一些东西,直到磁盘访问完成(如果是这样,它本身将触发中断)。

一般来说,一个中断可以被另一个中断打断(抢占),这称为“嵌套执行”。根据架构的不同,仍然有一些关键功能必须通过完全禁用中断来不间断地运行(非抢占式)。在 x86 上,这些是一些与时间相关的函数(time.c、hpet.c)和一些 xen 的东西。

关于中断只有两个优先级:“启用所有中断”或“禁用所有中断”,所以我猜你的“高优先级中断”是第二个。这是 Linux 内核唯一知道的有关中断优先级的行为,与实时扩展无关。

如果可中断中断(“低优先级中断”)被其他中断(“高”或“低”)中断,内核将保存被中断中断的旧执行代码并开始处理新中断。这种“嵌套”可以发生多次,因此可以创建多个级别的中断。之后,内核从旧中断重新加载保存的代码,并尝试完成旧中断。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux - 嵌套中断[关闭] 的相关文章

  • 内核与系统中的 Windows 进程

    我有一些与内核和用户模式下的 Windows 进程相关的问题 如果我有一个 hello world 应用程序和一个公开新系统调用 foo 的 hello world 驱动程序 我很好奇一旦处于内核模式 我能做什么和不能做什么 对于初学者来说
  • 是否从页面缓存中的脏页面进行文件读取?

    当字节写入文件时 内核不会立即将这些字节写入磁盘 而是将这些字节存储在页缓存中的脏页中 回写缓存 问题是 如果在脏页刷新到磁盘之前发出文件读取 则将从缓存中的脏页提供字节 还是首先将脏页刷新到磁盘 然后进行磁盘读取以提供字节 将它们存储在进
  • 如何在 Linux 主机上的 docker 容器中挂载目录 [重复]

    这个问题在这里已经有答案了 我想将一个目录从 docker 容器挂载到本地文件系统 该目录是网站根目录 我需要能够使用任何编辑器在本地计算机上编辑它 我知道我可以跑docker run v local path container path
  • python:numpy 运行脚本两次

    当我将 numpy 导入到 python 脚本中时 该脚本会执行两次 有人可以告诉我如何阻止这种情况 因为我的脚本中的所有内容都需要两倍的时间 这是一个例子 usr bin python2 from numpy import print t
  • 无法仅在控制台中启动 androidstudio

    你好 我的问题是下一个 我下载了Android Studio如果我去 路径 android studio bin 我执行studio sh 我收到以下错误 No JDK found Please validate either STUDIO
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 如何成功使用RDAP协议代替whois

    我对新的 RDAP 协议有点困惑 也不知道何时进一步追求它有意义 在我看来 每个人都同意它是 whois 的继承者 但他们的数据库似乎是空的 在 ubuntu 上我尝试了 rdapper nicinfo 甚至他们的 RESTful API
  • 操作系统什么时候清除进程的内存

    进程在某些操作系统上成功或异常终止 操作系统何时决定擦除分配给该进程的内存 数据 代码等 在退出时或当它想为新进程分配内存时 这个清除内存分配过程在所有操作系统 winXP Win7 linux Mac 上都相同吗 据我了解 页表具有该进程
  • InstaPy:“错误,无法确定 64 位 Linux 的正确文件名”

    有人知道如何解决或解决这个问题吗 来自控制台的堆栈跟踪 执行后报告错误 InstaPy Version 0 6 9 Workspace in use home zanettra InstaPy Error unable to determi
  • 伊迪德信息

    重新定义问题 有什么方法可以获取所连接显示器的序列号吗 我想收集显示器的Eid信息 当我使用 logverbose 选项运行 X 时 我可以从 xorg 0 log 文件中获取它 但问题是 如果我切换显示器 拔出当前显示器 然后插入另一个显
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 为什么在 Linux 上字符串文字的内存地址与其他字符串文字的内存地址如此不同?

    我注意到字符串文字在内存中的地址与其他常量和变量 Linux 操作系统 非常不同 它们有许多前导零 未打印 Example const char h Hi int i 1 printf p n void h printf p n void
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 如何不断刷新屏幕并实时更新[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在linux上写一个C程序 不断刷新屏幕并实时更新 例如类似于top终端中的命令 谁能指出我正确的方向 为了保持它跨终端类型的可移
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • linux x86 汇编语言 sys_read 调用的第一个参数应为 0 (stdin)

    我正在编写一个简单的汇编程序来从标准输入读取 如 scanf 这是我的代码 section bss num resb 5 section txt global start start mov eax 3 sys read mov ebx 0
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign

随机推荐

  • 如何在 Pandas 数据框的多列上运行 Ta-Lib?

    我有一个数据框 其中包含多种证券的价格作为列 但我找不到一次性运行 TA Lib 的解决方案 因为它需要 numpy ndarray 如何在多种证券上运行 TA Lib 并获得数据帧作为回报 import talib as ta d sec
  • 缓存 VS 会话 VS cookie?

    缓存 会话 Cookie 的注意事项是什么 例如 我经常使用会话变量 有时当用户开始订购产品然后去吃午餐并在几个小时后回来并继续预订时 预订应用程序中有时会出现问题 我将预订存储在会话中 直到用户确认或中止预订 因此当用户只需单击浏览器中的
  • 使用单选按钮 PHP SQL 过滤搜索

    我有一个有效的搜索列表 搜索的工作原理是查找搜索词是否如姓名 家庭和工作 现在我想把这个搜索分开 我的意思是 创建三个单选按钮 单击第一个按钮按姓名搜索 单击第二个按钮按家庭搜索 单击第三个按钮按工作搜索 所以我的基本代码在这里 这里需要添
  • 使用 JSON.NET 作为 ASP.NET MVC 3 中的默认 JSON 序列化器 - 可能吗?

    是否可以使用JSON NET http json codeplex com 作为 ASP NET MVC 3 中的默认 JSON 序列化器 根据我的研究 似乎实现这一目标的唯一方法是扩展操作结果 http james newtonking
  • 如何更改 Laravel 中的日期语言?

    我想将我看到的日期的语言从英语更改为法语 strftime d B Y H M strtotime article gt created at 我们可以使用另一种方法与translatedFormat Carbon setLocale fr
  • Selenium WebDriver 拖放到滚动条

    我对 Selenium WebDriver 拖放有疑问 它不想拖放到滚动条中的 webelement 我试过这个 new Actions SeleniumDriver getDriver dragAndDrop element target
  • DB2 SQLCODE=-805,SQLSTATE=51002,SQLERRMC=NULLID.SYSLH203 0X5359534C564C3031

    我收到以下错误 com ibm db2 jcc am SqlException DB2 SQL Error SQLCODE 805 SQLSTATE 51002 SQLERRMC NULLID SYSLH203 0X5359534C564C
  • Angular 4打字稿解析响应对象中的枚举接口属性

    我收到来自 API 的响应 它返回一个枚举值 从 API 返回的值在请求中表示为字符串 这个值是一个enumTypescript 接口的属性 Problem 当收到响应时 TS接口将该值存储为字符串 可能这就是问题 所以我不能直接使用它en
  • 在 Hibernate 中禁用延迟加载

    如何在 Hibernate 中禁用延迟加载 我使用的是持久性注释 而不是 hbm xml 文件 我正在按 ID 获取单个对象 并希望加载所有属性 在我使用该对象之前会话已关闭 Thanks 您需要使用 FetchType EAGER 注释您
  • java中将十进制转换为格雷码

    最近出现一个问题是 编写算法将十进制数转换为n位格雷码 例如 使用 1 位 最简单 0 gt 0 1 gt 1 使用 2 位 0 gt 00 1 gt 01 2 gt 11 3 gt 10 使用 3 位 0 gt 000 1 gt 001
  • 如何使用 if/else 语句更改全局变量

    我有这个代码我想改变var n如果var thisRoll is not green 但我只得到undefined在输出中console log n var thisRoll red var n var base bet 1 functio
  • 带 margin-left 和 width:100% 右侧溢出的 Div

    我有 2 个嵌套的 div 宽度应为 100 不幸的是 带有文本框的内部 div 溢出 并且实际上比外部 div 更大 它有一个左边距 并且溢出了大约该边距的大小 我该如何解决这个问题 div style width 100 div sty
  • 使用 ctypes 从 python 调用 C 函数

    我有以下 C 代码 我正在尝试使用Python从Python调用这个函数ctypes int add int arr printf number d n arr 0 arr 0 1 return arr 0 我用以下方法编译了这个 gcc
  • 动态包含/排除 Gitlab Pipeline 中的作业

    我有一个有几个阶段的管道 detect test build deploy The detect阶段检测应用程序的类型和test and build阶段的作业根据计算结果包含或排除detect The detectstage 将其值写入名为
  • 如何在 webkit 浏览器中访问粘贴的文件? (如谷歌浏览器)

    如果能够在 Stack Exchange 上粘贴图像而不是干扰文件对话框 那将非常方便 类似的功能在这里实现了 是 但是仅适用于 Webkit 浏览器 https meta stackexchange com a 233874 209994
  • 快速获取剪贴板更改通知

    swift 中有剪贴板更改事件吗 当 iOS 应用程序中剪贴板发生更改时 我如何收到通知 谢谢 这里有一个可以复制的迅捷5 0 version NotificationCenter default addObserver self sele
  • 使用反应登录表单在 Spring Boot 中对用户进行身份验证

    我已将 spring security 添加到我的项目中 并且正在尝试进行用户身份验证 我正在使用 CrudRepository 来查找用户并验证详细信息是否正确 我已经能够使用开箱即用的弹簧登录页面让它工作 我的问题是我想通过我的反应登录
  • 如何实现带有可折叠搜索栏的 SliverAppBar

    这就是我想做的 https i stack imgur com f9SYe jpg 这是 iOS 上非常常见的 Widget 这是我的代码 return Scaffold backgroundColor Colors white body
  • 将 CMake 与具有钻石依赖项的库一起使用

    假设我有四个独立的项目 三是图书馆 Common Foo and Bar 其中之一是可执行文件 App Both Foo and Bar依赖于公共库 并且App依赖于取决于Foo and Bar 此外 其中一些项目有一些脚本需要运行来生成一
  • Linux - 嵌套中断[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Linux 是否使用嵌套中断 我的意思是 例如 当从任何设备提供中断服务时 可以允许在此例程中进一步中断吗 或者它涉及上半部和下半部 ED