3.5进程通信 ●并发进程之间的交往本质上是互相交换 信息。有些情况下进程之间交换的信息 量很少,例如仅仅交换某个状态信息 有些情况下进程之间交换大批数据,例 如传送一批信息或整个文件。进程之间 互相交换信息的工作称之为进程通信 IPC (InterProcess Communication) 08:48
08:48 3.5 进程通信 ⚫ 并发进程之间的交往本质上是互相交换 信息。有些情况下进程之间交换的信息 量很少,例如仅仅交换某个状态信息。 有些情况下进程之间交换大批数据,例 如传送一批信息或整个文件。进程之间 互相交换信息的工作称之为进程通信 IPC(InterProcess Communication)
进程间通信的方式包括 通过软中断提供的信号( signal)通信机制 使用信号量及其原语操作(PV、读写锁、管程或 其他操作)控制的共享存储区( shared memory)通 信机制 ●通过管道( pipeline)提供的共享文件( shared file)通信 机制; ●使用信箱和发信/收信原语的消息传递( message passing)通信机制 其中前两种通信方式属于低级通信机制,仅适用 于集中式操作系统。消息传递机制属于高级通信机 制,共享文件通信机制是消息传递机制的变种,这 两种通信机制,既适用于集中式操作系统,又适用 于分布式操作系统。 08:48
08:48 进程间通信的方式包括 ⚫ 通过软中断提供的信号(signal)通信机制; ⚫ 使用信号量及其原语操作(PV、读写锁、管程或 其他操作)控制的共享存储区(shared memory)通 信机制; ⚫ 通过管道(pipeline)提供的共享文件(shared file)通信 机制; ⚫ 使用信箱和发信/收信原语的消息传递(message passing)通信机制。 其中前两种通信方式属于低级通信机制,仅适用 于集中式操作系统。消息传递机制属于高级通信机 制,共享文件通信机制是消息传递机制的变种,这 两种通信机制,既适用于集中式操作系统,又适用 于分布式操作系统
3.5.1信号通信机制 信号机制又称软中断,是一种简单的通信机 制,通过发送一个指定信号来通知进程某个 异常事件发生。 信号不但能从内核发给一个进程,也能由 个进程发给另一个进程。 08:48
08:48 3.5.1 信号通信机制 ⚫ 信号机制又称软中断,是一种简单的通信机 制,通过发送一个指定信号来通知进程某个 异常事件发生。 ⚫ 信号不但能从内核发给一个进程,也能由一 个进程发给另一个进程
Un系统信号多达几十种(不超过32种),主要分成 以下几类 与进程终止相关的信号 SIGCLD、 SIGHUP、 SIGKILI SIGCHLD等,如进程结束、进程杀死子进程, ●与进程例外事件相关的信号 SIGBUS、 SIGSEGV SIGPWR、 SIGFPE等,如进程执行特权指令、写只读区、地 址越界、总线超时,硬件故障; 与进程执行系统调用相关的信号 SIGPIPE、 SIGSYS SIGILL等如进程执行非法系统调用、管道存取错; ●与进程终端交互相关的信号 SIGINT、 SIGQUT等,如进程挂 断终端、用户按 delete键或 break健。 用户进程发信号 SIGTERM、 SIGALRM、 SIGUSR1 SIGUS2等如进程向另一进程发一个信号、要求报警; ●●跟踪进程执行的信号 SIGTRAP等。 08:48
08:48 Unix系统信号多达几十种(不超过32种),主要分成 以下几类: ⚫ ⚫与进程终止相关的信号SIGCLD、SIGHUP、SIGKILL、 SIGCHLD等,如进程结束、进程杀死子进程,; ⚫ ⚫ 与 进 程 例 外 事 件 相 关 的 信 号 SIGBUS、SIGSEGV、 SIGPWR、SIGFPE等,如进程执行特权指令、写只读区、地 址越界、总线超时,硬件故障; ⚫ ⚫与进 程执行系 统调用相 关的信号 SIGPIPE、SIGSYS、 SIGILL等,如进程执行非法系统调用、管道存取错; ⚫ ⚫ 与进程终端交互相关的信号SIGINT、SIGQUT等,如进程挂 断终端、用户按delete键或break健。 ⚫ ⚫ 用 户 进 程 发 信 号 SIGTERM、SIGALRM、SIGUSR1、 SIGUS2等,如进程向另一进程发一个信号、要求报警; ⚫ ⚫ 跟踪进程执行的信号SIGTRAP等
352共享文件通信机制 管道( pipeline)是连接读写进程的一个特 殊文件,允许进程按先进先出方式传送 数据,也能使进程同步执行操作。如下图 所示,发送进程以字符流形式把大量数 据送入管道,接收进程从管道中接收数 据,所以,也叫管道通信。 08:48
08:48 3.5.2 共享文件通信机制` ⚫ 管道(pipeline)是连接读写进程的一个特 殊文件,允许进程按先进先出方式传送 数据,也能使进程同步执行操作。如下图 所示,发送进程以字符流形式把大量数 据送入管道,接收进程从管道中接收数 据,所以,也叫管道通信