腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
视频
沙龙
2
回答
当针对中断处理程序调用bottom half时
、
、
当提到Linux内核中断处理程序时,据我所知,中断执行有两个阶段,第一个阶段是上半部分,第二个阶段是下半部分。 我知道上半部分将在硬件中断发生时立即执行,但我的疑问是下半部分何时以及如何执行?
浏览 1
提问于2013-12-07
得票数 5
2
回答
在Linux内核中,哪些内核线程负责发送网络数据包
、
、
、
我正在阅读Linux内核的源代码,试图弄清楚Linux内核是如何发送网络数据包的,几个小时后,我只能看到网络数据包流经TCP层、IP层和最终的数据链路层,我找不到是哪些线程在做这些工作。 我的问题是,哪些内核线程负责发送网络数据包,它们在哪里?(因为我们可以将套接字设置为非阻塞,并让用户应用程序尽可能快地发送网络数据包,所以当网络繁忙时,必须有一些队列来缓冲这些数据包,并且一定有一些内核线程在某个地方运行来发送这些数据包。)
浏览 2
提问于2013-12-15
得票数 1
3
回答
linux如何同步抢占计数
、
我只是在尝试获取linux源代码。我看到了抢占计数,linux如何确保抢占计数是原子的?代码只是递增该值。 另外,我还有一个问题。为什么中断句柄需要保持互斥。因为一次只能执行一个,对吧? 另外,当中断被禁用时,操作系统会做什么?忽略中断或维护队列?
浏览 1
提问于2010-09-03
得票数 6
回答已采纳
1
回答
嵌入式Linux。自动执行代码块
、
、
、
、
目前,我在嵌入式linux设备(2.6.28.10版)上有一个用户空间应用程序,它通过切换GPIO引脚来控制一些自定义硬件。对GPIO寄存器的写入发生在单独的pthreads中,所有这些都需要访问设备。大多数情况下,这样做都很好,因为有一个semaphore可以防止多个线程同时访问执行GPIO写操作的部分。 问题在于,在写入这些GPIO寄存器的过程中(大约24个8位写入),另一个线程will interrupt当前线程,尽管中断线程由于信号量而不能修改寄存器,但是在几毫秒内不会将控制权返回给正在写入GPIO的线程,这当然会使发送到外部设备的数据无效。 linux中有没有一种方法可以确保这组GP
浏览 0
提问于2013-08-15
得票数 0
1
回答
Linux内核是否可以被认为是单个进程
、
、
Linux内核是否可以被认为是具有多个线程的单个进程?还定义了内核中内存管理模块、调度器、文件系统等之间的切换。
浏览 0
提问于2013-07-17
得票数 10
回答已采纳
1
回答
Sysfs GPIO级别触发的中断
、
、
、
我是一个新手,试图在嵌入式linux板上获得电平触发的中断。我使用poll()来等待中断事件。我成功地获得了边缘触发的中断。 如何获得电平触发的中断?我应该将边缘设置为什么?
浏览 10
提问于2014-11-03
得票数 3
1
回答
linux中的中断处理和挂起的中断
、
、
、
、
linux中断处理的基本问题 在我的驱动程序中,我禁用了外围设备的中断行,并进行了一些处理,在此期间外围设备正在发送中断。当我启用中断行时,我收到了在此期间发生的挂起的中断。 这是否正确的理解? 如果是,如何丢弃中断禁用期间出现的中断。 我可以使用一些延迟来实现一些工作,寻找linux或干净的方法来完成这些工作。 在启用中断之前,我们可以设置desc = irq_to_desc(client->irq);desc->istate &= ~IRQS_PENDING;并启用中断行--它将清除所有挂起的中断,但是代码说我们不应该修改这些变量。 谢谢
浏览 13
提问于2014-10-09
得票数 1
1
回答
多线程内核是如何工作的?
、
、
、
我读到过linux内核是多线程的,每个内核中可以同时运行多个线程。在一个单一操作系统管理所有处理器/核心的SMP (对称多处理)环境中,如何实现多线程? 产生内核线程,并且每个线程专用于管理一个内核。如果是这样,这些内核线程是什么时候创建的?它是在引导完成之后和应用程序处理器被引导处理器启用后立即在kern_init()启动时发生的。 那么,每个内核是否都有自己的调度器(由内核的内核线程实现),用于管理所有内核线程共享的公共池中的任务? 当驻留在不同内核上的内核线程需要接触另一个内核线程可能感兴趣的事件时,(直接)消息传递是如何发生的? 我还想,如果一个特定的内核选择了一个内核调度器,在每个系
浏览 4
提问于2015-11-04
得票数 1
1
回答
内核中的调度程序是一个程序还是一个进程?
、
、
我查找了内置在内核中的CPU调度器源代码。 但我有个问题。对于Internet上的cpu调度程序,存在着不同的看法。 I看到了一种观点,即CPU调度程序是一个进程。 问题:如果是这样的话,当ps在Linux上时,调度程序进程应该是可见的.很难找到调度程序进程的PID和名称。CPU调度程序进程的PID也不在internet上。然而,PID 0交换进程被称为SCHED,但是在Linux中,PID 0作为一个空闲进程运行。 我看到了一种观点,即CPU调度程序不是一个进程。CPU调度程序是内置在内核中的被动源代码,用户进程经常进入内核并旋转源代码。 问:用户进程如何单独执行内核的调度程序源代码?如果您
浏览 5
提问于2022-03-10
得票数 0
回答已采纳
2
回答
为什么内核线程在进程上下文中运行?
、
、
最近,我了解到Linux内核线程。 为什么它们在流程上下文中运行? 为什么他们不简单地运行在一个传统的“线程”?(如果问得通的话)
浏览 6
提问于2013-09-03
得票数 3
回答已采纳
2
回答
当两个中断同时发生在linux内核中时会发生什么?
、
、
、
当两个中断同时发生在Linux内核中时会发生什么..? 如果该处理器有多个CPU,那么中断可以同时在不同的cpu核心上运行。
浏览 5
提问于2014-03-25
得票数 12
回答已采纳
4
回答
C#与Linux的信号机制的等价性是什么?
、
我的项目中有两个线程,分别是线程A和线程B。 当线程B忙于做一些事情时,我想从线程A向线程B发送一个信号。在线程B收到信号后,它立即执行相应的信号处理程序。在Linux中,使用signal很容易做到这一点。要达到同样的效果,我应该如何处理C#线程?
浏览 4
提问于2011-02-24
得票数 5
回答已采纳
1
回答
中断处理程序中的Printk或I/O危险
、
、
、
为什么linux中断处理程序中禁止printk或(I/O)?在什么情况下,中断处理程序中的I/O会导致linux系统中的死锁?
浏览 10
提问于2016-10-17
得票数 1
1
回答
MultiCore CPU,多线程和上下文切换?
、
、
、
假设我们有一个具有20个核心的CPU和一个具有20个CPU密集型的进程,它们彼此独立于线程:每个CPU内核一个线程。我试图弄清楚在这种情况下是否会发生上下文切换。我认为这是因为操作系统中的系统进程也需要CPU时间。 我知道有不同的CPU架构,有些答案可能会有所不同,但可否请你解释: 上下文切换是如何发生的,例如在Linux或Windows以及一些已知的CPU体系结构上?在现代硬件的引擎盖下发生了什么? 如果我们有10个核心和20个线程,或者相反的情况呢? 如果我们有n个CPU,如何计算我们需要多少线程? 上下文切换后CPU缓存(L1/L2)是否为空? 谢谢
浏览 0
提问于2014-01-28
得票数 16
1
回答
Linux C++中的定时器中断
、
、
、
、
我在一个LTE主机测试应用程序上工作,其中我在第一个ofdma符号上调用了函数A,在第七个OFDMA符号上调用了另一个函数B,其中一帧将有14个ofdma符号。让我来处理一下时间安排。而是如何在Linux下实现这个C语言。 有没有解释计时器和软件中断的示例代码?我有两个独立的二进制文件在运行,只需一次就可以给我时间。假设一个帧的刻度是1秒。这一秒将被分成14个,函数A和B将被称为一秒的第一部分和第七部分。 考虑到linux中断或定时器或信号,建议我在这种情况下哪个将是有效的。任何关于如何实现这一点的信息。
浏览 2
提问于2018-10-10
得票数 0
2
回答
内核模式抢占
、
、
我理解新的linux内核允许抢占内核空间线程。有人能简要解释一下在内核模式下执行时抢占是如何工作的吗?因此,当进行系统调用时,软件中断会将线程切换到内核模式,并运行所需的程序。现在,让我们说它的时间片已经结束了,另外一个用户线程正在运行,它还想在内核空间中执行。(或者可能是h/w中断)。内核如何维护被中断时为T1修改的任何结构的完整性?
浏览 7
提问于2015-01-07
得票数 4
回答已采纳
1
回答
*mpi阻塞IO不被linux信号中断
、
、
、
、
我使用boost::mpi,OpenMPI。:mpi::通信器::recv(阻塞版本)不会被Linux信号中断。如何使用SIGTERM信号以正确的方式终止我的程序?
浏览 3
提问于2015-09-17
得票数 3
回答已采纳
1
回答
禁用中断以在内核代码中同步
、
、
、
为什么在内核中同步代码时需要禁用中断? 例如,在从linux schedule()函数中提取的以下代码中: need_resched: prev = current; rq = this_rq(); **spin_lock_irq(&rq->lock);** //disables interrupts switch (prev->state) { case TASK_INTERRUPTIBLE: if (unlikely(signal_pending(prev))) { prev->state = TASK_RUNNING;
浏览 2
提问于2014-06-28
得票数 3
回答已采纳
1
回答
Linux线程睡眠与读取
、
、
、
、
在我的应用程序中,有一个Linux线程需要每10毫秒激活一次,因此我使用usleep (10*1000)。结果:线程永远不会在10ms之后唤醒,而总是在20ms之后唤醒。好吧,这与调度程序时间片、CONFIG_HZ等有关。我尝试使用usleep(1*1000) (也就是1ms),但结果是相同的。线程总是在20毫秒后唤醒。 但在同一应用程序中,另一个线程处理每10ms传入的网络事件(UDP数据包)。有阻塞的'recvfrom‘(或'select'),当有进入的数据包时,它每10毫秒唤醒一次。为什么会这样呢?当没有数据包时,select是否必须将线程置于“睡眠”状态?为什么
浏览 8
提问于2014-05-20
得票数 3
1
回答
等待的线程可以休眠吗?
、
、
、
、
这个问题与linux调度和线程中不同阶段的处理器活动有关,线程可能正在进行某些活动,或者处于空闲/等待状态,或者处于休眠状态。当线程正在做一些事情时,处理器将执行指令(处理器吞吐量,即每秒执行的指令数量)将会很高。我的问题是,当线程处于等待和休眠状态时,处理器的行为(可能大致如此)是怎样的?等待的线程可以休眠吗?当线程处于休眠状态时,是否意味着处理器处于空闲状态?当一个处理器空闲时,是否意味着所有的线程都在休眠?当处理器空闲时,Linux是否真的将处理器置于一种不执行任何指令的模式(即时钟门控)?
浏览 2
提问于2014-08-29
得票数 2
1
回答
线程在Linux中互相中断吗?
、
我正在学习多线程的关键部分。我要作一般性发言: 在单个CPU系统中,禁用中断是竞争条件的一种解决方案。 但我也从另一个网站了解到 线程一般不会互相打断。 那么如何才能禁用中断来防止竞争条件呢?这可以用Linux来解释吗?
浏览 0
提问于2018-12-26
得票数 0
回答已采纳
1
回答
硬件中断使用哪个堆栈?
、
、
我不太理解x86_64中的中断堆栈切换机制。根据英特尔的开发人员手册,当硬件中断发生时,当前上下文将存储在中断堆栈上,供以后使用。我有以下问题: 是Linux内核中的堆栈hardirq_stack吗?如果是的话,softirq也会使用这个堆栈;那么当处理softirq时发生中断时,堆栈如何保持一致性呢?如果不使用,那么使用哪个堆栈?只将上下文的一部分保存在堆栈上(例如RSP、CS、RIP),另一部分(例如寄存器)呢?
浏览 4
提问于2021-10-29
得票数 2
1
回答
Linux内核是一个进程、一个线程还是一些被动的东西来处理来自应用程序的请求?
、
、
、
、
看起来linux内核正在运行一个进程。但是我看到一些回答说linux内核既不是进程也不是线程。所以我希望有人能解释一下这个概念。
浏览 1
提问于2014-03-13
得票数 0
1
回答
ksoftirq没有使用CPU,而且应该使用,为什么?
、
、
Linux 2.6和3.8。将Linux设置为传递3gig文件的路由器 执行top时,%SI高达30%,但ksoftirqd执行0%的CPU。所以问题是“哪个线程在处理软中断?”我已经读过代码了,它应该是ksoftirqd,但它是空闲的。 无法发布图像,没有足够的分数 这是一个会计问题吗? 德雷兹
浏览 3
提问于2014-01-25
得票数 1
1
回答
大流量下的用户空间匮乏
、
、
我正在linux网关设备上实现一个用户空间嵌入式配置管理器应用程序和一个网络设备驱动程序。 我们遇到了以下问题:在CPU负载约为100%的繁重TCP流量下,管理器应用程序处于饥饿状态:它无法将管理命令从用户空间发送到网络驱动程序-命令超时。要求是能够发送命令,即使这会导致吞吐量下降。如何解决这个问题呢? 以下是我们系统的一些细节:内核2.6.35,禁用抢占,网络驱动程序在中断上下文中处理传入的数据包
浏览 2
提问于2012-11-04
得票数 0
回答已采纳
2
回答
哪些任务对应于Linux内核调度程序?
、
、
、
在Linux的内核级别,我们有线程/任务(属于内核和用户),例如, swapper:是一个内核线程(进程0),它是所有进程的祖先,在Linux的初始化阶段由start_kernel()函数从头开始创建。也是 init:一个额外的内核线程,进程1 (init进程) HelloWorld:用户程序的线程 我的问题是关于内核调度器,它执行以下任务: 固定时间内的-Schedule任务(即上下文切换) 动态-Calculate时间片(基于短/长vs优先级) -Assigns动态处理优先级(在需要时) 将进程-Monitoring到它的作业中(这还包括其他的吗?) 更具体地说,我的问题变成:内核级别的哪
浏览 1
提问于2013-12-17
得票数 2
3
回答
Linux阻塞I/O实际上是如何工作的?
、
、
在Linux中,当你进行一个阻塞的i/o调用,比如read或accept,实际会发生什么? 我的想法是:进程从运行队列中移出,进入等待队列中的等待或阻塞状态。然后,当建立tcp连接(用于accept)或硬盘驱动器准备好读取文件时,将引发硬件中断,让等待唤醒和运行的进程(在文件读取的情况下,linux如何知道要唤醒哪些进程,因为可能有许多进程在等待不同的文件?)。或者,也许不是硬件中断,而是单个进程自己轮询以检查可用性。不确定,帮帮忙?
浏览 0
提问于2010-05-06
得票数 9
2
回答
linux中在中断上下文中运行用户线程
、
、
、
、
我正在编写一些自定义的应用程序,并允许更改linux内核中的中断处理程序代码。 我有一个等待中断发生的用户线程。如果中断发生,我要做的第一件事就是执行该用户线程。 有没有办法让它工作。 谢谢
浏览 2
提问于2012-06-02
得票数 2
回答已采纳
8
回答
为什么你抱着自旋锁不能入睡?
、
在linux内核中,为什么你不能在持有自旋锁的时候睡觉呢?
浏览 2
提问于2011-01-21
得票数 13
回答已采纳
1
回答
linux内核中单处理器上的信号量
、
、
我试图理解linux内核中的同步是如何工作的。我读到信号量可以用于异常,但我找不到一个情况的例子,信号量是需要的。那么为什么在单处理器系统中使用信号量呢?
浏览 1
提问于2017-02-14
得票数 0
4
回答
Linux系统调用的内部机制
、
、
当线程通过引发中断80来进行系统调用时,会发生什么(详细地)?Linux对线程的堆栈和其他状态做了什么工作?为了使处理器进入内核模式,对处理器进行了哪些更改?运行中断处理程序后,如何将控制权恢复到调用进程? 如果系统调用不能快速完成怎么办:例如从磁盘读取。中断处理程序如何放弃控制,以便处理器在加载数据时可以做其他事情,然后如何再次获得控制?
浏览 2
提问于2010-02-20
得票数 31
回答已采纳
2
回答
如何在Linux下高效地运行短异步任务?
、
、
、
、
我试图满足一个软的实时需求,在Linux下,任务需要在<1ms内完成。目前,我正在使用4-8线程来尝试实现这一目标,但是在Linux下使用p线程的开销和延迟似乎不太适合短期任务(在线程运行时,pthread_create和pthread_join的延迟时间分别为100 s和100 s+一些奇怪的非确定性行为,可以增加100到200秒)。 因此,我想知道是否还有其他方法可以可靠地运行短异步任务,并且延迟相当低。任务通常是< 500 s,我需要它们都在1ms内完成。我是否可以以某种方式直接使用内核线程(k线程)(例如,对任务数据使用共享内存)?或者是基于中断的东西? 背景信息 我已经
浏览 5
提问于2016-04-29
得票数 3
1
回答
真正的内核如何切换上下文
到目前为止,我知道有几种方法可以中断执行线程并将上下文交换到另一个执行线程。但是当内核从硬件接收到中断并且当前代码停止执行时。内核如何将上下文切换到另一个线程。它是否也调用简单的C例程来执行此操作?或者它必须执行自定义汇编代码才能实现这一点? 假设此内核在单处理器系统上运行。我只在用户空间处理过操作系统的概念,所以我不太清楚内核代码是如何在较低的层次上工作的。 注意:如果您想在现有内核(可能是Linux)的上下文中解释这一点,请继续!我知道我的措辞有点模棱两可。 谢谢!
浏览 0
提问于2015-12-26
得票数 0
5
回答
防止linux线程被调度程序中断
、
、
如何告诉linux中的线程调度器不要以任何原因中断线程?我在用户模式下编程。简单地锁定一个互斥锁就可以做到这一点吗?当某个函数正在执行时,我想防止进程中的其他线程被调度。它们会阻塞,而我会因为上下文切换而浪费cpu周期。我希望任何执行函数的线程都能够在没有中断的情况下完成执行,即使超过了线程的时间片。
浏览 0
提问于2010-04-08
得票数 20
回答已采纳
2
回答
Linux在所有内核上都会进入内核吗?
、
、
对于运行Linux2.6.x的多核计算机,当线程进行系统调用时会发生什么?它是只在运行线程的核心上插入内核,还是在所有核心上插入到内核中(如果这是一个新手问题,对不起)。 这种行为(以正确的为准)在接收中断时是否相同?如果不是,有何不同?
浏览 2
提问于2010-01-13
得票数 2
回答已采纳
2
回答
用户空间中的Linux C/C++计时器信号处理程序
、
、
、
、
我需要一个C/C++ linux中的函数(例如信号处理程序),它每'n‘毫秒激活一次。如何将信号etc...to寄存器设置为以毫秒精度计时事件。 准确性并不是非常关键,但需要在几百毫秒左右。 我是linux的新手,我真的不知道从哪里开始。
浏览 4
提问于2011-03-26
得票数 4
回答已采纳
1
回答
Windows "iowait“CPU利用率报告
、
、
、
、
Windows是否以与Linux相同的方式记录和报告"奥瓦伊特“?也就是说,进程进入”不间断睡眠“,其花费的时间从"CPU空闲”中减去? 如果是的话,哪些Perfmon计数器适合检测“由于延迟服务IO而导致的cpu繁忙”,而不是“由于计算而繁忙的cpu?”
浏览 0
提问于2013-10-18
得票数 9
1
回答
用户空间和内核空间进程中的一组信号处理程序
、
、
、
我是linux的新手.. “用户空间进程”和“内核空间进程(内核线程)”是否共享同一组信号。handlers.Just想知道内核如何根据进程运行的区域(用户空间或内核空间)发送不同的信号?
浏览 0
提问于2013-11-07
得票数 1
1
回答
硬中断和软
、
、
在linux中,当网卡接收数据包时,会触发一个硬中断,然后在中断回调函数中,它会引发一个NET_RX_SOFTIRQ,这个软irq会在同一个cpu上运行吗?
浏览 5
提问于2016-03-30
得票数 8
4
回答
GDB和C++的多线程调试教程
、
、
、
有没有人知道一个好的GDB (或其他Linux调试器)教程来调试多线程C代码?我正在寻找一个包含简单示例的示例。
浏览 1
提问于2009-11-08
得票数 37
2
回答
程序挂起为线程不终止
、
我有这种奇怪的行为。我的程序会挂起,尽管我设置了一个时间强制终止它。有人能指出这种奇怪的行为可能是什么吗? 下面是我启动线程的代码 protected void pendingTaskStarter() throws Exception { ExecutorService service = Executors.newFixedThreadPool(maxThreadNum); ArrayList<Future<Runnable>> futures = new ArrayList<Future<Runnable>>();
浏览 3
提问于2015-03-13
得票数 0
回答已采纳
3
回答
在Linux中内核线程在什么上下文中运行?
、
、
我是Linux内核的新手。 我知道有两个上下文 在用户空间或内核空间中运行的进程上下文(例如:作为System call)Interrupt Context的一部分 Kernel Thread (与任何用户线程无关,例如:flush task)在什么上下文中运行? 在Linux内核中,除了进程和中断上下文之外,还有其他上下文吗?
浏览 3
提问于2012-02-22
得票数 18
回答已采纳
3
回答
抢占和上下文切换的区别
、
、
、
稍微介绍一下, 我目前正在编写一个小的(读小的) RTOS内核,好吧,它应该与内核中的大部分内容保持一致。然而,我在下面列出的几件事情上找不到多少信息,这将是很有帮助的,除此之外,它实际上不是某种大学项目,而是我自己愿意做的事情。 是回答所有问题的更好的选择,如果您可以为arm推荐一本免费的RTOS (甚至是一本免费的书),最好是,它实现了用户空间,并且是可抢占的(但不像linux那样复杂)。Linux有一些我迄今所见过的最糟糕的文档(我确实尝试从linux代码中找出一些东西,但在100万个文件和函数钩子中散布了大量的定义,其中有wierd名称和一些东西被重命名,每个版本有时也会被移动.)
浏览 3
提问于2012-07-22
得票数 8
回答已采纳
1
回答
Linux链表API可以在中断处理程序中安全地使用吗?
、
我正在为使用Linux内核2.6.33的自定义硬件编写设备驱动程序。我需要使用DMA传输数据到设备和从设备。对于输出DMA,我想我应该使用链表API (struct list_head、list_add()等)来跟踪几个输出缓冲区。 当设备完成DMA传输时,它会产生一个中断。然后,中断处理程序将检索链表中要传输的项,并将其从列表中移除。 我的问题是,在中断处理程序中做这件事实际上是安全的吗?或者,此API中是否存在使其不安全的固有竞争条件? Linux设备驱动程序的小节,第3版。没有提到这件事。Essential Linux Device Drivers一节更完整,但也没有涉及这个主题。 编辑
浏览 2
提问于2013-05-20
得票数 2
回答已采纳
1
回答
内核如何切换内核堆栈和用户堆栈?
、
内核如何切换内核堆栈和用户堆栈? 我正在查看linux内核中的中断处理。 我知道进程只在内核模式下使用内核堆栈。 但是,当中断发生时,它是如何带来内核堆栈指针的? 我没有看到内核在中断退出代码中保存指向某个寄存器的堆栈指针。
浏览 1
提问于2018-03-23
得票数 0
回答已采纳
1
回答
CPP中的线程同步与优先级
、
、
我正在尝试创建一个任务管理器,它接受任务并将每个任务作为一个新线程运行,在Linux环境中使用C++和(当前) std::thread。 任务管理器接受正常任务和优先级任务。当优先级任务到达时,所有正常任务都需要停止直到优先级任务完成。 我将所有正常的任务线程保存在一个std::vector中,但是我找不到一个适当的函数来停止这些线程。是否有一种方法,最好不使用锁,来实现想要的行为?可能是用<pthread>还是boost线程?
浏览 2
提问于2022-01-13
得票数 0
2
回答
在没有轮询的情况下,另一个线程是否有办法“重置”睡眠线程的计时器,从而使其睡眠时间更长?
、
、
假设我们有两个线程,A和B是周期性地执行一些操作,而A被设置为休眠到一定的时间。我希望B能够调用一个函数keepSleeping(A),这将导致A的睡眠定时器被延长。如果没有调用keepSleeping(A),A最终应该会醒来。 在Linux上,是否有一种方法可以实现这个keepSleeping 而不定期唤醒A以检查是否已被调用? 问了一个类似的问题,但是我想知道是否有一个更优雅的解决方案,它不需要在没有必要的情况下醒来。
浏览 7
提问于2020-01-16
得票数 0
1
回答
函数调用linux中中断处理程序的下半部分。
、
、
、
、
在Linux中,中断处理程序的处理分为两个组件:上半部分和下半部分。 据我所知,中断处理程序的下半部分可以通过多种方式处理: softirq、tasklet、work-queue和timer-list。 我想知道Linux内核中的哪个函数处理这些下半部的调度函数。 编辑:我查看了softirq's和tasklet的哈尼什,它们似乎都是通过__do_softirq ()函数来处理的。但是,我仍然可以看到处理程序执行中的许多路径,这些路径通过Linux内核的schedule()函数,然后显示出分歧。我无法正确地解释这些路径。 引导你实现这一功能的一些直觉: 挂起的任务(下半部分)的调度应该
浏览 2
提问于2015-05-13
得票数 3
1
回答
修改Linux中的定时器中断
、
、
、
在大学里,我正在学习操作系统,作为项目的第一部分,我们必须修改计时器中断来执行我自己的代码,可能是线程,我认为Linux在访问中断向量方面的限制比Windows少,不是吗? 如果使用Windows或Linux (如Ubuntu)更好,您能给我更多细节吗? 谢谢。
浏览 1
提问于2011-02-22
得票数 1
5
回答
TIF_NEED_RESCHED是做什么的?
TIF_NEED_RESCHED在Linux调度程序(例如CFS)中的用途是什么?在编写新的调度类时,可以使用此标志吗?如果是,在何处以及如何将此标志用于新的调度类?
浏览 4
提问于2013-09-02
得票数 4
回答已采纳
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
多线程学习之如何中断线程
Java虚拟机如何快速找到GC Roots?又是如何中断线程?
我们该如何正确的中断一个线程的执行??
Python多线程怎样优雅的响应中断异常
linux多线程服务器
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
即时通信 IM
活动推荐
运营活动
广告
关闭
领券