2013年9月16日

System IPC 与Posix IPC(msg消息对列)

摘要: 系统消息队列:一、消息队列基本概念 系统V消息队列是随内核持续的,只有在内核重起或者显示删除一个消息队列时,该消息队列才会真正被删除。因此系统中记录消息队列的数据结构(struct ipc_ids msg_ids)位于内核中,系统中的所有消息队列都可以在结构msg_ids中找到访问入口。消息队列就是一个消息的链表。每个消息队列都有一个队列头,用结构struct msg_queue来描述(参见 附录 2)。队列头中包含了该消息队列的大量信息,包括消息队列键值、用户ID、组ID、消息队列中消息数目等等,甚至记录了最近对消息队列读写进程的ID。读者可以访问这些信息,... 阅读全文

posted @ 2013-09-16 18:39 凌峰布衣 阅读(1281) 评论(0) 推荐(0) 编辑

System IPC 与Posix IPC(共享内存)

摘要: 系统v(共享内存)1.对于系统V共享内存,主要有以下几个API:shmget()、shmat()、shmdt()及shmctl()。2.shmget()用来获得共享内存区域的ID,如果不存在指定的共享区域就创建相应的区域。shmat()把共享内存区域映射到调用进程的地址空间 中去,这样,进程就可以方便地对共享区域进行访问操作。shmdt()调用用来解除进程对共享内存区域的映射。shmctl实现对共享内存区域的控制操 作。这里我们不对这些系统调用作具体的介绍,读者可参考相应的手册页面,后面的范例中将给出它们的调用方法。 注:shmget的内部实现包含了许多重要的系统V共享内存机制;... 阅读全文

posted @ 2013-09-16 14:11 凌峰布衣 阅读(1469) 评论(0) 推荐(0) 编辑

导航