腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
如何在
linux
内核
中添加自定义
信号量
?
基本上,我希望在
linux
内核
中
实现
自己的
信号量
,并能够在用户程序中使用它。有没有办法让使用用我的代码编译的
内核
的
linux
能够简单地通过包含一个头文件来使用我的
信号量
?当涉及到
linux
内核
时,我不是专业
浏览 3
提问于2014-12-03
得票数 2
1
回答
是否有不基于Mutex+CV的POSIX
信号量
的
实现
?
、
我看到FreeBSD
内核
中的
信号量
不如来自这个手册页的Mutex+CV那么高效。我研究了来自来源 代码的POSIX
信号量
的
内核
和syscall
实现
,并确认它们是在Mutex+CV之上
实现
的。这可能是我的一种误解,即POSIX
信号量
作为实时同步化的原语,应该是非常有效的。但是在阅读和看到这些之后,我不确定它们的效率。 另外,我正在读并发编程:算法、原理和基础一书。现在,我还没有读完第一部分,但它即将介绍显示器(CV)
实现
在
信号量
之上。这
浏览 0
提问于2022-08-03
得票数 0
1
回答
信号量
与条件变量.抽象级别
、
、
、
当我搜索如何在C++11中使用
信号量
时,我看到人们经常建议我用std::mutex和std::condition_variable (例如)来制作
信号量
。这使我认为
信号量
是一个比互斥变量和条件变量更高层次的抽象。 但是,在我学习了操作系统类之后,我现在知道在
内核
中,
信号量
通常是最低的抽象级别。
信号量
是通过禁用中断来
实现
的,锁本质上是值为1的
信号量
,而条件变量则是在不使用
信号量
或锁的情况下从底层
实现
的。因此,与锁或条件
浏览 6
提问于2016-12-19
得票数 0
回答已采纳
1
回答
未命名
信号量
(通过sem_init)是纯用户空间吗?
、
在
Linux
(2.6.27)上,当我调用sem_init()在共享内存中初始化一个未命名的
信号量
时,这个
信号量
是纯用户空间,还是由
Linux
内核
控制?如果持有这个
信号量
的进程死了,
信号量
会自动释放吗?
浏览 4
提问于2013-07-02
得票数 0
回答已采纳
1
回答
为什么POSIX将
信号量
标准化为系统调用,而将互斥和条件变量留给P线程(用户级别)
、
、
、
、
为什么POSIX将对
信号量
的支持标准化为syscall,而将条件变量和互斥对象留给线程库呢?我也不知道。猜测性能是不将互斥
实现
为syscall的考虑因素。(原子硬件指令是无特权的,因此在用户级别
实现
它们是可能的。尽管
Linux
提供了futex,但它实际上正试图将自旋锁优化为两阶段锁,以
实现
睡眠锁)。
信号量
的原因是
信号量
浏览 4
提问于2020-03-03
得票数 1
回答已采纳
2
回答
何时调用sem_unlink()?
、
我对
Linux
API sem_unlink()有点困惑,主要是在什么时候或为什么调用它。我在Windows中使用
信号量
已经很多年了。在Windows中,一旦关闭了命名
信号量
的最后一个句柄,系统就会删除底层
内核
对象。但是在
Linux
中,开发人员需要通过调用sem_unlink()来删除
内核
对象。如果不这样做,
内核
对象将保留在/dev/shm文件夹中。更重要的是,手册页充其量也是令人困惑的: “
信号量
名称将立即删除。一旦打开
信
浏览 1
提问于2013-03-02
得票数 15
1
回答
linux
中Posix
信号量
的源代码位置
、
、
、
我已经开始学习操作系统中
信号量
的概念了。我在
linux
中使用POSIX
信号量
。我使用了sem_init()、sem_wait()和sem_post()来初始化、递减和递增
信号量
变量。我已经检查了一些
内核
源文件,但我找不到它们。我可以从哪里获得这些源代码文件?谢谢。
浏览 0
提问于2015-06-17
得票数 4
1
回答
linux
中的等待队列与
信号量
、
、
、
为什么我们在
linux
内核
中使用等待队列,而不是使用
信号量
进行同步?使用等待队列和
信号量
进行同步有什么区别?
浏览 5
提问于2012-10-29
得票数 3
回答已采纳
1
回答
linux
内核
中单处理器上的
信号量
、
、
我试图理解
linux
内核
中的同步是如何工作的。我读到
信号量
可以用于异常,但我找不到一个情况的例子,
信号量
是需要的。那么为什么在单处理器系统中使用
信号量
呢?
浏览 1
提问于2017-02-14
得票数 0
2
回答
完成变量和
信号量
之间的区别
、
、
在
linux
内核
中,
信号量
用于为数据的关键部分提供互斥,完成变量用于在等待事件的两个线程之间进行同步。为什么不使用
信号量
进行这样的同步呢?使用完成变量比使用
信号量
有什么优势吗?
浏览 1
提问于2011-01-22
得票数 9
回答已采纳
1
回答
实时
linux
操作系统上的c++编程
、
、
、
与std
内核
相比,RT
linux
内核
上是否有RealTime C++应用程序(用户空间和
linux
驱动程序)的编程功能?
Linux
修补程序将更改应用于
内核
调度程序、
信号量
、muteces等,我想知道这些更改对开发人员是否透明?还是需要在书面上特别注意这类申请?
浏览 0
提问于2012-10-15
得票数 4
2
回答
在LinuxVersion3.2中,init_MUTEX去了哪里?
、
、
、
、
我正在跟踪
Linux
设备驱动程序(第三版)。当我试图模仿第六章中的双桨例子时,会报告一个错误。顺便问一下,是否有一个列表可以检查所有
内核
API的更改?
浏览 5
提问于2015-01-06
得票数 5
回答已采纳
1
回答
在
内核
开发中,有类似于互斥对象的down_interruptible()函数吗?
、
、
、
、
在“
Linux
设备驱动程序第三版”一书中,互斥通过init_MUTEX(sem)通过
信号量
实现
。然而,较新的
内核
,如
内核
3.2.X,已经删除了这个函数,并添加了互斥对象的支持。
浏览 5
提问于2015-01-15
得票数 1
回答已采纳
2
回答
sem_init与sema_init的区别
、
、
、
、
sema_init和sem_init有什么区别?各个接口是否有特定的使用场景和其他依赖关系?
浏览 2
提问于2010-07-05
得票数 2
回答已采纳
2
回答
Linux
内核
--如何阻止一个线程等待
信号量
?
、
、
、
、
在编写
Linux
内核
模块时,我遇到了一个问题,在等待
信号量
解锁时,我无法唤醒这个问题。这将导致线程不可阻挡,并导致rmmod在卸载模块时冻结。请注意:这个模块运行在一个3.10
内核
上,我无法将其更新到一个更新的版本(客户要求运行在库存CentOS 7上,其中包含一个3.10
内核
)。 下面是模块源代码中有趣的部分。它代表了一个简单的生产者消费者问题,列表不受大小限制(因此不需要生产者
信号量
)并由互斥保护。从列表中获取某些内容的函数由一个
信号量
来保护,
信号量</em
浏览 8
提问于2016-10-20
得票数 3
回答已采纳
1
回答
有可能有一系列
信号量
吗?
、
、
、
、
所以我的想法是创建一个
信号量
数组,这样当我必须要分叉的时候,我可以通过使用数组中的索引来跟踪哲学家的数字和他的餐叉,这个索引最理想地包含资源。 所以我的问题是,这可能吗?
浏览 1
提问于2021-03-17
得票数 1
回答已采纳
4
回答
一般信号范围是什么?
、
、
、
一般
信号量
的范围是多少。我知道它可以采用负值,0和1。负值显示块队列中阻塞的进程数。0表示没有进程处于块中,而1表示没有进程抢占它的可用资源,我想知道它的值是否可能大于1。这是否意味着我们拥有一个
信号量
的多个资源?
浏览 1
提问于2013-12-18
得票数 5
回答已采纳
3
回答
成千上万的读取器/写入器锁在一个进程中。
、
、
、
、
我目前正在设计一个具有大规模同步模式的C++跨平台(
Linux
/Windows)服务器应用程序。我在内部使用boost::线程作为操作系统特定线程的抽象。注意,由于整个服务器在一个进程中运行,所以我使用基于线程的轻量级
信号量
(而不是进程间
信号量
)。 是否建议在
Linux
和Windows上为单个进程总共创建一个20000
信号量
?如果不推荐这种做法,我可以使用什么技术来减少实际
信号量
的数量,例如在一个实际
信号量
的顶部创建N个“模拟
信号
浏览 9
提问于2011-08-06
得票数 6
1
回答
Linux
信号量
:自旋锁还是信号?
、
、
当前
信号量
的
实现
是如何工作的?它使用自旋锁还是信号?另外,它是如何在用户空间中工作的?
内核
锁定推荐自旋锁,但用户空间不建议。那么,对于
信号量
而言,在用户空间和
内核
空间中
实现
是否不同呢?
浏览 3
提问于2013-08-20
得票数 1
回答已采纳
1
回答
如何使用语义获取
实现
sem_open
、
、
我想使用System
信号量
实现
一些POSIX
信号量
API,并发现这个博客很有用。 creat(fname, 0444); semget(key, 1, IPC_CREAT)但是semget返回
信号量
集标识符,而sem_open返回一个新的POSIX
信号量
。允许的
信号量
集的数量很小,所以我不能创建许多
信号
浏览 1
提问于2017-08-30
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Linux系统编程 信号量
【精通内核】Linux内核rcu(顺序)锁实现原理与源码解析
Linux 6.2 内核合并了新的 Zstd 实现
Linux内核态高效HTTP代理的设计与实现
Linux内核解读
热门
标签
更多标签
云服务器
ICP备案
实时音视频
对象存储
云直播
活动推荐
运营活动
广告
关闭
领券