操作系统原理华中科技大学

操作系统原理华中科技大学

ID:38438523

大小:1.04 MB

页数:61页

时间:2019-06-12

操作系统原理华中科技大学_第1页
操作系统原理华中科技大学_第2页
操作系统原理华中科技大学_第3页
操作系统原理华中科技大学_第4页
操作系统原理华中科技大学_第5页
资源描述:

《操作系统原理华中科技大学》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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用上锁原语和开锁原语实现互斥假设有两个进程共享打印机,两个进程中使用打印机的程序段为临界区。为保证打印的正确,设置

2、打印机的锁位print,其初值为“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代表资源的实体。在实际应用中

3、应准确地说明s的意义和初值,每个信号灯都有一个队列,其初始状态为空。94.6信号灯和P、V操作 4.6.2P、V操作信号灯的值仅能由P、V操作来改变,对信号灯的P操作记为:P(S),P操作是一个原子操作。对信号灯的V操作记为:V(S),V操作是一个原子操作。在实际操作系统中,一般情况下是由机器硬件提供P、V操作的指令,当然是原子操作,若机器不提供P、V操作的指令,则操作系统提供P、V操作原语。104.6信号灯和P、V操作 4.6.2P、V操作P操作:(1)s值减1;(2)若相减结果大于等于0,则进程继续执行;(3)若结果小于0,则该

4、进程挂起。注:推起该进程包括:保留调用进程CPU现场;置“等待”状态;入等待队列;转进程调度;114.6信号灯和P、V操作 4.6.2P、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.

5、3用信号灯实现进程互斥144.7进程同步 4.7.1同步的例子引例1:两位同学约好星期天去东湖,早上8:00在校门口,不见不散。当一个同学先来到校门口,要等另一个同学,到齐后一道打的去东湖154.7进程同步 4.7.2同步的概念互斥的概念来自于诸进程对独占使用资源(设备)的竞争,同步来源于多个进程的合作。在人类社会中竞争与合作是永恒的。同步:所谓同步就是并发进程在一些关键点上可能需要相互等待与互通消息,这样的相互制约关系称为进程同步。164.7进程同步 4.7.3用信号灯实现进程的同步在操作系统中,同步有各种各样,但归纳起来有两类:

6、诸进程合作完成某工作的逻辑顺序,如考研问题;对系统资源的共享。如两个进程共享一个缓冲区完成誊抄问题174.7进程同步 4.7.3用信号灯实现进程的同步(一)合作进程的执行次序用进程流图来描述诸进程合作完成某一任务的次序,其规则如下184.7进程同步 4.7.3用信号灯实现进程的同步用信号灯及P、V操作来描述左图1、说明进程的同步关系进程P1、P2可并行执行,P3的执行必须等待P1、P2都完成后才能开始执行。2、设置信号灯,说明含义、初值。s13=0表示进程P1尚未执行完成;s23=0表示进程P2尚未执行完成;194.7进程同步 4.

7、7.3用信号灯实现进程的同步204.7进程同步 4.7.3用信号灯实现进程的同步(二)共享缓冲区的合作进程的同步设有一个缓冲区buffer,大小为一个字节,CP进程不断产生字符,送buffer,IOP进程从buffer中取出字符打印。如不加控制,会有多种打印结果,这取决于这两个进程运行的相对速度。在这众多的打印结果中,只有CP、IOP进程的运行刚好匹配的一种是对的,其它均为错误,并且不能重现。214.7进程同步 4.7.3用信号灯实现进程的同步要保证打印结果的正确,CP、IOP必须遵循以下同步规则:(1)当CP把结果送入buffer

8、后,IOP才能从buffer中取,否则IOP必须等待;(2)当IOP从buffer中取走数据后,CP才能将新产生数据送buffer,否则也必须等待。解决这个问题的步骤:(1)分析问题,弄清楚同步关系,如上分析;(2)设置信号灯,说明含

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

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

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