内核基础 - 进程通信(三) - IPC(3)消息队列

850阅读 0评论2016-10-28 zhanglong71
分类:LINUX

内核资料收集

1. IPC消息
        进程之间可以通过IPC消息进行通信. 进程产生的每条消息都被发送到一个IPC消息队列中,这个消息一直存放在队列中直到另一个进程
    将其读走为止.
        消息是由固定大小的首部和可变长度的正文组成,可以使用一个整数值(消息类型)标识消息, 这就允许进程有选择地从消息队列中获取
    消息. 只要进程从IPC消息队列中读出一条消息,内核就把这个消息删除;因此,只能有一个进程接收一条给定的消息.

2. 收发消息函数
    进程调用msgsnd()函数发送一条消息(参数说明略)
    进程调用msgrcv()函数获得一条消息(参数说明略)
    
3. 相关限制
    为了避免资源耗尽, IPC消息队列资源在这几个方面是有限制的:
    a. IPC消息队列数(缺省为16)
    b. 每个消息的大小(缺省为8192)
    c. 队列中全部信息大小(缺省为16384)
    系统管理员可以分别修改/proc/sys/kernel/msgmni, /proc/sys/kernel/msgmnb, /proc/sys/kernel/msgmax文件调整这些值.
4. 相关数据结构
    msg_ids
    ...
上一篇: 内核基础 - 进程通信(三) - IPC(2)信号量
下一篇: 内核基础 - 进程通信(三) - IPC(4)共享内存