3-2010-2011-高级操作系统-进程间通信2.pdf
文本预览下载声明
高级操作系统
ADVANCED OPERATING
SYSTEM
北京大学信息学院
EECS of Peking University
2010-2011
进程同步与通信
基本概念
同步机制——信号量
同步机制——管程
进程间通信机制
实例
死锁
四、进程间通信
概述
基本通信方式
1.概述
问题的提出
P.V操作只能传递简单的信号,不能交换大
量信息——低级通信原语
如果要在进程间传递大量信息则要用高级通
信原语,称为进程间通信IPC
2. IPC的形式
同步
互斥量、条件变量、各类锁、信号
量
消息传递
管道、消息队列
共享内存
远程过程调用
3.消息传递机制
系统提供了两个高级通信原语:send和
receive
send(destination,message) :
当要进行消息传递时执行send
receive(source,message) :
当接收者要接收消息时执行receive
一种消息传递的实现方案:
消息缓冲
在内存中开设缓冲区,发送进程将消息送入缓冲区,
接收进程接收传递来的缓冲区
消息缓冲(1/5)
有界缓冲区工作原理:
在操作系统空间设置一组缓冲区,当发送
进程需要发送消息时,执行send系统调用,
产生自愿性中断,进入操作系统,操作系
统为发送进程分配一个空缓冲区,并将所
发送的消息从发送进程copy到缓冲区中,
然后将该载有消息的缓冲区连接到接收进
程的消息链链尾,如此就完成了发送过程。
发送进程返回到用户态继续执行
消息缓冲(2/5)
(续:有界缓冲区工作原理)
在以后某个时刻,当接收进程执行到
receive接收原语时,也产生自愿性中断
进入操作系统,由操作系统将载有消息的
缓冲区从消息链中取出,并把消息内容
copy到接收进程空间,之后收回缓冲区,
如此就完成了消息的接收,接收进程返回
到用户态继续进行
消息缓冲(3/5)
发送进程 S 接收进程 R
消息
PCB 消息链指针
消息
Receive(pid, N)
Send(R, M)
M: N: SIZE:消息长度
SIZE:消息长度 TEXT:消息正文
TEXT:消息正文
消息
消息缓冲(4/5)
消息缓冲区结构:
消息长度
消息正文
显示全部