33操作系统第三章.ppt
《33操作系统第三章.ppt》由会员分享,可在线阅读,更多相关《33操作系统第三章.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 进程管理进程同步 定定义义:我我们们把把在在异异步步环环境境下下的的一一组组并并发发进进程程因因直直接接制制约约,互互相相发发送送消消息息,并并进进行行互互相相合合作作、互互相相等等待待,使使得得各各进进程程按按一一定定的的速速度度执执行行的的过过程称为进程间的同步。程称为进程间的同步。具具有有同同步步关关系系的的一一组组并并发发进进程程称称为为合合作作进进程程;合作进程间互相发送的信号称为消息或事件。合作进程间互相发送的信号称为消息或事件。同步的概念进程同步进程同步 例:计算进程和打印进程公用同一缓冲区例:计算进程和打印进程公用同一缓冲区BufBuf。P PC C(计算计算)P PP
2、 P(打印)打印)A:local A:local BufBuf B:local B:local P PririRepeat RepeatRepeat Repeat BufBuf BufBuf P Priri BufBufUntil Until BufBuf=空空 计算计算Until Until P Priri 空空得到计算结果得到计算结果打印打印BufBuf中数据中数据BufBuf 计算结果计算结果 清除清除BufBuf中数据中数据GotoGoto A A GotoGoto B B进程同步进程同步 问题:浪费CPU时间。采用消息的方法实现直接制约(同步):设过程Wait(过程名)表示进程等待合
3、作进程发来消息。过程signal(消息名)表示向合作进程发送消息。设 消 息 名 Bufempty表 示 Buf空,设 消 息 名Buffull表示Buf满(装满数据)。初始化:Bufempty=true,Buffull=false 进程同步进程同步Pc PpA:wait(Bufempty)B:wait(Buffull)计算 打印Buf中的数据 Buf 计算结果 清除Buf中的数据 Bufempty false Buffull false Signal(Buffull)signal(Bufempty)Goto A Goto B进程同步进程同步 私用(有)信号量私用(有)信号量 把把各各进进程程
4、间间发发送送的的消消息息作作为为信信号号量量看看待待,这这种种信信号号量量只只与与制制约约进进程程和和被被制制约约进进程程有有关关,但但不不与与整整组组并并发发进进程程有有关关,这这种种信信号号量量称称为为私用信号量(私用信号量(Private SemaphorePrivate Semaphore)。)。与与私私用用信信号号量量相相对对应应,我我们们称称进进程程互互斥斥时时使用的信号量为公用信号量。使用的信号量为公用信号量。进程同步进程同步 用用P P、V V原语操作实现进程的直接制约原语操作实现进程的直接制约(同步同步)例例子子:设设进进程程和和通通过过缓缓冲冲区区队队列列传传送送数数据据(
5、如如图图3.143.14),P PA A为为发发送送进进程程,P PB B为为接接收收进进程程;P PA A发发送送数数据据时时调调用用发发送送过过程程deposit(data)deposit(data),P PB B接接收收数数据据时时调调用用过过程程remove(data)remove(data)。且且数数据据的的发发送送与接收过程满足如下条件:与接收过程满足如下条件:1 1)在在P PA A至至少少送送一一块块数数据据入入一一个个缓缓冲冲区区之之前前,P PB B不不可可能能从从缓缓冲冲区区中中取取出出数数据据(假假定定数数据据块块长长等于缓冲区长度)。等于缓冲区长度)。进程同步进程同步
6、 2)P PA A往往缓缓冲冲队队列列发发送送数数据据时时,至至少少有有一一个缓冲区是空的;个缓冲区是空的;3 3)由由P PA A发发送送的的数数据据块块在在缓缓冲冲队队列列中中按按先先进先出(进先出(FIFOFIFO)方式排列。方式排列。P PA A BuffBuff1 1 buffbuff2 2 buffbuff3 3 .BuffBuffn n P PB B进程同步进程同步 我们按如下三步描述过程deposit(data)和 remove(data)1)设Buf-empty为进程PA的私用信号量,表示缓冲区是否有空;Buf-full为进程PB的私用信号量,表示缓冲区是否有数可取;2)Bu
7、f-empty的初始值为n(n为缓冲队列的缓冲区个数),Buf-full的初始值为0;进程同步进程同步 3)算法描述如下:PA:deposit(data)Begin local x;P(Buf-empty);按 FIFO方 式 选 择 一 个 空 缓 冲 区Buf(x);Buf(x)data;Buf(x)置满标记;V(Buf-full);End.进程同步进程同步 P PB B:remove(data)remove(data)Begin local x;Begin local x;P(BufP(Buf-full);-full);按按FIFOFIFO方方式式选选择择一一个个装装满满数数据据的缓冲区
8、的缓冲区Buf(xBuf(x););data data Buf(xBuf(x););Buf(xBuf(x)置空标记;置空标记;V(BufV(Buf-empty);-empty);End.End.进程同步进程同步 这里,局部变量x用来指明缓冲区的区号;给Buf(x)置标志位是为了便于区别和搜索空缓冲区与非空缓冲区。比较互斥与同步的两个例子:互斥 同步设 置 信 号 量 S(公 用)设 置 信 号 量 S1,S2 (私用)信号量初值S=1 信号量初值S1=n.,S2=0。进程同步进程同步 算法描述:P1 P1 Begin begin P(S)P(S1)临界资源 送数 V(S)V(S2)End En
9、d进程同步进程同步 P2 P2P2 P2 Begin begin Begin begin P(S)P(S P(S)P(S2 2)临界资源临界资源 取数取数 V V(S S)V V(S S1 1)End EndEnd End进程同步进程同步 示图:P1、P2 P1 P2 P(S)P(S1)P(S2)临界区 送数 取数 V(S)V(S2)V(S1)经典进程的同步问题经典进程的同步问题 在多道程序环境下,进程同步问题十分重要,出现一系列经典的进程同步问题,其中有代表性有:生产者生产者消费者问题消费者问题哲学家进餐问题哲学家进餐问题读者读者写者问题写者问题 1 1、“生产者生产者消费者消费者”问题问题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 33 操作系统 第三
限制150内