Linux提供两种信号量:
1、内核信号量,由内核控制路径使用
2、System V IPC信号量,由用户态进程使用
从本质上说,它们实现了一个加锁原语,即让等待者睡眠,直到等待的资源变为空闲。
信号量
内核信号量类似于自旋锁,因为当锁关闭着的时候,它不允许内核控制路径继续运行。然而,当内核内核控制路径试图获取内核信号量所保护的忙资源时,相应的进程被挂起。只有在资源被释放时,进程才再次变...
分类:
其他好文 时间:
2014-05-18 18:43:39
阅读次数:
294
(一)kill和raise函数
kill函数将信号发送给进程或进程组。raise函数则允许进程自身发送信号。
#include
#include
int kill(pid_t pid, int sig);
int raise(int signo); //返回值:若成功则返回0,若出错则返回-1。
参数:pid参数有4种...
分类:
系统相关 时间:
2014-05-18 08:50:13
阅读次数:
360
(一)不可靠信号
对前面说的信号,是不可靠的,不可靠指的是信号可能会丢失:一个信号发生了,但进程却可能一直不知道这一点。另外,进程对信号的控制能力有限,只能捕捉信号或忽略它。有时用户希望通知内核阻塞一个信号:不要忽略它,在其发生时记住它,然后在进程做好准备时再通知它。这种阻塞信号的能力并不具备。
之前的版本中村咋一个问题:在进程每次接到信号对其进行处理时,随即将该信号动作复位为默认值。另一个问...
分类:
系统相关 时间:
2014-05-18 06:48:10
阅读次数:
290
IPC就是进程间通信。
进程间通信可以采用的方法很多,比如创建端口后采用组播技术进行握手连接,这里要讲到的就是通过内存文件映射的方法实现。...
分类:
Web程序 时间:
2014-05-18 06:28:37
阅读次数:
327
本文参考《Android系统源代码情景分析》,作者罗升阳
一、测试代码:
~/Android/external/binder/server
----FregServer.cpp
~/Android/external/binder/common
----IFregService.cpp
...
分类:
移动开发 时间:
2014-05-18 02:54:20
阅读次数:
552
public class MonitorTools { /// ///
获取具体进程的内存,线程等参数情况 /// /// public static void getWorkingSet(string proces...
分类:
其他好文 时间:
2014-05-18 01:01:34
阅读次数:
498
------《面向模式的软件架构》(卷4)------支持分布式的3个层次的技术:Ad
hoc网络编程、结构化通信、中间件。1.Ad
hoc网络编程:主要依靠进程间通信机制(IPC)如共享内存、管道、套接字(socket)。2.结构化通信:通过提供较高层次的通信机制,避免了应用代码与底层IPC机制的...
分类:
其他好文 时间:
2014-05-17 23:44:39
阅读次数:
508
写脚本的时候,经常需要用到超时控制。看《shell专家编程》时看到一个好例:修改了一下,1.超过timeout时间还没执行完,则kill进程,发邮件告警:set-xmailSend(){
mailContent="xxxx Web response time over 5 seconds" echo...
分类:
其他好文 时间:
2014-05-17 23:30:14
阅读次数:
497
-----------android培训、java培训、java学习型技术博客、期待与您交流!---------进程和线程进程是正在进行中的程序,指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程。Java程序的进程里有几个线程:主线程,垃圾回收线程(后台线程)...
分类:
编程语言 时间:
2014-05-17 23:27:09
阅读次数:
536
常规篇:首先,用ps查看进程,方法如下:$ ps -ef……smx 1822 1 0
11:38 ? 00:00:49 gnome-terminalsmx 1823 1822 0 11:38 ? 00:00:00
gnome-pty-helpersmx 1824 1822 0 11:38 pts/0...
分类:
系统相关 时间:
2014-05-17 23:07:45
阅读次数:
614