进程通信进程间通信考研计算机考研.ppt

上传人:wuy****n92 文档编号:88494524 上传时间:2023-04-26 格式:PPT 页数:30 大小:244.99KB
返回 下载 相关 举报
进程通信进程间通信考研计算机考研.ppt_第1页
第1页 / 共30页
进程通信进程间通信考研计算机考研.ppt_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《进程通信进程间通信考研计算机考研.ppt》由会员分享,可在线阅读,更多相关《进程通信进程间通信考研计算机考研.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、SLIDE 1进程通信进程通信2.6 2.6 进程通信进程通信1 1 信号通信机制信号通信机制 2 2 共享文件通信机制共享文件通信机制 3 3 共享存储区通信机制共享存储区通信机制 4 4 消息传递通信机制消息传递通信机制 5 5 有关消息传递实现的若干问题有关消息传递实现的若干问题School of ManagementSLIDE 2进程通信进程通信进程同步进程同步是一种是一种进程通信进程通信,通过修改,通过修改信号量,进程之间可建立起联系,相信号量,进程之间可建立起联系,相互协调运行和协同工作互协调运行和协同工作进进程程协协同同工工作作时时,需需要要互互相相交交换换信信息息,有有些些情情

2、况况下下进进程程间间交交换换的的少少量量信信息息,有些情况下进程间交换大批数据。有些情况下进程间交换大批数据。进程之间互相交换信息的工作称为进程之间互相交换信息的工作称为进程通信IPC(InterProcess CommunicationInterProcess Communication)School of ManagementSLIDE 3进程通信进程通信进程间通信的方式进程间通信的方式信号(信号(signalsignal)通信机制)通信机制;共共享享存存储储区区(shared(shared memory)memory)通通信信机制机制;共共享享文文件件(shared(shared fil

3、e)file)通通信信机机制制;消消息息传传递递(message(message passing)passing)通通信信机制机制School of ManagementSLIDE 4进程通信进程通信1.1.信号(信号(signalsignal)通信机制通信机制低级通信低级通信:进程之间:进程之间控制信息控制信息的交换称为的交换称为低级通信。低级通信。一般只传送一个和几个字节的信息,达到控一般只传送一个和几个字节的信息,达到控制进程执行速度的作用。(进程的同步和互制进程执行速度的作用。(进程的同步和互斥)信号量机制作为同步工具是卓有成效的,斥)信号量机制作为同步工具是卓有成效的,但作为通讯工具

4、则不够理想,(但作为通讯工具则不够理想,(效率低。效率低。通讯对用户不透明。)通讯对用户不透明。)高级通信高级通信:用户可以直接利用操作系统所:用户可以直接利用操作系统所提供的一组通信命令,高效地传送大量数提供的一组通信命令,高效地传送大量数据的一种通信方式。据的一种通信方式。School of ManagementSLIDE 5进程通信进程通信2.2.共享存储区共享存储区(shared memory)(shared memory)通信机制通信机制 相互通讯的进程通过相互通讯的进程通过共享数据结构共享数据结构和和存存储区储区进行通讯,因而可进一步分为:进行通讯,因而可进一步分为:基于共享数据结

5、构的通讯方式基于共享数据结构的通讯方式;(低;(低效,只适于传递少量数据)效,只适于传递少量数据)基于共享存储区的通讯方式基于共享存储区的通讯方式。为了传为了传送大量数据,在存储区中划出一块共享送大量数据,在存储区中划出一块共享存储区,诸进程可通过对共享存储区进存储区,诸进程可通过对共享存储区进行读或写数据实现通讯。行读或写数据实现通讯。School of ManagementSLIDE 6进程通信进程通信1 1向系统申请共享存储向系统申请共享存储区中的一个分区区中的一个分区2 2指定该分区的关键字指定该分区的关键字3 3申请者将申请到的共申请者将申请到的共享分区挂到本进程上享分区挂到本进程上

6、4 4读写该公用存储分区读写该公用存储分区Process AProcess BShared memorykernelSchool of ManagementSLIDE 7进程通信进程通信3.3.共享文件共享文件(shared file)(shared file)通信机制通信机制管管道道(pipeline)(pipeline)是是连连接接读读写写进进程程的的一一个个特特殊殊文文件件,允允许许进进程程按按先先进进先先出出方方式式传传送送数数据据,也也能能使使进进程程同步执行操作。同步执行操作。发发送送进进程程以以字字符符流流形形式式把把大大量量数数据据送送入入管管道道,接接收收进进程程从从管管道道

7、中中接收数据,所以叫接收数据,所以叫管道通信管道通信School of ManagementSLIDE 8进程通信进程通信管道的实质是一个共享文件,基本上可管道的实质是一个共享文件,基本上可借助于文件系统的机制实现,包括(管借助于文件系统的机制实现,包括(管道)文件的创建、打开、关闭和读写道)文件的创建、打开、关闭和读写进程对通信机构的使用应该进程对通信机构的使用应该互斥互斥,一个,一个进程正在使用某个管道写入或读出数据进程正在使用某个管道写入或读出数据时,另一个进程就必须等待时,另一个进程就必须等待发送者和接收者双方必须能够知道对方发送者和接收者双方必须能够知道对方是否存在,如果对方已经不存

8、在,就没是否存在,如果对方已经不存在,就没有必要再发送信息有必要再发送信息School of ManagementSLIDE 9进程通信进程通信管管道道长长度度有有限限,发发送送信信息息和和接接收收信信息息之之间间要要实实现现正正确确的的同同步步关关系系,当当写写进进程程把把一一定定数数量量的的数数据据写写入入pipepipe,就就去去睡睡眠眠等等待,直到读进程取走数据后,把它唤醒。待,直到读进程取走数据后,把它唤醒。写进程写进程共享共享文件文件读进程读进程School of ManagementSLIDE 10进程通信进程通信4.4.消息传递通信的实现方法消息传递通信的实现方法采用消息传递机

9、制后,一个正在执行的采用消息传递机制后,一个正在执行的进程可在任何时刻向另一个正在执行的进程进程可在任何时刻向另一个正在执行的进程发送消息;一个正在执行的进程也可在任何发送消息;一个正在执行的进程也可在任何时刻向正在执行的另一个进程请求消息时刻向正在执行的另一个进程请求消息一个进程在某一时刻的执行依赖于另一一个进程在某一时刻的执行依赖于另一进程的消息或等待其他进程对发出消息的回进程的消息或等待其他进程对发出消息的回答,那么,消息传递机制紧密地与进程的答,那么,消息传递机制紧密地与进程的阻阻塞和释放塞和释放相联系相联系School of ManagementSLIDE 11进程通信进程通信直接通

10、信直接通信发发送送或或接接收收消消息息的的进进程程必必须须指指出出信信件件发发给给谁谁或或从从谁谁那那里里接接收收消消息息直直接接通通信信原语原语sendsend(P P,消息):把一个消息,消息):把一个消息发送给进程发送给进程P P原原语语receivereceive(Q Q,消消息息):从从进进程程Q Q接收一个消息接收一个消息School of ManagementSLIDE 12进程通信进程通信间接通信间接通信 进程间发送或接收消息通过进程间发送或接收消息通过信箱信箱进进行,消息可被理解成信件行,消息可被理解成信件原原语语sendsend(A A,信信件件):把把一一封封信信件件(消

11、息)传送到信箱(消息)传送到信箱A A原原语语receivereceive(A A,信信件件):从从信信箱箱A A接接收一封信件(消息)收一封信件(消息)School of ManagementSLIDE 13进程通信进程通信间接通信的实现信箱间接通信的实现信箱信信箱箱是是存存放放信信件件的的存存储储区区域域,每每个个信信箱可分成信箱特征和信箱体两部分。箱可分成信箱特征和信箱体两部分。信信箱箱特特征征指指出出信信箱箱容容量量、信信件件格格式式、指针等;信箱体用来存放信件指针等;信箱体用来存放信件信信箱箱可可由由OSOS创创建建,也也可可由由用用户户进进程程创创建建,创创建建者者是是信信箱箱的的

12、拥拥有有者者,据据此此可可把把信信箱箱分分为:私用信箱,公用信箱,共享信箱。为:私用信箱,公用信箱,共享信箱。School of ManagementSLIDE 14进程通信进程通信发送信件:发送信件:如如果果指指定定信信箱箱未未满满,则则将将信信件件送送入入信信箱箱中中由由指指针针所所指指示示的的位位置置,并并释释放放等等待待该该信信箱箱中中信信件件的的等等待待者者;否否则则发发送送信件者被置成等待信箱状态信件者被置成等待信箱状态接收信件:接收信件:如如果果指指定定信信箱箱中中有有信信,则则取取出出一一封封信信件件,并并释释放放等等待待信信箱箱的的等等待待者者,否否则则接接收收信信件件者者被

13、被置置成成等等待待信信箱箱中中信信件件的的状态状态School of ManagementSLIDE 15进程通信进程通信type box=recordtype box=recordsize:integer;size:integer;/*/*信箱大小信箱大小*/*/count:integer;count:integer;/*/*现有信件数现有信件数*/*/letter:array1.n of message;letter:array1.n of message;/*/*信箱信箱*/*/S1,S2:semaphore;S1,S2:semaphore;/*/*等信箱和等信件信号量等信箱和等信件信号

14、量*/*/endend发送进程发送进程A A 邮箱体邮箱体 邮箱头邮箱头接收进程接收进程B BDeposite(m)Remove(m)邮箱通信结构邮箱通信结构School of ManagementSLIDE 16进程通信进程通信在利用信箱通信时,在发送进程和接收进在利用信箱通信时,在发送进程和接收进程之间,存在着四种关系:程之间,存在着四种关系:一对一关系一对一关系:即可以为发送进程和接收进程建立:即可以为发送进程和接收进程建立一条专用的通信链路;一条专用的通信链路;多对一关系多对一关系:允许提供服务的进程与多个用户进:允许提供服务的进程与多个用户进程进行交互,也称客户程进行交互,也称客户/

15、服务器交互;服务器交互;一对多关系一对多关系:允许一个发送进程与多个接收进程:允许一个发送进程与多个接收进程交互,使发送进程用广播的形式,发送消息;交互,使发送进程用广播的形式,发送消息;多对多关系多对多关系:允许建立一个公用信箱,让多个进:允许建立一个公用信箱,让多个进程都能向信箱投递消息,也可取走属于自己的消程都能向信箱投递消息,也可取走属于自己的消息。息。School of ManagementSLIDE 17进程通信进程通信消息传递系统实现中的若干问题消息传递系统实现中的若干问题信箱容量问题信箱容量问题 多进程与信箱相连的信件接收问题多进程与信箱相连的信件接收问题 信箱的所有权问题信箱

16、的所有权问题 信件的格式问题信件的格式问题 通信进程并行性问题通信进程并行性问题School of ManagementSLIDE 18进程通信进程通信消息缓冲队列通信机制消息缓冲队列通信机制sendersender:发送消息的进程名或标识符:发送消息的进程名或标识符sizesize:发送的消息长度:发送的消息长度texttext:发送的消息正文:发送的消息正文next-ptrnext-ptr:指向下一个消息缓冲区的指针:指向下一个消息缓冲区的指针在进程的在进程的PCBPCB中涉及通信的数据结构:中涉及通信的数据结构:mptrmptr:消息队列队首指针:消息队列队首指针mutexmutex:消

17、息队列互斥信号量:消息队列互斥信号量,初值为初值为1 1smsm:表示接收进程消息队列上消息的个数,:表示接收进程消息队列上消息的个数,初值为初值为0 0,是控制收发进程同步的信号量,是控制收发进程同步的信号量School of ManagementSLIDE 19进程通信进程通信发送原语发送原语sendsend:申申请请一一个个消消息息缓缓冲冲区区,把把发发送送区区内内容容复复制制到到这这个个缓缓冲冲区区中中;找找到到接接收收进进程程的的PCBPCB,执执行行互互斥斥操操作作P(mutex)P(mutex);把把缓缓冲冲区区挂挂到到接接收收进进程程消消息息队队列列的的尾尾部部,执执行行V(s

18、m)V(sm)、即即消消息息数数加加1 1;执执行行V(mutex)V(mutex)School of ManagementSLIDE 20进程通信进程通信接收原语接收原语 receive receive:执执行行P(sm)P(sm)查查看看有有否否信信件件;执执行行互互斥斥操操作作P(mutex)P(mutex),从从消消息息队队列列中中摘摘下下第第一一个个消消息息,执执行行V(mutex)V(mutex);把把消消息息缓缓冲冲区区内内容容复复制制到到接接收收区区,释释放放消消息缓冲区息缓冲区School of ManagementSLIDE 21进程通信进程通信接收进程名接收进程名:Q信件

19、长信件长:5c正文正文:ABCDESend(发发送送区区首首址址)发送区发送区消息队列首指针消息队列首指针mutexmutexsmsm发送进程名发送进程名:P:P信件长信件长:5:5正文正文:ABCDE:ABCDE后继信件后继信件缓冲指针缓冲指针0 0进程进程Q Q的的PCBPCB发送进程名发送进程名:P信件长信件长:5正文正文:ABCDEreceive(接接收收区区首首址址)接收区接收区 进程进程P 进程进程QSchool of ManagementSLIDE 22线程线程2.7 2.7 线线 程程 简简 介介1.1.引入引入进程是一个资源的拥有者,在创建,撤进程是一个资源的拥有者,在创建,

20、撤消和切换中系统为之付出较大开销:消和切换中系统为之付出较大开销:进程切换开销大、进程通信代价大、进进程切换开销大、进程通信代价大、进程之间的并发性粒度较粗,并发度不高,程之间的并发性粒度较粗,并发度不高,不适合并行计算和分布并行计的要求、不适合并行计算和分布并行计的要求、不适合客户不适合客户/服务器计算的要求服务器计算的要求如何使多个程序并发执行同时又尽量减如何使多个程序并发执行同时又尽量减少系统开销少系统开销?School of ManagementSLIDE 23线程线程2.2.线程的基本概念线程的基本概念操操作作系系统统中中引引入入进进程程的的目目的的是是为为了了使使多多个个程程序序并

21、并发发执执行行,以以改改善善资资源源使使用用率和提高系统效率,率和提高系统效率,操操作作系系统统中中再再引引入入线线程程,则则是是为为了了减减少少程程序序并并发发执执行行时时所所付付出出的的时时空空开开销销,使得并发粒度更细、并发性更好使得并发粒度更细、并发性更好把把进进程程的的两两项项功功能能“独独立立分分配配资资源源”与与“被调度分派执行被调度分派执行”分离开来分离开来School of ManagementSLIDE 24线程线程进程作为系统资源分配和保护的独立单进程作为系统资源分配和保护的独立单位,不需要频繁地切换;位,不需要频繁地切换;线程作为系统调度和分派的基本单位,线程作为系统调

22、度和分派的基本单位,能轻装运行,会被频繁地调度和切换,能轻装运行,会被频繁地调度和切换,在这种指导思想下,产生了线程的概念在这种指导思想下,产生了线程的概念线程线程是操作系统进程中能够独立执行的是操作系统进程中能够独立执行的实体(控制流),是处理器调度和分派实体(控制流),是处理器调度和分派的基本单位。线程是进程的组成部分,的基本单位。线程是进程的组成部分,每个进程内允许包含多个并发执行的实每个进程内允许包含多个并发执行的实体(控制流),这就是多线程体(控制流),这就是多线程School of ManagementSLIDE 25线程线程3.3.线程的状态线程的状态状态参数:线程标志符和一组状

23、态参数:状态参数:线程标志符和一组状态参数:寄存器状态,堆栈,线程运行状态,优寄存器状态,堆栈,线程运行状态,优先级,线程专有存储器,信号屏蔽先级,线程专有存储器,信号屏蔽线程运行状态线程运行状态执行状态,就绪状态,阻塞状态执行状态,就绪状态,阻塞状态挂起状态对线程是没有意义的,如果挂起状态对线程是没有意义的,如果进程挂起后被对换出主存,则它的所进程挂起后被对换出主存,则它的所有线程因共享了进程的地址空间,也有线程因共享了进程的地址空间,也必须全部对换出去必须全部对换出去School of ManagementSLIDE 26线程线程4.4.线程的创建和终止线程的创建和终止初始化线程调用线程创

24、建函数去创建初始化线程调用线程创建函数去创建若干个线程若干个线程被终止未释放资源的线程可以被需要被终止未释放资源的线程可以被需要的线程调用,使它重新恢复运行的线程调用,使它重新恢复运行5.5.线程间的同步和通信(参见书线程间的同步和通信(参见书PP63PP63)6.6.线程的实现内核支持线程和用户线程的实现内核支持线程和用户级线程级线程School of ManagementSLIDE 27线程线程内核支持线程内核支持线程纯内核级线程设施中,线程管纯内核级线程设施中,线程管理的所有工作由理的所有工作由操作系统内核操作系统内核做。内核专门提供做。内核专门提供KLT APIKLT API,应用程序

25、区不需要有线程管理应用程序区不需要有线程管理代码。代码。Windows NT Windows NT 和和 OS/2 OS/2都都是采用这种方法的例子是采用这种方法的例子School of ManagementSLIDE 28线程线程线程执行中可通过内核创建线程线程执行中可通过内核创建线程原语来创建其他线程,这个应用原语来创建其他线程,这个应用的所有线程均在一个进程中获得的所有线程均在一个进程中获得支持。支持。内核要为整个进程及进程中的单内核要为整个进程及进程中的单个线程维护现场信息,应在内核个线程维护现场信息,应在内核中建立和维护中建立和维护PCBPCB及及TCB,TCB,保存在内保存在内核空

26、间中核空间中School of ManagementSLIDE 29线程线程用户级线程的实现用户级线程的实现1.1.运行时系统:实际上是管理和控制运行时系统:实际上是管理和控制线程的函数集合。线程的函数集合。用户级线程切换时不须转入核心态,用户级线程切换时不须转入核心态,由运行时系统中的线程切换过程来执由运行时系统中的线程切换过程来执行切换任务行切换任务操作简单,切换速度快操作简单,切换速度快2.2.轻型进程轻型进程LWPLWP(light weight light weight processprocess)School of ManagementSLIDE 30线程线程线程库线程库L LP PULTULTKLTKLTLWPLWPProcessorProcessorL LL LL LL LL LL LL LL LL LP PP PP PP PP P用用户户内内核核进程进程1 1进程进程2 2进程进程3 3进程进程4 4进程进程5 5School of Management

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁