社区
Linux/Unix社区
帖子详情
关于使用信号量的一个进程被kill的问题
zhqyzhqychn
2010-07-26 04:02:20
两个进程使用信号量互斥使用一块内存,一个始终跑着,一个可能有时候需要被kill掉重启,如果被kill掉的时候P操作完了,这样锁就会出现问题了,使用了undo标志,但undo最多可以3万多次,就会溢出,有什么好的解决方法吗
...全文
162
3
打赏
收藏
关于使用信号量的一个进程被kill的问题
两个进程使用信号量互斥使用一块内存,一个始终跑着,一个可能有时候需要被kill掉重启,如果被kill掉的时候P操作完了,这样锁就会出现问题了,使用了undo标志,但undo最多可以3万多次,就会溢出,有什么好的解决方法吗
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Coder_Granger
2010-07-26
打赏
举报
回复
SEM_UNDO只有p和v操作在同一进程时才能使用,否则容易溢出,
生产消费类型可以用SEM_UNDO,但是不能直接用,你可以用信号量保护一块共享内存,
然后在共享内存中记录生产者产出量,消费者和生产者通过信号量同步去访问共享内存,
这么做,p和v就处于同一进程了.
二值同步还可以用文件锁,性能跟信号量差不多,
免去SEM_UNDO烦恼,因为文件锁会随进程退出自动释放.
mymtom
2010-07-26
打赏
举报
回复
作互斥量(二值信号量时),SEM_UNDO应该没有问题吧!
在同一进程中
P操作时, semadj 会+1.
P操作时, semadj 会-1.
不会溢出啊!
生产者消费者类型的应用中就不能用SEM_UNDO,
快乐田伯光
2010-07-26
打赏
举报
回复
进程退出自动就会释放锁吧
UNIX环境高级编程
14.8
信号量
342 14.9 共享存储 346 14.10 客户机-服务器属性 351 14.11 小结 353 习题 353 第15章 高级
进程
间通信 355 15.1 引言 355 15.2 流管道 355 15.3 传送文件描述符 358 15.3.1 SVR4 360 15.3.2 ...
kill
linux
信号量
,
kill
用法详细解释(特别是
信号量
9的
使用
以及理解)
Linux
kill
命令当需要中断
一个
前台
进程
的时候,通常是
使用
< Ctrl+c >组合键;但是对于
一个
后台
进程
恐怕就不是
一个
组合键所能解决的了,这时就必须求助于
kill
命令。该命令可以终止后台
进程
。至于终止后台
进程
的...
进程
信号---
kill
命令
一个
信号对应
一个
事件,并且信号必须能够被识别 Linux下信号种类:
使用
kill
-l命令进行查看,62种 1~31号:非可靠信号;34-64号:可靠信号 信号的生命周期:产生,注册,注销,处理 产生: 硬件产生: ctrl+c,ctrl...
嵌入式 - Linux下
kill
常用信号解释
通常,终止
一个
前台
进程
可以
使用
Ctrl+C键,但是,对于
一个
后台
进程
就须用
kill
命令来终止,我们就需要先
使用
ps/pidof/pstree/top等工具获取
进程
PID,然后
使用
kill
命令来杀掉该
进程
。
kill
命令是通过向
进程
发送指定的...
kill
命令与
进程
间的信号机制的讨论
kill
命令与
进程
间的信号机制的讨论 本文实际上算是<深入理解计算机系统>第八章异常控制流中...刚好看书看到关于
kill
函数与内部信号的实际机制,本文算是
一个
回顾. ===
kill
命令 关于
kill
命令,我们先来看看ma...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章