欢迎来到天天文库
浏览记录
ID:55790536
大小:487.00 KB
页数:30页
时间:2020-06-02
《华东理工815操作系统第8讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、2.5进程通信—高级通信(1)一、进程通信的类型进程通信是指进程之间的信息交换。根据所交换的信息量的多少分为:低级通信进程之间交换的信息量较少且效率低。如进程同步和互斥。高级通信进程之间交换的信息量较多且效率高。又分为:2.5进程通信—高级通信(2)共享存储器系统指进程之间通过对共享某些数据结构或共享存储区读写来交换数据。消息传递系统指进程间的通信以消息为单位,程序员可通过通信原语实现通信,按其实现方式不同可分为:直接通信方式发送进程直接把消息发送给接收进程。间接通信方式发送进程把消息发送到某个中间实体(信箱),接收进程从中取得消息。2.5进程通信
2、—高级通信(3)管道通信系统发送进程(写进程)以字符流形式将大量数据送入管道(管道:用于连接读进程和写进程以实现它们之间通信的共享文件),接收进程(读进程)从管道接收数据。一、共享存储器系统相互通信的进程通过共享数据结构和存储区进行通信,因而可进一步分为:基于共享数据结构的通信方式(低效,只适于传递少量数据)基于共享存储区的通信方式。为了传送大量数据,在存储区中划出一块共享存储区,各个进程可通过对共享存储区进行读或写数据实现通信。二、消息传递系统--直接通信方式(消息缓冲通信)(1)发送进程利用OS所提供的发送命令,直接把消息发送给接收进程。要求:
3、发送进程和接收进程都以显式方式提供对方的标识符。系统提供的两条通信原语:Send(Receiver,message);发送一个消息给接收进程;Receive(Sender,message);接收Sender发来的消息;二、消息传递系统--直接通信方式(消息缓冲通信)(2)生产者-消费者问题的解决repeat...Produceaniteminnextp;...Send(consumer,nextp);untilfalse;repeat...Receive(producer,nextc);...consumetheiteminnextc;untilf
4、alse;二、消息传递系统---间接通信方式(信箱通信)(1)发送进程把消息发送到某个中间实体(信箱),接收进程从中取得消息。系统提供的若干条原语信箱创建和撤消原语两条通信原语Send(mailbox,message)将一个消息发送给指定信箱;Receive(mailbox,message)从指定信箱中接收一个消息;信箱的分类:私用信箱(进程为自己创建)、公用信箱(操作系统创建)、共享信箱(由某进程创建,指明是共享的)二、消息传递系统---间接通信方式(信箱通信)(2)在利用信箱通信时,在发送进程和接收进程之间,存在着四种关系:一对一关系:即可以为
5、发送进程和接收进程建立一条专用的通信链路;多对一关系:允许提供服务的进程与多个用户进程进行交互,也称客户/服务器交互;一对多关系:允许一个发送进程与多个接收进程交互,使发送进程用广播的形式,发送消息;多对多关系:允许建立一个公用信箱,让多个进程都能向信箱投递消息,也可取走属于自己的消息。三、消息传递系统实现中的若干问题(1)通信链路建立通信链路(显式建立链路、隐式建立链路)通信链路的连接方法(点-点、多点)通信方式(单向、双向)通信链路的容量(无容量、有容量)三、消息传递系统实现中的若干问题(2)消息格式消息头和消息正文进程同步方式发送进程阻塞,接
6、收进程阻塞(紧密同步,无缓冲)发送进程不阻塞,接收进程阻塞(应用最广)发送进程和接收进程均不阻塞(较常见,消息队列)四、消息缓冲队列通信机制(1)消息缓冲区Typemessagebuffer=recordsender:发送消息的进程名或标识符size:发送的消息长度text:发送的消息正文next-ptr:指向下一个消息缓冲区的指针end在进程的PCB中涉及通信的数据结构mq:消息队列队首指针mutex:消息队列互斥信号量,初值为1sm:表示接收进程消息队列上消息的个数,初值为0,是控制收发进程同步的信号量四、消息缓冲队列通信机制(2)发送原语se
7、nd申请一个消息缓冲区,把发送区内容复制到这个缓冲区中;找到接收进程的PCB,执行互斥操作P(mutex);把缓冲区挂到接收进程消息队列的尾部,执行V(mutex),然后执行V(sm),即消息数加1;接收原语receive执行P(sm),查看是否有信件;执行互斥操作P(mutex),从消息队列中摘下第一个消息,执行V(mutex);把消息缓冲区内容复制到接收区,释放消息缓冲区四、消息缓冲队列通信机制(3)发送进程名:A信件长:5正文:ABCDESend(B,发送区首址)发送区消息队列首指针mutexsm发送进程名:A信件长:5正文:ABCDE后继信
8、件缓冲指针0进程B的PCB发送进程名:A信件长:5正文:ABCDEreceive(接收区首址)接收区进程A进程B2.6线程
此文档下载收益归作者所有