上次课堂内容回顾
1、什么是临界资源?
2、进程同步机制应遵循的原则是什么?
3、PV操作
1
进程通信
进程通信是指进程之间的信息交换
有人会问:信号量机制是不是在实现进程间的通信?
存在这样的问题:
1、效率低。
2、通信对用户不透明。
(程序员负担重)
2
进程通信的类型
一、共享存储器系统
共享内存储区
多个进程共享物理内存,进程把这些区域链接到自己的虚地址空间上。对这些区域的访问与进程对其虚地址空间的其它部分的操作完全相同。
3
2、基于共享存储区的通信方式
特点:在存储器中划分一块共享存储区;
进程通过存储区中的数据进行读写实现通信。
1、基于共享数据结构的通信方式
特点:要求所有进程公用某些数据结构;
程序员设置公用数据结构,处理进程间同步;
操作系统却只需要提供共享存储器。
缺点:通信方式低效,适合传递少量数据。
传送大量数据时,怎么办?
4
二、消息传递系统
特点:1、进程之间数据交换以消息为单位。
2、通信的进程之间不共享的内存;
3、发送者执行发送命令,接收者执行接收命
令,即完成了一次消息的传输;
4、传输过程对用户是透明的,由OS完成。
两种形式:直接通信方式、间接通信方式(信箱)
5
直接通信方式:发送进程将消息直接发给接收进程,挂在接收进程的消息队列上,由接收进程从自己的消息队列上取下消息,完成一次消息的通信过程。
特点:消息的传输过程中采用了一个数据结构——消息缓冲区,而且需要在进程的PCB表中增加一些内容。
6
消息缓冲通信中的数据结构
7
消息缓冲通信过程
8
图1 发送原语send的实现过程
发送区
(a)
内容→消息缓冲区
申请一个消息缓冲区
找出接收进程
B
的
PCB
表
P
(mutex)
用接收进程
B
的
PCB
表
中的
mq
将消息缓冲区挂链
V
(mutex)
V
(sm)
返回
用接收进程
B
的
PCB
表中的
mq,
找出并摘下第一个消息
V
(mutex)
将消息缓冲区内容
→
接收区
(b)
返回
找出接收进程
B
的
PCB
表
P
(sm)
P
(mutex)
释放消息缓冲区
图2 接收原语receive的实现过程
9
间接通信方式(信箱):指明一个中间媒介,即信箱。发送者执行发送命令,将消息发到指明的信箱,接收者执行接收命令时,从指定的信箱中接收消息。
该方式常用于计算机网络中,俗称电子邮件系统。
10
消息缓冲区 - read 来自淘豆网m.daumloan.com转载请标明出处.