操作系统原理第四章并发处理B.ppt
《操作系统原理第四章并发处理B.ppt》由会员分享,可在线阅读,更多相关《操作系统原理第四章并发处理B.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1 第四章 并发处理24.5 进程互斥 4.5.2 锁和上锁、开锁操作这样当一个进程使用某个临界资源之前必须完成下列操作:1、考察锁位的值;2、若原来的值是为“0”,将锁位置为“1”(占用该资源);3、若原来值是为“1”,(该资源已被别人占用),则转到1。当进程使用完资源后,将锁位置为“0”,称为开锁操作。34.5 进程互斥 4.5.2 锁和上锁、开锁操作44.5 进程互斥 4.5.2 锁和上锁、开锁操作 改进的算法54.5 进程互斥4.5.3 用上锁原语和开锁原语实现互斥假设有两个进程共享打印机,两个进程中使用打印机的程序段为临界区。为保证打印的正确,设置打印机的锁位print,其初值为“
2、0”,表示打印机可。64.5 进程互斥4.5.3 用上锁原语和开锁原语实现互斥74.6 信号灯和P、V操作4.6.1 信号灯的概念信号灯的概念是由Dijkstra提出的(1968)。他把互斥的关键概念抽象到信号量这个概念中,信号量是一个被保护的变量,只有P操作、V操作和一种称为信号量初始化操作才能访问和改变它的值。84.6 信号灯和P、V操作4.6.1 信号灯的概念 信号灯的定义:信号灯是一个确定的二元组(s,q),s 是一个具有非负初值的整型变量,q 是一个初始状态为空的排队站。S代表资源的实体。在实际应用中应准确地说明s的意义和初值,每个信号灯都有一个队列,其初始状态为空。94.6 信号灯
3、和P、V操作 4.6.2 P、V操作信号灯的值仅能由P、V操作来改变,对信号灯的P操作记为:P(S),P操作是一个原子操作。对信号灯的V操作记为:V(S),V操作是一个原子操作。在实际操作系统中,一般情况下是由机器硬件提供P、V操作的指令,当然是原子操作,若机器不提供P、V操作的指令,则操作系统提供P、V操作原语。104.6 信号灯和P、V操作 4.6.2 P、V操作P操作:(1)s值减1;(2)若相减结果大于等于0,则进程继续执行;(3)若结果小于0,则该进程挂起。注:推起该进程包括:保留调用进程CPU现场;置“等待”状态;入等待队列;转进程调度;114.6 信号灯和P、V操作 4.6.2
4、P、V操作V操作:(1)s值加1;(2)若相加结果大于0,进 程继续执行;(3)否则,唤醒一个(或多个)等待该信号灯的进程,然后本进程继续执行。124.6 信号灯和P、V操作4.6.3 用信号灯实现进程互斥用两个进程共享打印机的例子设信号灯print表示打印机,初值为1,表示打印机可用(也可理解为有一台打印机)。(print也是用于互斥的信号灯,教材上设置为mutex。)134.6 信号灯和P、V操作4.6.3 用信号灯实现进程互斥144.7 进程同步4.7.1 同步的例子引例 1:两位同学约好星期天去东湖,早上8:00在校门口,不见不散。当一个同学先来到校门口,要等另一个同学,到齐后一道打的
5、去东湖154.7 进程同步 4.7.2 同步的概念互斥的概念来自于诸进程对独占使用资源(设备)的竞争,同步来源于多个进程的合作。在人类社会中竞争与合作是永恒的。同步:所谓同步就是并发进程在一些关键点上可能需要相互等待与互通消息,这样的相互制约关系称为进程同步。164.7 进程同步 4.7.3 用信号灯实现进程的同步在操作系统中,同步有各种各样,但归纳起来有两类:诸进程合作完成某工作的逻辑顺序,如考研问题;对系统资源的共享。如两个进程共享一个缓冲区完成誊抄问题174.7 进程同步 4.7.3 用信号灯实现进程的同步(一)合作进程的执行次序 用进程流图来描述诸进程合作完成某一任务的次序,其规则如下
6、184.7 进程同步 4.7.3 用信号灯实现进程的同步用信号灯及P、V操作来描述左图1、说明进程的同步关系 进程P1、P2可并行执行,P3的执行必须等待P1、P2都完成后才能开始执行。2、设置信号灯,说明含义、初值。s13=0 表示进程P1尚未执行完成;s23=0 表示进程P2尚未执行完成;194.7 进程同步 4.7.3 用信号灯实现进程的同步204.7 进程同步 4.7.3 用信号灯实现进程的同步(二)共享缓冲区的合作进程的同步 设有一个缓冲区buffer,大小为一个字节,CP进程不断产生字符,送buffer,IOP进程从buffer中取出字符打印。如不加控制,会有多种打印结果,这取决于
7、这两个进程运行的相对速度。在这众多的打印结果中,只有CP、IOP进程的运行刚好匹配的一种是对的,其它均为错误,并且不能重现。214.7 进程同步 4.7.3 用信号灯实现进程的同步要保证打印结果的正确,CP、IOP必须遵循以下同步规则:(1)当CP把结果送入buffer后,IOP才能从buffer中取,否则IOP必须等待;(2)当IOP从buffer中取走数据后,CP才能将新产生数据送buffer,否则也必须等待。解决这个问题的步骤:(1)分析问题,弄清楚同步关系,如上分析;(2)设置信号灯,说明含义、初值;(3)写出程序描述。224.7 进程同步 4.7.3 用信号灯实现进程的同步234.7
8、 进程同步4.7.4 生产者消费者问题我们把上面的例子扩充,假定缓冲区buffer是一个有界缓冲区,可存放n个数据,同时假定有n个CP进程不断地产生数据,并送buffer;有m个IOP进程从缓冲区中取数据打印。在我们生活中有很多这样的例子。244.7 进程同步4.7.4 生产者消费者问题对于生产者进程:产生一个数据,当要送入缓冲区时,要检查缓冲区是否已满,若未满,则可将数据送入缓冲区,并通知消费者进程;否则,等待;对于消费者进程:当它去取数据时,要看缓冲区中是否有数据可取,若有则取走一个数据,并通知生产者进程,否则,等待。这种相互等待,并互通信息就是典型的进程同步。同时,缓冲区是个临界资源,因
9、此,诸进程对缓冲区的操作程序是一个共享临界区,因此,还有个互斥的问题。254.7 进程同步4.7.4 生产者消费者问题264.7 进程同步4.7.4 生产者消费者问题274.7 进程同步4.7.4 生产者消费者问题28补充题1:有十个读者和两个编辑同时处理一篇文章,对于读操作是可以同时进行的,若有读者正在读这篇文章,编辑就不能工作,若编辑正在处理这篇文章,读者就不能作读操作,编辑与编辑的工作也是互斥的,试用信号灯及P、V操作写出读者与编辑之间协同工作的程序描述。2930解:mutex:用于读者与编辑、编辑与编辑的互斥信号灯,初值为1;mutex1:用于对couter操作的互斥的信号灯,初值为1
10、。31补充题2:理发师睡觉问题理发店里有一位理发师、一把理发椅和n把供顾客等候理发坐的椅子。如果没有顾客,则理发师便在理发椅上睡觉,当一顾客来到时,他必须先叫醒理发师,如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,他们就坐下来等,如果没有空椅子,他就离开。用信号灯和P、V操作写出理发师和顾客行为的程序描述。32补充题3:哲学家就餐问题五个哲学家围坐在一个园桌周围,每个哲学家面前都有一盘通心面,由于面条很滑,所以要两把叉子才能夹住。相邻两个盘子间有一把叉子,餐桌如右图。哲学家的生活包括两种活动:即吃面条和思考。当哲学家觉得饿时,他就试图分两次去取他左边和右边的叉子,每次拿一把,不分先后次
11、序,如果成功,他就开始吃面条,吃完后放下叉子,继续思考。试用信号灯及P、V操作写出哲学家行为的程序描述,要求不能让某个(或某些哲学家饿死)。33补充题3:哲学家就餐问题344.9 UNIX系统的进程管理4.9.1 UNIX系统的进程的图象(image)(一)进程图象的组成 1、进程控制块PCB基本进程控制块 proc结构:存放进程的最基本的控制和管理信息,不论该进程是否处于运行状态,系统都要访问的信息,必须常驻内存;扩充进程控制块 user结构:存放进程的管理和控制信息,这些信息只有当进程处于运行状态时,系统才访问,不一定常驻内存。354.9 UNIX系统的进程管理 4.9.1 UNIX系统的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 第四 并发 处理
限制150内