社区
Linux/Unix社区
帖子详情
关于使用信号量的一个进程被kill的问题
zhqyzhqychn
2010-07-26 04:02:20
两个进程使用信号量互斥使用一块内存,一个始终跑着,一个可能有时候需要被kill掉重启,如果被kill掉的时候P操作完了,这样锁就会出现问题了,使用了undo标志,但undo最多可以3万多次,就会溢出,有什么好的解决方法吗
...全文
267
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时,有时候会报No space left on device错误,这个意思是说设置上空间不足了,这个空间是指Linux用来存放
信号量
的空间,而非磁盘空间,i结点用完时也会报No space left错误。
使用
ipcs查看系统的
信号量
,发现是
信号量
sem已经满了 据说是如果apache没有正常Stop掉的话,它的
信号量
是不会自动清除的,导致其一直滞留在内存中,但是根据实际情况用
某测试环境发现Java
进程
_Linux系统下如何优雅地关闭Java
进程
?
前言Linux系统下如何
kill
掉
一个
后台Java
进程
,相信童鞋们都知道如何操作。首先
使用
ps命令查找该Java
进程
的
进程
ID,然后
使用
kill
命令进行杀掉。命令如下:(1)ps查
进程
ID[user@data2 ~]$ ps -ef | grep Testuser2095020809 0 21:30 pts/1 00:00:00 java -jar Test.jaruser 21030 2099...
Linux用系统命令杀死僵尸
进程
1) 检查当前僵尸
进程
信息 # ps -ef | grep defunct | grep -v grep | wc -l 175 # top | head -2 top - 15:05:54 up 97 days, 23:49, 4 users, load average: 0.66, 0.45, 0.39 Tasks: 829 ...
【RH124知识点问答题】第 9 章 控制服务和守护
进程
(1)作业:在命令行里,你启动的
一个
命令或一组命令(用管道 | 或 && 连接的),就被 shell(比如 bash)看作
一个
作业。答:systemd是电脑开机之后运行的第
一个
员工,类似大管家,工号永远是1,负责唤醒其他服务、管理所有其他程序(启动、停止、重启这些程序),知道谁先启动谁后启动。暂停前台作业(ctrl+z)、bg把暂停的作业放后台、fg把后台/暂停的作业调前台、jobs查看作业列表。u 显示详细信息,包括
进程
的所有者、占用的CPU%、内存%、启动时间、命令全路径。ps aux看当前所有
进程
。
操作系统——处理机调度
在customer中,通过fork创建两个
进程
,同样设置
一个
循环,在循环中两个
进程
并发交替执行,读取缓冲区的信息并在读取后将缓冲区清空,两个
进程
打印相应的信息以观察交替执行的过程。这是因为在我的消费者
进程
中,子
进程
和父
进程
的信息打印、释放
信号量
等操作相对独立,当前
进程
为子
进程
时,子
进程
退出后,父
进程
会继续等待
信号量
并读取共享内存中的数据,直到接收到quit,但此时生产者
进程
已经退出。退出程序的方法:判断当前缓冲区中的信息是否是“quit”,如果是,则退出当前循环,并释放
信号量
。
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章