【Linux之路】进程间通信

来源:互联网 发布:mac硬盘新建文件夹 编辑:程序博客网 时间:2024/06/14 04:36

1, 进程间通信种类:

       1,信号 signal, (目测比较单调,数据量一定需要符合某种规范)

       2,管道 pipe, 亲缘进程(父子,兄弟)之间(命名管道可以是无亲缘进程)通信, 有点像Socket里面的outputStream  inputStream 使用范例:ls -l | wc -l将ls -l的标准输出作为wc -l 的标准输入

       3,消息队列 message: 一个消息的链接表, 进程可以读取/写入消息(要有权限) 类比于有些人想盖章, 找到有关部门, 上交材料(添加消息),某一工作人员(读取消息)处理这个事 

       4,共享内存 shared memory : 如题, 问题: 需要解决同步问题。

       5,信号量 semaphore:书上有云: 主要用作用户空间中进程之间及同一进程内不同线程之间的同步手段(我只知道操作系统中可以用信号量解决同步问题(即是互斥锁,资源量之类的)可能学到最后才会有其他想法吧)。

       6,套接字 socket, 即是俩个进程通过Input/Output Stream 传递信息。

2, 信号生命周期:

        信号诞生,

        信号在进程中注册:( 进程中task_struct 结构中包含一个指向sigaction结构数组的指针, 将信号加入信号链中(非实时信号原链中不存在才注册,实时信号直接注册)

        信号在进程中注销:非实时与实时的处理方式不同

        信号处理函数执行完毕:


0 0