操作系统---进程之间通信都有哪些方式?

用于进程间通讯(IPC)的四种不同技术:

1. 消息传递(管道,FIFO,posix和system v消息队列)

    管道pipe:管道是单个进程创建的,它却很少在单个进程内使用。管道的典型用途是:两个进程(一个父进程,一个子进程)提高进程间通信的手段。

    管道没有名字,它只能用于有一个共同祖先进程的各个进程之间。两个无亲缘关系的进程间是不能通过管道进行IPC的。在unix中,FIFO类似于管道,它是一个单向数据流,不同与管道的是,每个FIFO有一个路径名与之关联,从而无亲缘关系的进程访问同一个FIFO,可以进行IPC,因此FIFO也称为有名管道。

    posix和system V消息队列,消息队列可认为是一个消息链表。每个消息都是一个记录,在某个进程往一个队列写入消息之前,并不需要另外某个进程在该队列上等待消息的到达。对管道和FIFO,除非读者已存在,否则先有写入者是没有意义的。队列中的每个消息有如下属性:1.一个无符号整数优先级(posix)或者一个长整型类型(System V)。2.消息的数据部分长度。3.数据本身

2. 同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯)

3. 共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区) 

4. 过程调用(Solaris门,Sun RPC)


你可能感兴趣的:(内功修炼,内功修炼)