进程间通信机制的分析比较.ppt

本文观看结束!!! 分类 二值信号灯:信号灯的值只能取0或1,类似于互斥锁。 但两者有不同:信号灯强调共享资源,只要共享资源可用,其他进程同样可以修改信号灯的值;互斥锁更强调进程,占用资源的进程使用完资源后,必须由进程本身来解锁。 计数信号灯:信号灯的值可以取任意非负值。 共享内存 共享内存 共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。 共享内存实现步骤 一、创建共享内存,使用shmget函数。 二、映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数。 创建 int shmget ( key_t key, int size, int shmflg ) key标识共享内存的键值: 0/IPC_PRIVATE。 当key的取值为IPC_PRIVATE,则函数shmget()将创建一块新的共享内存;如果key的取值为0,而参数shmflg中又设置IPC_PRIVATE这个标志,则同样会创建一块新的共享内存。 返回值:如果成功,返回共享内存标识符;如果失败,返回-1。 映射 int shmat ( int shmid, char *shmaddr, int flag) 参数: shmid:shmget函数返回的共享存储标识符 f

文档评论(0)

1亿VIP精品文档

相关文档