社区
Linux/Unix社区
帖子详情
关于使用信号量的一个进程被kill的问题
zhqyzhqychn
2010-07-26 04:02:20
两个进程使用信号量互斥使用一块内存,一个始终跑着,一个可能有时候需要被kill掉重启,如果被kill掉的时候P操作完了,这样锁就会出现问题了,使用了undo标志,但undo最多可以3万多次,就会溢出,有什么好的解决方法吗
...全文
264
3
打赏
收藏
关于使用信号量的一个进程被kill的问题
两个进程使用信号量互斥使用一块内存,一个始终跑着,一个可能有时候需要被kill掉重启,如果被kill掉的时候P操作完了,这样锁就会出现问题了,使用了undo标志,但undo最多可以3万多次,就会溢出,有什么好的解决方法吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
进程退出自动就会释放锁吧
apache 启动时
信号量
不足
本文探讨了Apache启动时报错Nospaceleftondevice的原因,涉及Linux
信号量
管理,提供了清除
信号量
的方法,并强调了谨慎
使用
kill
等命令的重要性。通过C语言代码实例重现了
信号量
满的
问题
,解释了Linux系统
信号量
的两种标准实现,以及它们如何影响
进程
间通信。文章还介绍了除
信号量
外的其他
进程
间通信方式,如共享内存、文件和网络通信,并提供了关键信息的总结。
某测试环境发现Java
进程
_Linux系统下如何优雅地关闭Java
进程
?
本文探讨了如何优雅地停止Java
进程
,避免直接
使用
kill
-9可能导致的数据丢失或资源泄露
问题
。介绍了
使用
信号量
机制和关闭钩子相结合的方法,确保Java
进程
在接收到停止信号后能够妥善释放资源。
Linux用系统命令杀死僵尸
进程
本文介绍了一种通过查找并杀死僵尸
进程
来解决Linux系统中僵尸
进程
累积的
问题
的方法。具体步骤包括:检查当前僵尸
进程
数量,
使用
kill
命令发送不同
信号量
杀死僵尸
进程
及其父
进程
,最终实现完全清除。
【RH124知识点问答题】第 9 章 控制服务和守护
进程
本文围绕Linux
进程
的监控和管理展开,解答了多个关键
问题
。包括systemd
进程
的理解,ps和top命令的区别,ps aux与ps -ef命令参数的作用,
进程
的状态,作业及作业控制的概念,以及
kill
命令中9和15
信号量
的差异。
操作系统——处理机调度
本文描述了
一个
Linux
进程
同步与通信的实验,目的是掌握
进程
间通信机制,如管道、消息队列和共享内存。实验中,生产者
进程
读取用户输入并存入共享内存,两个并发的消费者
进程
交替显示缓冲区内容。
使用
信号量
处理同步
问题
,确保一次只有
一个
进程
操作缓冲区。实验结论提到,通过
kill
函数可以在接收到quit时结束所有相关
进程
。
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章