交通923、927操作系统电子课件zgsosjiaoan_第1页
交通923、927操作系统电子课件zgsosjiaoan_第2页
交通923、927操作系统电子课件zgsosjiaoan_第3页
交通923、927操作系统电子课件zgsosjiaoan_第4页
交通923、927操作系统电子课件zgsosjiaoan_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

118三月2023北京交通大学计算机学院主讲教师:翟高寿(副教授)联系电话:(办)电子邮件:制作人:翟高寿制作单位:北京交通大学计算机学院《操作系统》218三月2023北京交通大学计算机学院第二章进程管理2.1进程的基本概念2.2进程控制2.3进程同步2.4经典进程同步问题2.5进程通信2.6管程与线程318三月2023北京交通大学计算机学院2.5

进程通信2.5.1进程通信概念及分类2.5.2消息传递通信实现方式2.5.3消息传递系统实现若干问题2.5.4消息缓冲队列通信机制418三月2023北京交通大学计算机学院进程通信概念与实现机制进程通信概念

指进程之间的信息交换实现机制低级进程通信:效率低,操作系统仅提供共享存储器,通信对用户不透明和不方便高级进程通信:能传送大量数据,效率高,进程通信实现细节由操作系统提供,整个通信过程对用户透明,通信程序编制简单518三月2023北京交通大学计算机学院进程通信的类型共享存储器系统基于共享数据结构的通信方式基于共享存储区的通信方式消息传递系统直接/间接通信方式管道通信管道概念协调机制:互斥、同步、通信前提618三月2023北京交通大学计算机学院2.5

进程通信2.5.1进程通信概念及分类2.5.2消息传递通信实现方式2.5.3消息传递系统实现若干问题2.5.4消息缓冲队列通信机制718三月2023北京交通大学计算机学院直接通信方式通信原语Send(Receiver,message)Receive(Sender,message)一个接收进程可与多个发送进程通信打印进程Sender无法事先指定基于进程直接通信原语的应用生产者-消费者通信过程818三月2023北京交通大学计算机学院基于通信原语的生产者子程序设计producer:Varnextp:item;beginrepeatproduceaniteminnextp;

wait(empty);wait(mutex);

buffer[in]nextp;in(in+1)modn;

signal(mutex);signal(full);untilfalse;endSend(consumer,nextp);918三月2023北京交通大学计算机学院基于通信原语的消费者子程序设计consumer:Varnextc:item;beginrepeat

wait(full);wait(mutex);

nextcbuffer[out];out(out+1)modn;signal(mutex);signal(empty);

consumetheiteminnextc;untilfalse;endReceive(producer,nextc);1018三月2023北京交通大学计算机学院间接通信方式信箱进程间通信有关共享数据结构的中间实体由操作系统或用户进程创建私有/公有/共享信箱可实现实时/非实时通信通信原语信箱的创建和撤销、消息的发送和接收发送/接收进程间存在的四种关系一对一、多对一、一对多、多对多1118三月2023北京交通大学计算机学院2.5

进程通信2.5.1进程通信概念及分类2.5.2消息传递通信实现方式2.5.3消息传递系统实现若干问题2.5.4消息缓冲队列通信机制1218三月2023北京交通大学计算机学院消息传递系统中的几个问题通信链路显式/隐式建立(计算机网络/单机)点-点或多点连接通信链路单向/双向通信链路无容量/有容量通信链路(缓冲区)消息格式有消息头和消息正文构成,分定/变长两种进程同步方式发送/接收进程阻塞与否(三种情况)1318三月2023北京交通大学计算机学院2.5

进程通信2.5.1进程通信概念及分类2.5.2消息传递通信实现方式2.5.3消息传递系统实现若干问题2.5.4消息缓冲队列通信机制1418三月2023北京交通大学计算机学院消息缓冲队列通信机制-数据结构

消息缓冲区typeMessageBuffer=recordSender;//发送者进程标识符

Size;//消息长度

Text;//消息正文

Next;//指向下一缓冲区的指针End;PCB通信数据项typePCB=recordMessageQueue;//队首指针

mutex;//消息队列互斥信号量

Semphore;//消息队列资源信号量

……End;1518三月2023北京交通大学计算机学院消息缓冲队列通信机制示意图Send(B,SA)……Sender:ASize:5Text:Hello…………Receive(RB)……Sender:ASize:5Text:Hello………………MessageQueueMutexSemphore……Sender:ASize:5Text:HelloNext:0发送区接收区进程A进程BPCB(B)队首消息缓冲区1618三月2023北京交通大学计算机学院消息缓冲队列通信机制-发送原语ProcedureSend(Receiver,SA)Begingetbuf(SA.Size,Bufferi);Bufferi.SenderSA.Sender;Bufferi.Size

SA.Size;

Bufferi.Text

SA.Text;Bufferi.Next0;getid(PCB_Set,Receiver,PID);wait(PID.mutex);insert(PID.MessageQueue,Bufferi);signal(PID.mutex);signal(PID.Semphore);End;1718三月2023北京交通大学计算机学院消息缓冲队列通信机制-接收原语ProcedureReceive(RB)BeginPIDInternalNameOfProcess;wait(PID.Semphore);wait(PID.mutex);remove(PID.MessageQueue,Bufferj);signal(PID.mutex);RB.SenderBufferj.Sender;RB.SizeBufferj.Size;

RB.TextBufferj.Text;End;1818三月2023北京交通大学计算机学院2.5

进程通信2.5.1进程通信概念及分类2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论