对于管道和FIFO来说,必须应该先有读取者存在,否则先有写入者是没有意义的。而消息队列则不同,它是一个消息链表,有足够写权限的线程可往别的队列中放置消息,有足够读权限的线程可从队列中取走消息。每个消息都是一个记录,它由发送者赋予一个优先级。在某个进程往一个队列写入消息之前,并不需要另外某个进程在该队列上等待消息的到达。消息队列是随内核的持续性,一个进程可以往某个队列写入一些消息,然后终止,再让另外...
分类:
系统相关 时间:
2014-06-20 13:31:47
阅读次数:
298
1. 哲学家进餐问题:问题描述:
五个哲学家在一个圆桌上进餐,每人的面前放了一盘意大利面,两个盘子之间有一个叉子,但是由于盘子里面的面条十分光滑,需要两个叉子才能进行就餐行为。餐桌的布局如下图所示:假设哲学家的生活中只有两个活动:吃饭和思考[吃饭维持自身之生存,思考探究生存之意义],当然这样的哲学家...
分类:
其他好文 时间:
2014-06-05 20:56:11
阅读次数:
320
如何理解Android架构设计的初心并开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程解决的问题。课程以Android的五大核心:HAL、Binder、Native
Service、Android Service(并以AMS和WMS为例)、View System为主轴,一...
分类:
移动开发 时间:
2014-06-05 18:07:46
阅读次数:
291
信号丢失检测也称无信号检测,一般当DVR/NVR某些通道没接上摄像头时,会显示黑屏无信号。而IPC无信号里无法返回任何图像信息,也就无法通过图像算法检测到。原理把彩色图像二值化,偏黑的部分为前景,其他部分为背景。对前景进行连通区域检测,求得最大连通区域面积。该面积整幅图像面积的比较即为信号丢失率。三...
分类:
其他好文 时间:
2014-06-05 15:21:30
阅读次数:
339
如何理解Android架构设计的初心并开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程解决的问题。课程以Android的五大核心:HAL、Binder、Native
Service、Android Service(并以AMS和WMS为例)、View System为主轴,一...
分类:
移动开发 时间:
2014-06-05 14:20:04
阅读次数:
322
1、网络中进程之间如何通信?
本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:
消息传递(管道、FIFO、消息队列)
同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)
共享内存(匿名的和具名的)
远程过程调用(Solaris门和Sun RPC)
但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则...
分类:
系统相关 时间:
2014-06-05 07:39:53
阅读次数:
376
System V 共享内存信息结构struct shmid_ds { struct ipc_perm
shm_perm; // operation permission struct size_t shm_segsz; // segment size pid_t
shm_lpid;...
分类:
其他好文 时间:
2014-06-03 11:20:18
阅读次数:
264
本文参考《Android系统源代码情景分析》,作者罗升阳。
一、Binder库(libbinder)代码:
~/Android/frameworks/base/libs/binder
----BpBinder.cpp
----Parcel.cpp
----ProcessState.cpp
--...
分类:
其他好文 时间:
2014-06-02 23:59:15
阅读次数:
444
IPC进程间通信+数据复制消息WM_COPYDATA IPC(Inter-Process
Communication,进程间通信)。 数据复制消息WM_COPYDATA是Windows中一个特殊的消息,通过这个消息能够在进程间传递数据。
1.WM_COPYDATA: WM_C...
分类:
其他好文 时间:
2014-06-02 08:34:57
阅读次数:
245
本文参考《Android系统源代码情景分析》,作者罗升阳。
一、Binder库(libbinder)代码:
~/Android/frameworks/base/libs/binder
----BpBinder.cpp
----Parcel.cpp
----ProcessState.cpp
--...
分类:
其他好文 时间:
2014-06-01 06:39:01
阅读次数:
1479