哪些网站是php,给网站划分栏目,三里河网站建设公司,wordpress文章怎么设置固定连接1. 概述
进程间通信的原因:
进程之间要保持独立, 也需要通信, 保证相对独立性的同时还需要去确保进程间的沟通.
1.1 通信模型
IPC facility提供2个操作:
send(message) -- 消息大小固定或者可变receive(message)
如果P和Q想通信, 需要:
在它们之间建立通信链路通过 send/…1. 概述
进程间通信的原因:
进程之间要保持独立, 也需要通信, 保证相对独立性的同时还需要去确保进程间的沟通.
1.1 通信模型
IPC facility提供2个操作:
send(message) -- 消息大小固定或者可变receive(message)
如果P和Q想通信, 需要:
在它们之间建立通信链路通过 send/receive交换消息
通信链路的实现:
物理(例如, 共享内存, 硬件总线)逻辑(例如, 逻辑属性)
1.2 直接及间接通信
假如进程A, B需要进行通信, 有以下两种方式:
进程A把消息先发给内核, 由内核再转发给进程B.进程A和B直接进行通信.
那么第一种方式就是间接通信, 第二种方式是直接通信.
为了能够实现有效正确的通信, 直接/间接通信需要有以下注意事项:
直接通信:
进程必须正确的命名对方:send(P, message) -- 发送信息到进程Preceive(Q, message) 从进程Q接受消息通信链路的属性自动建立链路一条链路恰好对应一对通信进程每对进程之间只有一个链接存在 链接可以是单向的, 但通常为双向的间接通信:
定向从消息队列接收消息每个消息队列都有一个唯一的ID只有它们共享了一个消息队列, 进程才能够通信通信链路的属性只有进程共享一个共同的消息队列, 才建立链路链路可以与许多进程相关联每对进程可以共享多个通信链路连接可以是单向或双向操作创建一个新的消息队列通过消息队列发送和接收消息销毁消息队列原语的定义如下: send(A, message) --- 发送消息到队列A receive(A, message) --- 从队列A接受消息 1.3 阻塞与非阻塞
消息传递可以是阻塞或非阻塞
阻断被认为是同步的:
Blocking send has the sender block until the message is receivedBlocking receive has the receiver block until a message is available
非阻断被认为是异步的:
Non-blocking send has the sender send the message and continueNon-blocking receive has the receiver receive a valid message or null
1.4 通信链路缓冲
队列的消息被附加到链路, 可以是以下3种方式之一:
0容量 - 0 messages, 发送方必须等待接收方(阻塞传递)有限容量 - n messages的有限长度, 如果队列满了那么发送方就必须等待无限容量 - 无限长度, 发送方不需要等待
2. 信号
Signal:
软件中断通知事件处理Example: SIGFPE, SIGKILL, SIGUSR1, SIGTOP, SIGCONT
接收到信号时会发生什么:
Catch: 指定信号处理函数被调用Ignore: 依赖操作系统的默认操作(Example: Abort, memory, dump, suspend or resume process)Mask: 闭塞信号因此不会传送, 可能是暂时的(当处理同样类型的信号)
不足:
不能传输要交换的任何数据
3. 管道
管道是用来进行数据交换的.
4. 消息队列
消息队列按FIFO来管理消息:
Message: 作为一个和字节序列存储Message Queues: 消息数组FIFO FIFO configuration
5. 共享内存
进程:
每个进程都有私有地址空间在每个地址空间内, 明确地设置了共享内存段
优点:
快速, 方便地共享数据
不足:
必须同步数据访问