腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
解决自旋
锁
问题
、
在
Linux
设备驱动程序中。当它引入自旋
锁
时,它给出了以下示例: 您的驱动程序正在执行,并且刚刚取出一个控制对其设备的访问的
锁
。当
锁
被持有时,设备发出一个
中断
,这将导致您的
中断
处理
程序运行。在访问设备之前,
中断
处理
程序还必须获得
锁
。在
中断
处理
程序中取出自旋
锁
是合法的;这是spinlock操作不休眠的原因之一。但是,如果
中断
例程与最初取出
锁
浏览 5
提问于2012-05-30
得票数 2
回答已采纳
1
回答
如果
中断
处理
程序开始旋转会发生什么?
、
、
、
、
我正在跟踪
Linux
设备驱动程序。当它引入自旋
锁
时,它给出了以下示例: 您的驱动程序正在执行,并且刚刚取出一个控制对其设备的访问的
锁
。当
锁
被持有时,设备发出一个
中断
,这将导致您的
中断
处理
程序运行。在访问设备之前,
中断
处理
程序还必须获得
锁
。在
中断
处理
程序中取出自旋
锁
是合法的;这是spinlock操作不休眠的原因之一。但是,如果
中断
例程与最初取出<e
浏览 2
提问于2012-02-22
得票数 0
回答已采纳
1
回答
如何获得
Linux
内核中
锁
的全局状态?
、
、
、
、
我正在为
Linux
内核编写一些代码,当我需要启用
中断
以便进程能够
处理
一个信号时,我注意到
中断
被禁用了。如果我能获得系统中当前持有的所有
锁
的列表,那就太棒了,因为我怀疑某个地方的
锁
已经禁用了
中断
。这就是,假设是
锁
禁用了
中断
。如果没有,也很高兴知道是如何做到的(或者在哪里)。
Linux
内核保存了这方面的任何记录吗?
浏览 3
提问于2020-02-19
得票数 1
1
回答
为什么我们要禁用关键部分的
中断
?
、
Release_lock(){enable Interrupts;} 我的问题是:当获取关键部分的
锁
时,为什么要禁用
中断
?
浏览 6
提问于2015-01-16
得票数 0
1
回答
了解最新(3.0.0及以上)
Linux
内核中CONFIG_SMP、Spinlock和CONFIG_PREEMPT之间的链接
、
、
、
、
如果是的话,它会对我的驱动程序和
中断
处理
程序产生什么影响。( a)默认情况下,
Linux
内核在内核空间中是抢占性的吗?
浏览 4
提问于2013-01-17
得票数 11
4
回答
非抢占式
linux
内核上的spin_lock
、
、
、
我在一篇文章中读到,在具有1CPU和非抢占式
linux
内核(2.6.x)的系统上,spin_lock调用等同于空调用,因此以这种方式实现。 我不能理解:它不应该等同于互斥锁上的睡眠吗?例如,即使在非抢占式内核上,
中断
处理
程序仍然可能会执行,或者我可能会调用一个函数来使原始线程进入睡眠状态。因此,如果一个空的spin_lock调用被实现为互斥
锁
,那么它就不是“安全的”。
浏览 0
提问于2010-07-30
得票数 4
回答已采纳
1
回答
Linux
驱动程序资源保护
、
我正在编写一个
Linux
设备驱动程序,并且是一个新手,所以我正在快速学习如何不做事情。我目前正在使用几个互斥
锁
来防止某些函数并发地从设备读取数据,并在从挂起恢复时遇到死锁。我的问题有两个: 1)
中断
处理
程序调度工作队列以从设备的FIFO读取并
处理
数据。FIFO需要在不被其他读取
中断
的情况下读取,因此我在读取和写入函数中放置了一个互斥
锁
(A)
锁
/解锁。2)设备配置函数是使用与上面相同的读写函数的读写序列,必须在不被其他读写
中断
浏览 5
提问于2015-07-06
得票数 1
1
回答
一个正在旋转并试图获得自旋
锁
的线程不能被抢占吗?
、
、
、
当
Linux
上的线程正在旋转并试图获得自旋
锁
时,这个线程不可能被抢占吗?我只想确定一些事情。在“向上”系统上,并且没有
中断
处理
程序将访问这个自旋
锁
。如果正在旋转并试图获得自旋
锁
的线程可以被抢占,我认为在这种情况下,spinlock保护的关键部分可以调用sleep,因为保持自旋
锁
的线程可以重新调度回CPU。
浏览 5
提问于2015-11-26
得票数 2
2
回答
每个CPU变量锁定
、
、
、
我正在阅读Robert编写的
Linux
内核开发(),并试图理解内核同步机制。如果数据是每个
处理
器特有的,则可能不需要使用
锁
来保护它,因为只有这一个
处理
器可以访问数据。如果没有自旋
锁
,内核是抢占式的,新调度的任务可以访问这个变量。”因此,即使这是一台单
处理
器计算机,变量也可以被多个进程伪并发地访问。通常,这个变量需要一个自旋
锁
(以防止多
处理
机器上的真正并发性)。但我无法理解的一点是,如果我们只禁用内核抢占,而当前进程试图操作每个CPU数据,同时在当前<e
浏览 1
提问于2019-11-01
得票数 1
回答已采纳
2
回答
抱着自旋
锁
时避免睡觉
、
、
、
我最近阅读了 (自旋
锁
和原子上下文)部分的LDDv3书: 然而,假设我们有一个大项目,其中spinlocks被广泛使用。我们如何确保从由自旋
锁
保护的关键部分调用的函数永远不会
浏览 1
提问于2010-09-09
得票数 6
1
回答
避免自旋
锁
死锁
、
假设设备函数持有自旋
锁
以控制对设备的访问。当
锁
被持有时,设备发出一个
中断
,这将导致
中断
处理
程序的运行。在访问设备之前,
中断
处理
程序还必须获得
锁
。假设
中断
处理
程序与最初取出
锁
的代码在同一个
处理
器中执行。 知道保持自旋
锁
无法在相关
处理
器上抢占,是否有可能在另一个
处理
器上执行持有自旋
锁
的代码(因为该
处理</e
浏览 2
提问于2013-08-31
得票数 3
回答已采纳
1
回答
spin_lock对spin_lock_irq和spin_lock_irqsave
、
在我目前忙于
处理
的内核中,有三个spin_lock函数。spin_lock_irq我只发现只涉及其中两个的贡献(包括
Linux
文档)。我很清楚一些基本知识,例如在
中断
上下文中,一个简单的spin_lock()可能导致死锁。但我真的很想要一个关于这个主题的完整图片。什么时候或者我们应该使用哪个版本,什么时候不应该使用?
浏览 0
提问于2019-05-15
得票数 7
回答已采纳
1
回答
如何不禁用
中断
处理
程序中的本地
中断
(获取
锁
)会导致双获取死锁?
、
、
(Robert )中提到: 如果获得
锁
,就意味着preempt_count变量不是零,这使得没有其他
处理
程序获得机会,因为内核不是preempt_safe。那么,在这种情
浏览 3
提问于2014-03-14
得票数 3
1
回答
Linux
上的FileLock问题
、
、
、
我在
Linux
服务器上使用Java的文件锁定API,并试图在远程
Linux
系统上锁定文件。有一些问题已经弹出,日志显示,2不同的集群节点、运行相同Java应用程序的能够两个获得同一个NFS文件的
锁
。在线阅读Java如何
处理
锁
和
Linux
文件锁定(我们通常部署在Windows上,所以很少有经验),我们所做的应该工作。我们实际上是在发出建议
锁
,但是由于两个集群节点运行的代码相同,它们正在协作进程,并且在开始执行任何读写操作之前检查
锁
的获取情况。然而,情况似
浏览 4
提问于2022-08-08
得票数 0
回答已采纳
2
回答
内核是不可抢占的.如何?
、
、
、
例如,进程将如何响应计时器
中断
(如果它在内核模式下执行)?或者它如何应对高温断电
中断
。 如果有人能消除我的疑虑,请
浏览 1
提问于2011-03-07
得票数 0
回答已采纳
3
回答
带有超时的
linux
fcntl文件
锁
、
、
、
标准的
linux
调用不提供超时选项。我正在考虑用信号实现超时
锁
。此命令应等同于F_SETLK,但如果共享或独占
锁
被其他
锁
阻塞,则线程将等待请求得到满足。如果在fcntl()等待某个区域时接收到要捕获的信号,则fcntl()将被
中断
。在从信号
处理
程序返回时,fcntl()将返回-1,其中errno设置为EINTR,
锁
操作不应执行。那么,我需要用什么样的信号来指示被
中断
的
锁
?
浏览 0
提问于2019-07-15
得票数 2
回答已采纳
1
回答
进程和
中断
上下文之间共享的自旋
锁
如果在流程上下文中持有自旋
锁
。如果
中断
上下文中需要相同的自旋
锁
,会发生什么情况? 要么
中断
处理
程序等待进程释放自旋
锁
,要么
中断
处理
程序将它安排在另一个
处理
器上?但是问题仍然是一样的,
中断
处理
程序将等待spinlock被释放?难到不是么?
浏览 3
提问于2014-06-30
得票数 2
4
回答
如何在
linux
上实现线程安全的定时器?
、
、
正如我们所知,在信号
处理
程序中做事情真的很糟糕,因为它们在类似
中断
的上下文中运行。各种
锁
(包括malloc()堆
锁
!)在调用信号
处理
程序时保持。对不起,实际上,我并不期待关于线程安全的答案,而是关于在Unix或
Linux
上实现线程安全的定时器的答案。
浏览 6
提问于2009-03-23
得票数 4
回答已采纳
3
回答
为什么-rt (RT优先)内核补丁在默认情况下不包括在主线内核中?
、
、
根据https://rt.wiki.kernel.org/index.php/RT_抢占_何图的说法,RT抢占补丁将
Linux
转换成一个完全抢占的内核.魔术是通过以下方式实现的: 使用rtmutexes重新实现,使内核中的
锁
原语(使用自旋
锁
)是可抢占的。实现内核内互斥、自旋
锁
和rw_semaphores的优先级继承.将
中断
处理
程序转换为可抢占的内核线程:RT抢占修补程序
处理
内核线程上下文中的软
中断
处理</
浏览 0
提问于2014-03-31
得票数 5
2
回答
SMP系统中的
中断
处理
、
、
是否将
中断
分配给固定CPU (总是由同一个CPU
处理
)?来自: 保护共享区域的自旋锁具有与设备
中断
的DIRQL相等的IRQL。只要关键部分例程持有自旋
锁
并访问DIRQL上的共享区域,ISR就不能在单
处理
器或SMP机器中运行。这在单
处理
器机器上是有意义的,因为
中断
将不会由CPU服务,直到
锁
被释放,因为CPU的IRQL不小于
中断
IRQL。然而,在SMP机器上,如何阻止其他CPU (而不是拥有
锁
的
浏览 5
提问于2009-10-05
得票数 3
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
python中断和异常处理
Solana网络出现中断,无法处理交易
linux 内核 --- 自旋锁(spinlock_t)
Linux系统编程 读写锁rwlock
详解Linux多线程中的互斥锁、读写锁、自旋锁、条件变量、信号量
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
云直播
活动推荐
运营活动
广告
关闭
领券