进程通信和线程课件.ppt

进程通信和线程课件.ppt

ID:57050728

大小:60.00 KB

页数:21页

时间:2020-07-28

上传者:U-5097
进程通信和线程课件.ppt_第1页
进程通信和线程课件.ppt_第2页
进程通信和线程课件.ppt_第3页
进程通信和线程课件.ppt_第4页
进程通信和线程课件.ppt_第5页
资源描述:

《进程通信和线程课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

操作系统深圳大学计算机与软件学院白鉴聪8/30/20211 上节回顾哲学家就餐问题记录型信号量会发生死锁AND信号量的应用读者-写者问题记录型信号量的编程,加入if判断信号量集的编程,swait(s,1,0)表示只检查锁不上锁8/30/20212 2.5进程通信进程的通信:进程之间的信息交换交换少信息量是低级通信,例如信号量机制交换大信息量是高级通信信号量机制实现低级进程通信的缺点效率低,通信的数据量太少不透明,用户需要自己编写交换过程的代码,设置数据结构,控制进程互斥与同步等操作系统只是提供内存空间高级进程通信:定义P65用户直接利用操作系统提供的通信指令高效传送大量数据8/30/20213 2.5进程通信高级进程通信类型共享存储器,ShareMemory,信息无格式消息传递,MessagePassing,信息有格式管道通信,Pipe,以文件方式8/30/20214 2.5进程通信共享存储器基于共享数据结构的通信方式生产者-消费者问题中的缓冲池该方式增加程序员负担,OS只须提供共享空间,低效,只能传递少量数据基于共享存储区的通信方式Windows的动态数据交换(DynamicDataExchange,DDE)是一种进程间通信形式。两个程序通过DDE方式交换数据,采用客户/服务器模式,当服务器中的数据发生变化后就会马上通知客户端进行更新8/30/20215 2.5进程通信消息传递系统:不论是单机系统、多机系统,还是计算机网络,消息传递机制都是用得最广泛的一种进程间通信的机制在消息传递系统中,进程间的数据交换,是以格式化的消息(message)为单位在计算机网络中,又把message称为报文程序员直接利用系统提供的一组通信命令(原语)进行通信操作系统隐藏了通信的实现细节,大大减化了通信程序编制的复杂性,而获得广泛的应用。消息传递分成直接通信方式和间接通信方式两种8/30/20216 2.5进程通信管道通信:所谓“管道”,是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。写进程:以字符流形式将大量的数据送入共享文件,即送入管道读进程:从管道中接收数据,即从共享文件中读数据实质采用文件的读写操作,支持大数据量传输8/30/20217 2.6进程通信管道特点管道只能由使用者进程创建只有创建进程的同族进程(即自己和子孙进程)才能使用管道每次写入或读出的信息长度是可变的因为数据没有来源标志,所以每次数据交换是单向,即每次管道只有一个进程在读取数据,同时只有一个进程在写入数据管道的协调机制互斥:读写不能同时使用管道同步:写完才读,读完才写确认存在:三方握手8/30/20218 2.5进程通信消息传递通信的实现方法:直接通信和间接通信直接通信方式发送进程利用OS命令,直接把消息发送给目标进程要求发送进程和接收进程显式地提供对方标识符系统提供下述两条通信命令(原语)Send(Receiver,message);Receive(Sender,message);息;例如原语Send(P2,m1):表示将消息m1发送给接收进程P2原语Receive(P1,m1):表示接收由P1发来的消息m18/30/20219 2.5进程通信直接通信原语解决生产者-消费者问题生产者生产一个产品(消息)后,使用Send原语将消息发送给消费者消费者进程使用Receive原语来得到一个消息如果消息尚未生产出来,消费者必须等待,直至生产者进程将消息发送过来。repeatrepeat…receive(producer,nextc);produceaniteminnextp;…send(consumer,nextp);consumetheiteminnextc;untilfalse;untilfalse;进程的阻塞与唤醒由消息机制内部实现8/30/202110 2.5进程通信间接通信方式:需要某种共享数据结构的实体作为中介,一般用信箱(mailbox),间接通信又称为信箱通信信箱可以提供保存信息、核查用户等功能原语:Create(mailbox)、Delete(mailbox)Send(mailbox,message)Receive(mailbox,message)8/30/202111 2.5进程通信信箱类型:私用信箱、公用信箱、共享信箱信箱创建者也是信箱的拥有者私用信箱:用户进程创建,随进程结束而消失单向通信,其他用户进程发送信息,信箱拥有者读信息公用信箱:操作系统创建,在系统运行期间始终存在。允许系统中的所有核准进程使用。双向通信,核准进程从信箱中发送或读取给自己消息共享信箱:用户进程创建,指明属于共享类型,同时确定共享名单双向通信,信箱的拥有者和共享者都可以从信箱中发送或读取给自己消息8/30/202112 2.5进程通信使用信息通信的发送进程和接收进程关系一对一关系:一个发送进程,一个接收进程建立一条两者专用的通信链路,不受其他进程干扰多对一关系:多个发送进程,一个接收进程多个用户进程发送服务请求,一个提供服务器进程提供服务;称为客户/服务器交互(client/serverinteraction)一对多关系:一个发送进程,多个接收进程发送进程采用广播方式向多个接收者发送消息多对多关系。多个发送进程,多个接收进程建立一个公用信箱,让多个进程都能向信箱中投递消息;也可从信箱中取走属于自己的消息。8/30/202113 2.5进程通信消息传递系统实现的关键问题通信链路、消息格式通信链路(communicationlink)显式建立:用命令或原语请求系统建立通信链路;使用完后,也用命令或原语拆除。主要用于计算机网络自动建立:无须明确提出建立链路的请求,发送进程只须利用系统提供的发送命令(原语),系统会自动地建立一条链路。主要用于单机系统8/30/202114 2.5进程通信链路类型点—点连接:一条链路只连接两个结点(进程)多点连接:一条链路连接多个(n>2)结点(进程)单向链路、双向链路消息的格式定长格式:比较短,减少了对消息的处理和存储开销可变长格式:系统付出更多的开销,但方便了用户两种格式各有优缺点,很多系统都同时使用8/30/202115 2.5进程通信消息同步方式发送进程阻塞、接收进程阻塞两者间无缓冲,有消息就立刻传递,无消息则同时阻塞发送进程不阻塞、接收进程阻塞接受进程在有消息才被唤醒,常用于C/S模式发送进程和接收进程均不阻塞两者间联系着消息队列,只有队列满或队列空才发生阻塞8/30/202116 2.5进程通信2.5.4消息缓冲队列通信机制(自学)8/30/202117 2.6线程进程的不足为使程序能并发执行,系统必须进行以下一系列操作:1)创建进程;2)撤消进程;3)进程切换进程同时作为资源分配单位与调度分派单位,限制了并发程度的进一步提高。传统进程设计的OS不适合SMP结构的计算机。进程“太重”分割进程功能,引入线程8/30/202118 2.6线程线程每个进程包含多个线程线程作为利用CPU的基本单位,是花费开销最小的实体线程的属性特点轻型实体独立调度和分派的基本单位可并发执行共享进程资源线程的TCB、参数、状态、控制8/30/202119 2.6线程进程与线程的关系进程作为分配和拥有系统资源的基本单位进程可以包含多个线程,为它们提供资源进程就不再作为一个执行的实体线程属于某个特定进程,进程的执行实质是它的某个线程执行在Windows中的进程与线程每个windows进程开始于它的被默认创建的第一个线程,通常称其为主线程从线程的角度看,进程表现的更像一个容器:进程为线程提供主体(执行代码+数据)进程自己没有运行的概念进程是静态的实体8/30/202120 第二章总结前趋图:画图、信号量编程进程的结构特征和三个特性、定义,P37-38进程状态:带挂起的状态图P39状态之间的资源区别,状态转换使用的原语进程控制块PCB:进程存在的唯一标志包含的四方面信息P41-42进程控制:创建、终止、阻塞唤醒、挂起激活等操作,它们对PCB、内存、硬盘的操作进程同步:主要任务P47,同步机制四原则P50四种信号量特点生产者-消费者问题:记录型信号量AND信号量的编程读者-写者问题:信号量集的编程高级进程通信:定义P65,三种通信类型,特点线程属性:轻型实体、独立调度和分派的基本单位、共享进程资源8/30/202121

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭