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
二、网络传输模块
模块对应代码命名空间 (namespace ZPNetwork)
模块对应代码存储文件夹 (\ZoomPipeline_FuncSvr\network)
2.1 模块结构
网络传输模块负责管理监听器,并根据各个传输线程目前的负荷,把新申请接入的客户套接字描述符引导到最空闲的传输线程中执行“接受连接(Accept)”操作。该模块由如下几个类组成。...
分类:
其他好文 时间:
2014-05-18 06:44:03
阅读次数:
304
本文参考《Android系统源代码情景分析》,作者罗升阳
一、测试代码:
~/Android/external/binder/server
----FregServer.cpp
~/Android/external/binder/common
----IFregService.cpp
...
分类:
移动开发 时间:
2014-05-18 02:54:20
阅读次数:
552
常规篇:首先,用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
这属于VS2010不能编译.Net3.5的问题用VS2010创建了一个.Net
3.5的Winform项目,结果编译失败,这个问题也算是第二次碰到了,真纠结···这次不再偷懒了,把解决方法记录下来吧在64位的Windows
7下,用VS2010编译4.0以前的.Net项目会有问题。原因么,是一个叫R...
分类:
其他好文 时间:
2014-05-17 22:40:01
阅读次数:
363