《操作系统第10讲:第3章进程管理续4通信.ppt》由会员分享,可在线阅读,更多相关《操作系统第10讲:第3章进程管理续4通信.ppt(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022/10/281操作系统第操作系统第1010讲讲第第3 3章章 进程管理进程管理(4)(进程通信进程通信)主讲主讲:闫新庆闫新庆2012 32022/10/282第第3 3章章 进程管理进程管理内容提纲内容提纲3.1 3.1 认识进程前的准备认识进程前的准备 3.2 3.2 进程的概念与描述进程的概念与描述3.3 3.3 进程状态及其转换进程状态及其转换 3.4 3.4 进程控制进程控制3.5 3.5 进程互斥与同步进程互斥与同步 3.6 3.6 进程通信进程通信 3.7 3.7 死锁问题死锁问题 3.8 3.8 线程与超级线程线程与超级线程 本章小结本章小结 习题习题2022/10/2
2、833.7 3.7 进程通信进程通信导语导语:进程通信是指进程通信是指进程间互相传递信息。操作系统可以被看作是各种进程组成。这些进程都具有各自的独立功能,且大多数被外部需要而启动执行。一般来说,进程间的通信可以划分为二种:即控制信息的传送(低级通信)大批量数据传送(高级通信)进程间同步或互斥,也是使用锁或信号量进行通信来实现的。低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用。高级通信要传送大量数据。高级通信的目的不是为了控制进程的执行速度,而是为了交换信息。2022/10/2843.7 3.7 进程通信进程通信一、进程间的通信一、进程间的通信1 1定义:定义:进程之间相互
3、传递消息的过程称为进程间的通信。进程之间相互传递消息的过程称为进程间的通信。2 2功能:功能:为协调某一任务,通过发送消息,使进程之间保持一定的联系。为协调某一任务,通过发送消息,使进程之间保持一定的联系。二、进程通信类型二、进程通信类型-低级通信低级通信特特点点:只只能能用用于于少少量量的的“状状态态和和数数据据控控制制信信息息”通通信信。适适用用于于同同步步与与互互斥斥机制,传送的是控制信息,机制,传送的是控制信息,1 19 9个字节。)个字节。)主主从从式式:解解决决进进程程能能否否继继续续执执行行下下去去。(有有固固定定的的主主从从关关系系,键键盘盘与与显显示示,计算与打印计算与打印(
4、读、读、)等)其特点等)其特点:从进程动作受主进程控制。从进程动作受主进程控制。主进程可以使用从进程提供的数据。主进程可以使用从进程提供的数据。主从之间的关系是固定的主从之间的关系是固定的 2022/10/2853.7 3.7 进程通信进程通信二进程通信类型二进程通信类型低级通信低级通信会会话话式式:(共共享享存存储储区区数数据据结结构构的的交交互互式式进进程程间间通通信信方方式式,许许可可式式通通信信方方式式,如如用用户户进进程程与与服服务务进进程程,如如申申请请读读写写磁磁盘盘的的进进程程与完成读写操作的进程。与完成读写操作的进程。特点特点:使用进程必须得到服务进程的许可才能激活与使用。使
5、用进程必须得到服务进程的许可才能激活与使用。服服务务进进程程根根据据使使用用进进程程要要求求提提供供服服务务,服服务务控控制制由由服服务务进进程程自身完成。自身完成。两者之间存在固定关系。两者之间存在固定关系。只能用于少量的状态和据通信。只能用于少量的状态和据通信。2022/10/2863.7 3.7 进程通信进程通信三、进程通信类型三、进程通信类型高级通信高级通信1 1 类型类型:(1).(1).消息通信机制(公用缓冲区,消息通信机制(公用缓冲区,19731973年年HansenHansen提出)提出)消息或邮箱机制则无论接收进程是否已准备好接收消息,发送进程都将把所要发送的消息送入缓冲区或
6、邮箱。消息的一般形式由发送进程名、接收进程名、数据和有关数据的操作个部分组成。(图)。图消息的组成图消息的组成发送进程发送进程接受进程接受进程操作操作数据数据2022/10/2873.7 3.7 进程通信进程通信 消息或邮箱机制的特点:只要存在空缓冲区或邮箱,发送进程就可以发送消息。只要存在空缓冲区或邮箱,发送进程就可以发送消息。发送进程和接收进程之间无直接连接关系,接收进程可能在收到发送进程和接收进程之间无直接连接关系,接收进程可能在收到 某个发送进程发来的消息之后,又转去接收另一个发送进程发来某个发送进程发来的消息之后,又转去接收另一个发送进程发来 的消息。的消息。发送进程和接收进程之间存
7、在缓冲区或邮箱(图)用来存放发送进程和接收进程之间存在缓冲区或邮箱(图)用来存放 被传送消息。被传送消息。(2).(2).共享存储区方式共享存储区方式与前面三种方式不同,共享存储区方式不要求数据移动。两个需要互与前面三种方式不同,共享存储区方式不要求数据移动。两个需要互相交换信息的进程通过对同一共享数据区(相交换信息的进程通过对同一共享数据区(shared memoryshared memory)的操作)的操作来达到互相通信的目的。这个共享数据区是每个互相通信进程的一来达到互相通信的目的。这个共享数据区是每个互相通信进程的一个组成部分个组成部分。图缓冲区或邮箱通信结构图缓冲区或邮箱通信结构Ps
8、Pr缓冲区或邮箱缓冲区或邮箱2022/10/2883.7 3.7 进程通信进程通信 低低级级通通信信只只能能获获得得进进程程是是否否能能够够继继续续下下去去的的简简单单信信息息(仅仅作作为为一一种种进程控制的标志),如信号量及进程控制的标志),如信号量及PVPV操作操作。高级通信能够解决一个进程将大批量数据传递给另一个进程的问题高级通信能够解决一个进程将大批量数据传递给另一个进程的问题。1.1.基于共享存储区的通信方式,基于共享存储区的通信方式,是效率最高的一种通信机制是效率最高的一种通信机制 原原理理:在在内内存存中中开开辟辟一一个个区区域域,并并连连入入多多个个进进程程的的虚虚拟拟地地址址
9、空空间间,当当一一个个进进程程在在该该空空间间(缓缓冲冲区区)写写入入数数据据后后,另另一一个个进进程程就就可可以以从从所所连连的的虚虚拟拟地地址址空空间间直直接接进进入入该该区区读读出出数数据据,就就好好像像使使用用私私有有数数据据一一样样方方便便。进进程程要要求求分分配配一一个个共共享享存存储储时时,核核心心是是先先要要按按进进程程提提供供的的关关键键字字值值,查查找找系系统统共共享享存存储储区区段段表表,表表存存在在共共享享段段,则则说说明明该该共共享享段段已已被被其其它它进进程程创创建建,如如不不存存在在,则则建建立立一一个个空空闲闲页页表表区区(包包括共享段的关括共享段的关键键字,大
10、小,首地址,存取控制字,大小,首地址,存取控制权权等)。等)。2022/10/2893.7 3.7 进程通信进程通信 特特点点:效效率率高高,一一个个进进程程可可以以分分配配多多个个共共享享存存储储区区,最最大大值由系统决定。值由系统决定。2 2消息通信机制消息通信机制(公用缓冲区,(公用缓冲区,19731973年年HansenHansen提出)提出)原理原理:消息通信机构管理一组空闲缓冲区消息。消息通信机构管理一组空闲缓冲区消息。A A进进程程向向B B进进程程发发送送消消息息,申申请请一一个个缓缓冲冲区区,填填写写有有关关 信息后,发送信号给信息后,发送信号给B B进程。进程。B B进程读
11、取数据并释放消息缓冲区。进程读取数据并释放消息缓冲区。2022/10/28103.7 3.7 进程通信进程通信三、进程通信类型三、进程通信类型高级通信高级通信(续续1)1)2 2消息通信机制(消息通信机制(续续)控制信息控制信息 Send-pia Send-pia 发送进程标志。发送进程标志。Iype Iype 消息类型。消息类型。Size Size 消息长度。消息长度。Text Text 消息正文。消息正文。Next-ptr Next-ptr 下一个消息的指针。下一个消息的指针。PCB PCB 有关管理消息的数据项。有关管理消息的数据项。Hd-ptr Hd-ptr 进程已收到的消息队列的指针
12、进程已收到的消息队列的指针Mutex Mutex 对消息队列进行操作的互斥信号灯。对消息队列进行操作的互斥信号灯。Ssm Ssm 接受与发送进程之间的同步信号量,其值表示接受的消息数接受与发送进程之间的同步信号量,其值表示接受的消息数。OSOS提供接受和发送两个调用系统。提供接受和发送两个调用系统。2022/10/28113.7 3.7 进程通信进程通信三、进程通信类型三、进程通信类型-高级通信高级通信(续续2)2)2 2消息通信消息通信机制机制(续续)发送进程发送进程 开辟一个发送缓冲区开辟一个发送缓冲区 填入消息及控制信息填入消息及控制信息 调用发送消息系统,调用发送消息系统,spn-pi
13、rspn-pir指向缓冲区首地址。指向缓冲区首地址。(5)(5)接收接收进进程程 开辟一个接收开辟一个接收缓缓冲区冲区 调调用接收消息系用接收消息系统调统调用。用。2022/10/28123.7 3.7 进程通信进程通信三、进程通信类型三、进程通信类型-高级通信高级通信(续续3)3)4 4邮邮箱箱通通信信:邮邮箱箱通通信信就就是是由由发发送送进进程程申申请请建建立立一一与与接接收收进进程程链链接接的的邮邮箱箱。发发送送进进程程把把消消息息送送往往邮邮箱箱,接接收收进进程程从从邮邮箱箱中中取取出出消消息息,从从而而完完成成进进程程间间信信息息交交换换。设设置置邮邮箱箱的的最最大大好好处处就就是是
14、发发送送进进程程和和接接收收进进程程之之间间没没有有处处理理时时间间上上的的限限制制。一一个个邮邮箱箱可可考考虑虑成成发发送送进进程程与与接接收收进进程程之之间间的的大大小小固固定定的的私私有有数数据据结结构构,它它不不像像缓缓冲冲区区那那样样被被系系统统内内所所有有进进程程共共享享。邮邮箱箱由由邮邮箱箱头头和和邮邮箱箱体体组组成成。其其中中邮邮箱箱头头描描述述邮邮箱箱名名称称、邮邮箱箱大大小小、邮邮箱箱方方向向以以及及拥拥有有该该邮邮箱箱的的进进程程名名等等。邮邮箱箱体体主要用来存放消息。主要用来存放消息。邮箱头发送进程接受进程 邮箱体 deposit(m)remove(m)图图 3.17
15、邮箱通信结构邮箱通信结构2022/10/28133.7 3.7 进程通信进程通信三、进程通信类型三、进程通信类型-高级通信高级通信(续续4)4)3 3邮箱通信邮箱通信(续续)信箱类型信箱类型 公公用用信信箱箱OSOS创创建建,由由系系统统核核准准使使用用,系系统统运运行行期期间,该信箱始终存在。间,该信箱始终存在。专用信箱专用信箱由某个进程创建,创建后指明用户名。由某个进程创建,创建后指明用户名。私用信号量私用信号量由用户进程创建,用户由用户进程创建,用户 信箱进程之间的彼此关系信箱进程之间的彼此关系 1 1对对1:1:收收发发进进程程之之间间建建立立一一条条进进程程间间的的通通信信链链路路。
16、它它们们之间的交互之间的交互 不受其它进程影响。不受其它进程影响。1 1对多对多:广播式,客户服务模式。广播式,客户服务模式。2022/10/28143.7 3.7 进程通信进程通信多多对对1:1:客客户户机机对对服服务务器器模模式式,允允许许一一个个和和多多个个进进程程之之间间进行交互。进行交互。多多对对多多:公公用用信信箱箱关关系系,多多个个进进程程可可以以向向其其发发送送,也也可可以接收公用以接收公用 信箱。信箱。邮箱通信条件邮箱通信条件 邮箱为空才能发。邮箱为空才能发。邮邮箱箱存存在在数数据据才才能能接接收收。收收发发进进程程之之间间至至少少存存在在一一个个邮邮箱。箱。2022/10/
17、28153.7 3.7 进程通信进程通信三、进程通信类型三、进程通信类型-高级通信高级通信(续续5)5)4 4管道通信管道通信 通通过过管管道道文文件件:连连接接一一个个读读进进程程和和一一个个写写进进程程的的文文件件称称之之为为管管道文件,以实现两者之间的通信。道文件,以实现两者之间的通信。特征特征 采用采用FIFOFIFO的数据组织传输方式。的数据组织传输方式。能传送任意量的数据。能传送任意量的数据。写满则发送进程自我阻塞,读空则阻塞。写满则发送进程自我阻塞,读空则阻塞。通信机制的三方协调能力通信机制的三方协调能力 接、收进程双方都存在才能通信。接、收进程双方都存在才能通信。互斥:写不能读
18、,读不能写。互斥:写不能读,读不能写。同步,收、发进程互相协作的机制同步,收、发进程互相协作的机制 2022/10/2816第第1010讲小结讲小结2022/10/2817 君辞西行归塞上,泪两行,月无光。秦岭八百君辞西行归塞上,泪两行,月无光。秦岭八百无黛色,商都戚容,中秋似冬凉。嫦娥相伴跨三省,无黛色,商都戚容,中秋似冬凉。嫦娥相伴跨三省,衷情长,塞外凉。王伦捧酒踏歌过,太白惊诧,琼衷情长,塞外凉。王伦捧酒踏歌过,太白惊诧,琼浆何人当?李广邀月云台上,论汉赋,话安阳。沙浆何人当?李广邀月云台上,论汉赋,话安阳。沙湖为酒满汉席;婵娟舞袖,月明泻银光。湖为酒满汉席;婵娟舞袖,月明泻银光。注注1:辛亥中秋丑时一刻,君辞西行,抵府,万般惆怅,信手此文,以志纪念。:辛亥中秋丑时一刻,君辞西行,抵府,万般惆怅,信手此文,以志纪念。注注2:商都:商都郑州别称;嫦娥郑州别称;嫦娥指赵曙夫人孙秀英;三省指赵曙夫人孙秀英;三省河南、陕西、宁夏河南、陕西、宁夏注注3:王伦:王伦诗仙李白好友,善制酒。诗仙李白好友,善制酒。注注4:李广:李广汉代名将,常驻银川守土御疆;沙湖汉代名将,常驻银川守土御疆;沙湖宁夏大型淡水湖,距银川约宁夏大型淡水湖,距银川约90kg送赵曙中秋西辞归夏送赵曙中秋西辞归夏贺兰词,贺兰词,2007-09-25