AT&T的贝尔实验室,对Unix早期的进程间通信进行了改进和扩充,形成了"systemVIPC",其通信进程主要局限在单个计算机内。IPC对象指的是共享内存(sharememory)、消息队列(messagequeue)和信号灯集(semaphore)。信号灯(semaphore),也叫信号量。它是不同进程间或一个给定进程..
分类:
系统相关 时间:
2016-07-23 07:36:58
阅读次数:
361
1、生产者消费者问题三种关系:生产者--生产者(互斥);消费者-消费者(互斥);生产者--消费者(互斥同步)两个角色:生产者;消费者一种生产场所:缓冲区2、环形队列(缓冲区)数据结构:可以有多种,这里选用数组,逻辑上将a[0]和a[size-1]相连构成环形队列判断空/判断满:..
分类:
其他好文 时间:
2016-07-20 19:49:13
阅读次数:
309
之前有写过SystemV的信号量机制,现在是信号。这里的信号和前面的信号量是不同的。这里的信号是进程给操作系统或进程的某种信息,让操作系统或者其他进程做出某种反应。
信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送...
分类:
系统相关 时间:
2016-07-17 16:06:50
阅读次数:
402
【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了 ...
分类:
系统相关 时间:
2016-07-15 23:50:25
阅读次数:
314
信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式。在Linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某种程序发生了什么事件,还可以给进程传递数据。 一、信号的来源 信号的来源可以有很多种试,按照产生条件的不同可以分为硬件和软件两 ...
分类:
系统相关 时间:
2016-07-05 23:59:18
阅读次数:
520
1.什么是信号量信号量是一种特殊的变量,访问具有原子性。只允许对它进行两个操作:1)等待信号量当信号量值为0时,程序等待;当信号量值大于0时,信号量减1,程序继续运行。2)发送信号量将信号量值加1。 我们使用信号量,来解决进程或线程间共享资源引发的同步问题。 2.Linux中信号量的使用Linux提 ...
分类:
系统相关 时间:
2016-06-24 18:59:45
阅读次数:
225
使用 sigaction 函数: signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受 到了一定的限制。而 POSIX 标准定义的信号处理接口是 sigaction 函数,其接口头文件及原型如下: #include <signal.h> ...
分类:
系统相关 时间:
2016-06-24 01:46:11
阅读次数:
231
pause函数: 功能:让进程暂停直到信号出现 #include<unistd.h> intpause(); 函数说明:pause()会令目前的进程暂停(进入睡眠状态),直至信号(signal)所中断。 返回值:只返回-1。 说明: 当程序运行时,pause会使当前的进程挂起(进入睡眠状态),直到我 ...
分类:
系统相关 时间:
2016-06-24 01:42:32
阅读次数:
179
概念 linux信号量:允许多个线程同时进入临界区,可以用于进程间的同步。 和互斥锁(mutex)的区别:互斥锁只允许一个线程进入临界区。 所在头文件:semaphore.h 主要函数 初始化函数 int sem_init(sem_t *sem, int pshared, unsigned int ...
分类:
系统相关 时间:
2016-05-29 21:26:47
阅读次数:
290