当前位置: 首页 > 面试题库 >

内核线程在什么情况下可以在Linux中运行?

温亮
2023-03-14
问题内容

我是Linux内核的新手。
我知道有两个上下文
1.进程上下文,在用户空间或内核空间中运行(例如:作为系统调用的一部分)
2.中断上下文

在什么情况下运行内核线程(与ex:flush任务无关的任何用户线程)?

除了Linux内核中的Process和Interrupt上下文之外,还有其他上下文吗?


问题答案:

内核线程在内核空间中的进程上下文中运行。虽然也有一些内核线程可以处理中断。它们称为线程中断处理程序。但是它们仍然在过程上下文中运行!

这是对这两种环境之间重要差异的极好的解释!

这将帮助您获得更多的了解!

据我所知,进程和中断是仅有的两个上下文。



 类似资料:
  • 问题内容: 据我了解,initrd是一个小图像,可以在RAM中加载。它用于引导带有所有可加载模块的完整内核。在此过程中,我们需要vmlinuz内核映像,它是bzImage的重命名版本。 是否可以在不创建initrd映像的情况下引导内核? 问题答案: initrd / initramfs是可选的,不是必需的。bzImage是纯内核映像,可以由引导加载程序直接引导。但是,可能需要执行某些任务(通常需要

  • 问题内容: 我在x86 CentOS 6.3(内核v2.6.32)系统上运行。 我将以下功能编译为准字符驱动程序模块,以进行实验,以了解Linux内核如何对浮点运算作出反应。 代码已编译(没想到),因此我插入了模块,并使用来检查日志。日志显示:。 这似乎很奇怪;我以为您不能在Linux内核中执行浮点运算-保存一些异常,例如。模块如何执行浮点运算? 这是因为我在x86处理器上吗? 问题答案: 我以为

  • 本文向大家介绍在什么情况下选择webpack?在什么情况下选择rollup?相关面试题,主要包含被问及在什么情况下选择webpack?在什么情况下选择rollup?时的应答技巧和注意事项,需要的朋友参考一下 非要一句话区分的话 如果是用,如果是用其实界限并不是特别明显。在某些特殊情况下可以互用

  • 问题内容: 我正在查看基于我的代码库的Findbugs报告,并且触发的模式之一是空块(即)。该文件说: 空同步块比大多数人认识到的要微妙得多,难以正确使用,并且空同步块几乎从来没有比不那么人为的解决方案更好的解决方案。 就我而言,它的发生是因为该块的内容已被注释掉,但是该语句仍然存在。在什么情况下,空块可以实现正确的线程语义? 问题答案: 空的同步块将等待,直到没有其他人正在使用该同步器。那可能就

  • 问题内容: 我有一个简单的程序,尝试访问用户空间中的物理内存,内核在其中存储了第一个struct页面。在64位计算机上,此地址为: 内核虚拟地址:ffffea0000000000 物理地址:0000620000000000 我正在尝试通过用户空间中的mmap访问此物理地址。但是以下代码使内核崩溃。 问题答案: 我想我已经找到了问题-与x86上的/ dev / mem内存映射保护有关。 请参阅此LW

  • 问题内容: 我已经构建了两个内核模块,其中一个是net_device。我的net_device模块A依赖于模块B,模块B提供了一些额外的控制机制来导出设备信息。 我希望模块B能够调用模块A中的“ xmit”函数。因此,如果我简单地从A导出符号,则模块B将依赖于模块A。这显然会产生“死锁”依赖性情况。 有没有人有解决这个问题的经验?如何正确导出A中的“ xmit”函数并让B使用它? 问题答案: 您可