修订计算机操作系统.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《修订计算机操作系统.ppt》由会员分享,可在线阅读,更多相关《修订计算机操作系统.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 前一页 休息计算机操作系统计算机操作系统第三章第三章 进程管理进程管理 前一页 休息本章主要内容(续)本章主要内容(续)l3.7进程通信进程通信l3.8死锁问题死锁问题l3.9线程线程 前一页 休息3.7进程通信进程通信l进程通信(进程通信(communicationcommunication):):定义:定义:简单地说,就是进程间的信息交换。简单地说,就是进程间的信息交换。分类:分类:低级通信:进程间低级通信:进程间控制控制信息的交换。信息的交换。u信号量及锁变量只能传递信号信号量及锁变量只能传递信号,没有数据转送能力。没有数据转送能力。高级通信:进程间大批量信息高级通信:进程间大批量信息
2、(数据数据)的交换。的交换。u高级通信的目的不是为了控制进程的执行速度,高级通信的目的不是为了控制进程的执行速度,而是为了交换信息。而是为了交换信息。进进程程通通信信 前一页 休息进程的通信方式进程的通信方式l 主从式主从式 主进程主进程可自由使用可自由使用从进程从进程的资源或数据;的资源或数据;从进程动作受主进程的控制;从进程动作受主进程的控制;主进程和从进程关系固定。主进程和从进程关系固定。l 会话式 使用进程使用进程在使用在使用服务进程服务进程所提供的服务之前,所提供的服务之前,必须得到服务进程的许可;必须得到服务进程的许可;服务进程根据使用进程的请求提供服务,但服务进程根据使用进程的请
3、求提供服务,但对所提供服务的控制由服务进程自身完成;对所提供服务的控制由服务进程自身完成;通信时连接关系固定。通信时连接关系固定。进进程程通通信信 前一页 休息进程的通信方式进程的通信方式l消息或邮箱机制消息或邮箱机制 消息:消息:区别于命令或指令,一方面表示有大量信息,区别于命令或指令,一方面表示有大量信息,另一方面表示互相通信进程的平等。另一方面表示互相通信进程的平等。只要存在空缓冲区或邮箱,发送进程可发送消息;只要存在空缓冲区或邮箱,发送进程可发送消息;发送进程和接收进程之间没有直接联系,与会话式发送进程和接收进程之间没有直接联系,与会话式不同;不同;存在缓冲区或邮箱存放消息。存在缓冲区
4、或邮箱存放消息。进进程程通通信信 前一页 休息进程的通信方式进程的通信方式l共享存储方式共享存储方式 不要求数据移动,两个需要互相交换信息的不要求数据移动,两个需要互相交换信息的进程通过对同一共享数据区的操作来达到互进程通过对同一共享数据区的操作来达到互相通信的目的。相通信的目的。这个共享数据区是每个互相通信的进程的组这个共享数据区是每个互相通信的进程的组成部分。成部分。进进程程通通信信 前一页 休息消息缓冲机制消息缓冲机制l消息缓冲机制的基本思想消息缓冲机制的基本思想:根据生产者与消费者关系原理根据生产者与消费者关系原理,利用内存的共用消息利用内存的共用消息缓冲池实现进程之间的信息交换。缓冲
5、池实现进程之间的信息交换。消息缓冲区是指含有如下信息的缓冲区消息缓冲区是指含有如下信息的缓冲区:指向发送进程的指针指向发送进程的指针指向下一个消息缓冲区的指针指向下一个消息缓冲区的指针消息长度消息长度消息正文消息正文消息缓冲区消息缓冲区作为进程通信的一个基本单位作为进程通信的一个基本单位,即每当发即每当发送进程欲发送消息时送进程欲发送消息时,便申请并形成一个消息缓冲区便申请并形成一个消息缓冲区,并并发送给指定的接收进程。发送给指定的接收进程。进进程程通通信信 前一页 休息消息缓冲机制消息缓冲机制l消息缓冲机制的实现过程消息缓冲机制的实现过程:发送进程发送进程在发送消息前,先在自己的内存空间设置
6、在发送消息前,先在自己的内存空间设置一个一个始地址为始地址为a a的消息的消息发送区,把欲发送的消息填入发送区,把欲发送的消息填入其中,然后再用发送过程其中,然后再用发送过程send(Bsend(B,a)a)将其发送到将其发送到缓冲区。缓冲区。接收进程接收进程则在接收消息之前,在自己的内存空间内则在接收消息之前,在自己的内存空间内设置设置一个始地址为一个始地址为b b的消息接收区的消息接收区,然后用接收过程,然后用接收过程receive(b)receive(b)接收缓冲区内的消息。接收缓冲区内的消息。注:由于接收进程可能接收到多个进程发来的多个注:由于接收进程可能接收到多个进程发来的多个消息缓
7、冲区消息缓冲区,故它将所有的消息缓冲区连接成一个故它将所有的消息缓冲区连接成一个消息队列消息队列,其队列头由接收进程其队列头由接收进程PCB中的消息队列中的消息队列头指针给出。头指针给出。进进程程通通信信 前一页 休息消息缓冲机制消息缓冲机制l消息缓冲机制的实现过程消息缓冲机制的实现过程:进进程程通通信信 消息缓冲通信过程 前一页 休息消息缓冲机制消息缓冲机制l通信进程通信进程必须满足如下条件必须满足如下条件:在发送进程把消息写入缓冲区和把缓冲区挂入消息队在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对列时,应禁止其他进程对该消息缓冲区队列该消息缓冲区队列的访问。否的访问。
8、否则,将引起消息队列的混乱。同理,当接收进程正从消则,将引起消息队列的混乱。同理,当接收进程正从消息队列中取消息缓冲区消息时,也应禁止其他进程对该息队列中取消息缓冲区消息时,也应禁止其他进程对该队列的访问。队列的访问。间接制约间接制约设置公用信号量设置公用信号量:mutex,其初值为,其初值为1。当当消息缓冲区队列消息缓冲区队列中无消息存在时,接收进程不能接中无消息存在时,接收进程不能接收到任何消息。收到任何消息。直接制约直接制约设置私用信号量设置私用信号量:SM为接收进程的私用信号量,表示等待接收为接收进程的私用信号量,表示等待接收的消息个数,其初值为的消息个数,其初值为0。进进程程通通信信
9、 前一页 休息消息缓冲机制消息缓冲机制l进程之间通信的实现进程之间通信的实现:进进程程通通信信向系统申请一个消息缓向系统申请一个消息缓冲区冲区将发送区消息将发送区消息m送入新送入新申请的消息缓冲区申请的消息缓冲区把消息缓冲区挂入接收把消息缓冲区挂入接收进程的消息队列进程的消息队列摘下消息队列中的消息摘下消息队列中的消息n 将消息将消息n从缓冲区复制到从缓冲区复制到接收区接收区释放缓冲区释放缓冲区开始开始结束结束开始开始结束结束临界区临界区P(mutex)V(mutex)临界区临界区P(mutex)V(mutex)P(SM)V(SM)Send(m):Receive(n):前一页 休息邮箱通信邮箱
10、通信进进程程通通信信l邮箱通信的基本思想邮箱通信的基本思想:邮箱通信是由发送进程申请建立一个与接收进程连接邮箱通信是由发送进程申请建立一个与接收进程连接的邮箱的邮箱,发送进程把消息送往邮箱发送进程把消息送往邮箱,接收进程从邮箱取走接收进程从邮箱取走消息消息,从而完成进程间信息交换从而完成进程间信息交换。邮箱由邮箱头和邮箱体组成。其中邮箱头描述邮箱名邮箱由邮箱头和邮箱体组成。其中邮箱头描述邮箱名称、邮箱大小、邮箱方向以及拥有该邮箱的进程名等。称、邮箱大小、邮箱方向以及拥有该邮箱的进程名等。邮箱体主要用来存放消息(如图)邮箱体主要用来存放消息(如图)。设置邮箱的最大好处就设置邮箱的最大好处就是发送
11、进程和接收进程是发送进程和接收进程之间没之间没有处理时间上的限制有处理时间上的限制(消息缓冲需要互斥使用消息队列消息缓冲需要互斥使用消息队列)。前一页 休息邮箱通信邮箱通信进进程程通通信信l注注:一个邮箱可以考虑成发送进程与接收进程之间的大小一个邮箱可以考虑成发送进程与接收进程之间的大小固定的私有数据结构。固定的私有数据结构。它不像缓冲区那样被系统内所有进程共享。它不像缓冲区那样被系统内所有进程共享。前一页 休息进进程程通通信信l两通信进程之间的关系两通信进程之间的关系:发送进程发送消息时,邮箱中至少要有一个空格能发送进程发送消息时,邮箱中至少要有一个空格能存放该消息。存放该消息。接收进程接收
12、消息时,邮箱中至少要有一个消息存接收进程接收消息时,邮箱中至少要有一个消息存在。在。即即发送进程与接收进程间存在着发送进程与接收进程间存在着直接制约直接制约。发送进程的私用信号量发送进程的私用信号量:nullnum表示邮箱中空格表示邮箱中空格个数个数,初值为信箱的空格数初值为信箱的空格数 n。接收进程的私用信号量接收进程的私用信号量:fullnum表示邮箱中消息表示邮箱中消息个数个数,初值为初值为0。前一页 休息邮箱通信邮箱通信l实现(两个进程通信):实现(两个进程通信):设发送进程调用过程设发送进程调用过程 deposit(m)将消息发送到邮箱,接收进程调将消息发送到邮箱,接收进程调用过程用
13、过程remove(m)将消息将消息m 从邮箱中取出。从邮箱中取出。进进程程通通信信deposit(m):begin local x(nullnum)选择空格选择空格x将消息将消息m放入空格放入空格x中中置格置格x的标志为满的标志为满(fullnum)endremove(m):begin local x(fullnum)选择满格选择满格x把满格把满格x中的消息取出中的消息取出置格置格x标志为空标志为空(nullnum)end 前一页 休息3.8死锁定义死锁定义l定义:各并发进程彼此互相等待对方所拥有的定义:各并发进程彼此互相等待对方所拥有的资源,且这些进程在得到对方的资源之前不会释资源,且这些进
14、程在得到对方的资源之前不会释放自己所拥有的资源,从而造成并发进程不能继放自己所拥有的资源,从而造成并发进程不能继续向前推进的状态。续向前推进的状态。若死锁只存在于部分进程中,称系统发生了若死锁只存在于部分进程中,称系统发生了局部死锁局部死锁;若系统中所有进程都出现了死锁,则;若系统中所有进程都出现了死锁,则称系统发生了称系统发生了全局死锁全局死锁。死死锁锁 前一页 休息死锁的起因死锁的起因 死锁的死锁的起因起因是并发进程的资源竞争是并发进程的资源竞争,而而根本原根本原因因在于系统提供的资源个数少于并发进程所要求的在于系统提供的资源个数少于并发进程所要求的该类资源数。该类资源数。死死锁锁P1P3
15、P2请求请求S3S3产生产生S1S1请求请求S2S2产生产生S3S3请求请求S1S1产生产生S2S2l系统资源不足系统资源不足l进程推进顺序非法进程推进顺序非法 前一页 休息死锁发生的必要条件死锁发生的必要条件l互斥条件互斥条件:一个资源在某一时刻只能分配给一个进程。若一个资源在某一时刻只能分配给一个进程。若一个进程申请某资源时,该资源被另一进程占用,一个进程申请某资源时,该资源被另一进程占用,则申请者等待,直到占有者释放该资源时才可能则申请者等待,直到占有者释放该资源时才可能获得。获得。l部分分配部分分配:进程在占用部分资源后,运行时还可以申请其进程在占用部分资源后,运行时还可以申请其余的资
16、源,而且在申请其余资源时并不释放已占余的资源,而且在申请其余资源时并不释放已占用的资源。用的资源。死死锁锁 前一页 休息死锁发生的必要条件死锁发生的必要条件l不剥夺条件:不剥夺条件:已分配给进程的资源不可被剥夺,只能被已分配给进程的资源不可被剥夺,只能被占有者自行释放。占有者自行释放。l环路条件:环路条件:系统中存在着一条由两个系统中存在着一条由两个或两个以上的进程组成的循或两个以上的进程组成的循环链,链中的每个进程都在环链,链中的每个进程都在等待相邻进程已占用的资源。等待相邻进程已占用的资源。死死锁锁S3P3S1P2P1S2 P1P3 P2请求请求S3S3产生产生S1S1请求请求S2S2产生
17、产生S3S3请求请求S1S1产生产生S2S2 前一页 休息解决死锁的方法解决死锁的方法l 预防预防 采用某种策略使得死锁的必要条件在系统执行的任何采用某种策略使得死锁的必要条件在系统执行的任何时间都得不到满足。时间都得不到满足。l 避免避免 可称为可称为动态预防动态预防,是指在系统分配资源时,根据资源,是指在系统分配资源时,根据资源的使用情况提前作出预测,从而避免死锁发生。的使用情况提前作出预测,从而避免死锁发生。l 检查与恢复检查与恢复 是指系统设有专门的机构,死锁发生时,该机构能是指系统设有专门的机构,死锁发生时,该机构能够检测到死锁发生的位置和原因,并能通过外力破环死够检测到死锁发生的位
18、置和原因,并能通过外力破环死锁发生的必要条件,从而使得并发进程从死锁状态中恢锁发生的必要条件,从而使得并发进程从死锁状态中恢复过来。复过来。死死锁锁 前一页 休息解决死锁的方法解决死锁的方法l预防死锁预防死锁 死锁产生的必要条件为解决死锁问题提供了死锁产生的必要条件为解决死锁问题提供了思路。思路。限制限制“互斥条件互斥条件”然而对于临界资源必须互斥访问,这是某些资然而对于临界资源必须互斥访问,这是某些资源使用时所必须要求的(如打印机),不能加源使用时所必须要求的(如打印机),不能加以改变,所以不易有解决方案。以改变,所以不易有解决方案。死死锁锁 前一页 休息解决死锁的方法解决死锁的方法l预防死
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 修订 计算机 操作系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内