




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机操作系统,第三章 进程管理,本章主要内容(续),3.7进程通信 3.8死锁问题 3.9线程,3.7进程通信,进程通信(communication): 定义: 简单地说,就是进程间的信息交换。 分类: 低级通信:进程间控制信息的交换。 信号量及锁变量只能传递信号,没有数据转送能力。 高级通信:进程间大批量信息(数据)的交换。 高级通信的目的不是为了控制进程的执行速度,而是为了交换信息。,进程通信,进程的通信方式,主从式 主进程可自由使用从进程的资源或数据; 从进程动作受主进程的控制; 主进程和从进程关系固定。 会话式 使用进程在使用服务进程所提供的服务之前,必须得到服务进程的许可; 服务进
2、程根据使用进程的请求提供服务,但对所提供服务的控制由服务进程自身完成; 通信时连接关系固定。,进程通信,进程的通信方式,消息或邮箱机制 消息:区别于命令或指令,一方面表示有大量信息,另一方面表示互相通信进程的平等。 只要存在空缓冲区或邮箱,发送进程可发送消息; 发送进程和接收进程之间没有直接联系,与会话式不同; 存在缓冲区或邮箱存放消息。,进程通信,进程的通信方式,共享存储方式 不要求数据移动,两个需要互相交换信息的进程通过对同一共享数据区的操作来达到互相通信的目的。 这个共享数据区是每个互相通信的进程的组成部分。,进程通信,消息缓冲机制,消息缓冲机制的基本思想: 根据生产者与消费者关系原理,
3、利用内存的共用消息缓冲池实现进程之间的信息交换。 消息缓冲区是指含有如下信息的缓冲区: 指向发送进程的指针 指向下一个消息缓冲区的指针 消息长度 消息正文 消息缓冲区作为进程通信的一个基本单位,即每当发送进程欲发送消息时,便申请并形成一个消息缓冲区,并发送给指定的接收进程。,进程通信,消息缓冲机制,消息缓冲机制的实现过程: 发送进程在发送消息前,先在自己的内存空间设置一个始地址为a的消息发送区,把欲发送的消息填入其中,然后再用发送过程send (B,a)将其发送到缓冲区。 接收进程则在接收消息之前,在自己的内存空间内设置一个始地址为b的消息接收区,然后用接收过程receive (b)接收缓冲区
4、内的消息。 注:由于接收进程可能接收到多个进程发来的多个消息缓冲区,故它将所有的消息缓冲区连接成一个消息队列,其队列头由接收进程PCB中的消息队列头指针给出。,进程通信,消息缓冲机制,消息缓冲机制的实现过程:,进程通信,消息缓冲通信过程,消息缓冲机制,通信进程必须满足如下条件: 在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对该消息缓冲区队列的访问。否则,将引起消息队列的混乱。同理,当接收进程正从消息队列中取消息缓冲区消息时,也应禁止其他进程对该队列的访问。 间接制约 设置公用信号量: mutex ,其初值为1 。 当消息缓冲区队列中无消息存在时,接收进程不能接收到任何消息
5、。 直接制约 设置私用信号量:SM为接收进程的私用信号量,表示等待接收的消息个数,其初值为0 。,进程通信,消息缓冲机制,进程之间通信的实现:,进程通信,向系统申请一个消息缓冲区,将发送区消息m送入新申请的消息缓冲区,把消息缓冲区挂入接收进程的消息队列,摘下消息队列中的消息n,将消息n从缓冲区复制到接收区,释放缓冲区,开始,结束,开始,结束,P(SM),V(SM),Send(m):,Receive(n):,邮箱通信,进程通信,邮箱通信的基本思想: 邮箱通信是由发送进程申请建立一个与接收进程连接的邮箱,发送进程把消息送往邮箱,接收进程从邮箱取走消息,从而完成进程间信息交换。 邮箱由邮箱头和邮箱体
6、组成。其中邮箱头描述邮箱名称、邮箱大小、邮箱方向以及拥有该邮箱的进程名等。邮箱体主要用来存放消息(如图) 。 设置邮箱的最大好处就是发送进程和接收进程之间没有处理时间上的限制(消息缓冲需要互斥使用消息队列)。,邮箱通信,进程通信,注: 一个邮箱可以考虑成发送进程与接收进程之间的大小固定的私有数据结构。 它不像缓冲区那样被系统内所有进程共享。,进程通信,两通信进程之间的关系: 发送进程发送消息时,邮箱中至少要有一个空格能存放该消息。 接收进程接收消息时,邮箱中至少要有一个消息存在。 即发送进程与接收进程间存在着直接制约。 发送进程的私用信号量: nullnum表示邮箱中空格个数,初值为信箱的空格
7、数 n 。 接收进程的私用信号量: fullnum表示邮箱中消息个数,初值为0 。,邮箱通信,实现(两个进程通信): 设发送进程调用过程 deposit(m)将消息发送到邮箱,接收进程调用过程remove(m)将消息m 从邮箱中取出。,进程通信,deposit(m): begin local x (nullnum) 选择空格x 将消息m放入空格x中 置格x的标志为满 (fullnum) end,remove(m): begin local x (fullnum) 选择满格x 把满格x中的消息取出置格x标志为空 (nullnum) end,3.8死锁定义,定义:各并发进程彼此互相等待对方所拥有的
8、资源,且这些进程在得到对方的资源之前不会释放自己所拥有的资源,从而造成并发进程不能继续向前推进的状态。 若死锁只存在于部分进程中,称系统发生了局部死锁;若系统中所有进程都出现了死锁,则称系统发生了全局死锁。,死锁,死锁的起因,死锁的起因是并发进程的资源竞争,而根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数。,死锁,系统资源不足,进程推进顺序非法,死锁发生的必要条件,互斥条件: 一个资源在某一时刻只能分配给一个进程。若一个进程申请某资源时,该资源被另一进程占用,则申请者等待,直到占有者释放该资源时才可能获得。 部分分配: 进程在占用部分资源后,运行时还可以申请其余的资源,而且在申请
9、其余资源时并不释放已占用的资源。,死锁,死锁发生的必要条件,不剥夺条件: 已分配给进程的资源不可被剥夺,只能被占有者自行释放。 环路条件: 系统中存在着一条由两个 或两个以上的进程组成的循 环链,链中的每个进程都在 等待相邻进程已占用的资源。,死锁,S3,P3,S1,P2,P1,S2,解决死锁的方法,预防 采用某种策略使得死锁的必要条件在系统执行的任何时间都得不到满足。 避免 可称为动态预防,是指在系统分配资源时,根据资源的使用情况提前作出预测,从而避免死锁发生。 检查与恢复 是指系统设有专门的机构,死锁发生时,该机构能够检测到死锁发生的位置和原因,并能通过外力破环死锁发生的必要条件,从而使得
10、并发进程从死锁状态中恢复过来。,死锁,解决死锁的方法,预防死锁 死锁产生的必要条件为解决死锁问题提供了思路。 限制“互斥条件” 然而对于临界资源必须互斥访问,这是某些资源使用时所必须要求的(如打印机),不能加以改变,所以不易有解决方案。,死锁,解决死锁的方法,预防死锁 限制“部分分配” 一种实现方法是规定所有进程在开始执行前申请所需的全部资源,当所需资源全部可以使用时方可进行分配。这样,进程对资源的要求得到满足,它一定能够运行结束而释放已经占用的全部资源。只要有一种资源不能满足,则不进行分配,而将该进程阻塞。,死锁,解决死锁的方法,预防死锁 限制“部分分配” 缺点: 许多情况下,一个进程执行前
11、不可能提出它需要的所有资源 无论所需资源何时使用,一个进程只有在所有需要的资源得到满足后才开始执行 对于不经常使用的资源,进程的生存过程期间一直占有它是一种浪费 降低了进程的并发性,死锁,解决死锁的方法,预防死锁 限制“不剥夺条件” 采用剥夺算法,可以预防死锁的发生。但是系统中的资源有些是可剥夺的,有些是不可剥夺的,如采用剥夺算法对于CPU与存储器是可行的,而对于打印机等资源则是不合适的,所以只能对系统中的一部分资源采用这种方法。,死锁,解决死锁的方法,预防死锁 限制“环路条件” 把所有资源分类按顺序排列,使进程在申请和保持资源时不形成环路。 一个进程在拥有了某资源的前提下,它只能申请级别比所
12、拥有资源更高的资源;同时在一个进程释放资源时,必须先释放级别高的资源(同时也只有释放了所拥有的高级别资源,才有可能获得低级别资源);这样就避免了环路的出现。 这种方法限制了进程对资源的请求,对资源的分类编序也消耗一定的系统开销。,死锁,解决死锁的方法,避免死锁 避免死锁的做法是在进程每次提出资源请求时加以检测,若分配后系统可能会引起死锁,称系统处于不安全状态,这时对该进程的资源请求不予分配,将它放到等待队列中去。若分配后系统不会产生死锁,即系统是安全的,这时再根据该进程的资源请求予以分配。,死锁,银行家算法 进程申请系统的某种资源时,一次可以申请多个,为了避免死锁,可以采用银行家算法。执行前,
13、各进程给出最大的资源需求,执行中,进程已分配资源与尚需资源之和就是最大的资源需求。 例:假设系统有某种设备12台,在T0时刻,进程需求与分配情况如下:,解决死锁的方法,死锁的检测和恢复(实现不作任何限制) 检测时机:进程等待时;定时检测;资源利用率下降时。 死锁的恢复办法较多。最简单的办法是终止各锁住进程,或按一定的顺序中止进程序列,直至已释放到有足够的资源来完成剩下的进程时为止。另外,也可以从被锁住进程强迫剥夺资源以解除死锁。,死锁,3.9线程的引入,引入进程的操作系统 特点:在引入进程概念的操作系统中,将进程作为一个独立运行的基本单位,这包括两层含义:只有进程可以被调度运行,只有进程才能拥
14、有资源。 资源利用: 当进程被创建时,系统要为它分配PCB表及其它必要的资源,如内存等;当进程被撤消时,系统要收回这些资源及PCB表等,因此系统必须付出一定的开销。 当进程运行时,进程的切换现象更会大量存在,由于要保留当前执行进程的CPU现场和为选中执行的进程重布现场,更需较大的开销。,线程,线程的引入,很多时候,用户要完成的任务具有许多相似的性质。 例如:一个Web服务器同时接受不同用户的页面请求。服务器处理这些请求是并发进行的,可以用创建父进程和多个子进程的方式来实现。 随着用户数量增加,子进程数量将增加,进程的创建和切换过程越多,系统的开销越多。 由于服务器的系统资源有限,服务器可以处理
15、和支持的用户访问请求就有限。 如何减少进程的创建和切换多带来的系统开销?,线程,线程,线程的基本概念,线程是进程的一部分,又被称为轻权进程或轻量级进程。 线程也是CPU调度的基本单位。 一个没有线程的进程可以看作是单线程的。,线程的基本概念,一个进程内拥有多个进程,则进程的执行不再是唯一线状的,它由多条线状执行过程组成。,线程的引入,引入线程的好处 使用线程的最大好处是在有多个任务需要处理机处理时,减少处理机的切换时间;而且,线程的创建和结束所需要的系统开销也比进程的创建和结束要小得多。 最适合使用线程的系统是多处理机系统或网络系统或分布式系统。,在多处理机系统中,同一用户程序可以根据不同的功
16、能划分为不同的线程,放在不同的处理机上执行。 在用户程序可以按功能划分为不同的小段时,单处理机系统也可以使用线程而简化程序结构和提高执行效率。,线程的引入,3种典型应用 服务器中文件管理或通信控制 前后台处理即把一个计算量大实时性要求不高的程序安排在处理机空闲时执行 异步处理程序中两个部分在执行上没有顺序规定,线程的引入,引入线程的操作系统 将进程看作资源集合与线程集合的复合体。 进程拥有资源,属于同一个进程的所有线程可以共享这些资源。此外,每个线程仅有较少的私用资源,如程序计数器、寄存器和栈等。 每一个线程是一个动态对象,它表示进程中的一条控制线索,执行一系列指令操作,是一个相对独立的、可被
17、调度运行的基本单位。,线程,线程的引入,引入线程的操作系统 在进程的地址空间中可以有多个线程,它们可以并发执行,这就需要一张单独的表来记录线程控制与管理等信息,这张表称为线程控制表。其中,每个线程占一项,以记录线程的程序计数器、寄存器的值及状态等信息。程序计数器可以使线程像进程一样被暂停执行和恢复执行,寄存器的值等可以保存线程暂停执行时的CPU状态。,线程,线程的引入,引入线程的操作系统 线程由创建而产生,由撤消而消亡,在生命期间,线程可以处于就绪状态、执行状态和阻塞状态三个基本状态中。这三个基本状态也像进程一样,会发生变迁,如就绪状态执行状态,执行状态阻塞状态,阻塞状态就绪状态等。(与进程的
18、状态并不一定一一对应),线程,线程与进程的比较,调度 在传统的操作系统中,拥有资源的基本单位和独立调度运行的基本单位都是进程。在引入线程的操作系统中,则把线程作为调度运行的基本单位,而把进程作为拥有资源的基本单位。 在同一个进程中,线程的调度不会引起进程的调度,只有在由一个进程中的线程调度到另一进程中的线程时,才会引起进程的调度。,线程,线程与进程的比较,并发 在引入线程的操作系统中,不仅进程之间可以并发执行,而且属于同一个进程的多个线程之间也可以并发执行,因而使系统具有更好的并发性,可以更有效地使用系统资源和提高系统的吞吐量。,线程,线程与进程的区别,拥有资源方面 进程是资源管理的基本单位,它拥有自己的地址空间和各种资源;线程只是共享进程资源,仅拥有很少的一些私有资源(如程序计数器、寄存器和栈、线程表项等)。,线程,线程与进程的区别,资源利用率方面:以进程为单位进行处理机切换和调度时,由于设计到资源转移以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳务派遣与被派遣者订立劳动合同
- 公司之间借款合同范例一二零二五年
- 公司办公室租赁协议
- 危险性较大的模板安全专项施工方案
- 初中化学课堂教学评价表
- 个人之间工程合同样本
- 高二下学期语文教学工作总结
- 2025年医用高能射线设备合作协议书
- 基本不等式教学设计-
- 代理销售分销合同样本
- 小学生防诈骗课件
- 2025年菠萝种植市场分析报告
- 2025年湖北省中考道德与法治模拟卷(1)(含答案)
- (一模)2025年广州市普通高中毕业班综合测试(一)生物试卷(含答案)
- 专题05 首字母填空20篇(名校期末真题)-八年级英语下册重难点讲练全攻略(牛津上海版)
- 湖南省宁远一中2024-2025学年高一下学期第一次月考化学试卷(原卷版+解析版)
- 2025年浙江义乌中国小商品城进出口有限公司招聘笔试参考题库附带答案详解
- 人要有自信+课件-+2024-2025学年统编版道德与法治七年级下册
- (二调)武汉市2025届高中毕业生二月调研考试 历史试卷
- 2024年河北互通高速公路发展集团有限公司招聘考试真题
- 2025年河南建筑职业技术学院单招职业技能测试题库审定版
评论
0/150
提交评论