直接通信和间接通信 直接通信:信息直接传递给接收方,如管道。 在发送时,指定接收方的地址或标识,也可以指定多个接收方或广播式地址; 在接收时,允许接收来自任意发送方的消息,并在读出消息的同时获取发送方的地址。 间接通信:借助于收发双方进程之外的共享数据结构作为通信中转,如消息队列。 管道:用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件(pipe文件) ?常用于命令行所指定的输入输出重定向和管道命令。 ?在使用管道前要建立相应的管道,然后才可使用。 管道(pipe)通讯 无名管道:用于父子进程或子进程间通信 有名管道:用于父进程间通信(又称FIFO通信) 例:MS DOS命令 DIR|MORE 进程间数据交换以消息为单位 应用系统使用系统提供的一组通信原语来实现通信消息的发送不需要接收方准备好,随时可发送。 消息(message)缓冲通讯 诸进程通过共享存储区中的数据的读或写来实现通信 应用程序实现对共享存储区访问的互斥与同步 是进程间通信最有效的机制 相当于内存,可以任意读写和使用任意数据结构,需要进程互斥和同步的辅助来确保数据一致性 共享存储区(shared memory) 6 死锁(DEADLOCK) 死锁:当一个进程提出使用某资源的请求后,使系统中的一些进程处于无休止的阻塞状态,若无外界干预,它们将永远不能退出阻塞状态。 死锁发生原因: 系统资源不足
原创力文档

文档评论(0)