收藏 分销(赏)

计算机操作系统P V操作.ppt

上传人:s4****5z 文档编号:14005570 上传时间:2026-05-26 格式:PPT 页数:7 大小:1.03MB 下载积分:10 金币
下载 相关 举报
计算机操作系统P V操作.ppt_第1页
第1页 / 共7页
计算机操作系统P V操作.ppt_第2页
第2页 / 共7页


点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,*,信号量机制,P,、,V,操作例题,信号量机制,信号量机制,wait,和,signal,又称为,P,、,V,操作,,P,、,V,原语,,P,、,V,操作的一般描述如下:,P,操作:,(,1,),S,减,1,;,(,2,)若,s,减,1,后仍大于或等于零,则进程继续执行(可进入临界区);,(,3,)若,s,减,1,后小于零,则该进程被阻塞在与该信号相对应的队列中,然后转进程调度。,P,、,V,操作,入 口,S=S-1,S 0,返 回,调用进程入等待队列,转进程调度,否,是,入 口,S=S+1,S 0,返 回,唤醒等待队列中的一个进程,返回或转进程调度,是,否,V,操作:,(,1,),S,加,1,;,(,2,),若相加结果大于零,进程继续执行(无等待该临界资源的阻塞进程);,(,3,)若相加结果小于或等于零,则从该信号的等待队列中唤醒一个等待进程,然后再返回原进程继续执行或转进程调度。,1,、独木桥问题。某条河上只有一座独木桥,以便行人过桥,现在河的两边都有人要过桥,按照下面的规则过桥,为了保证过桥安全,请用,P,,,V,操作分别实现正确的管理。,过桥的规则:同一方向的可连续过桥,某方向有人过桥时另一方向的人要等待。,2,、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的香蕉,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者使用,请用,P,,,V,原语实现爸爸、儿子、女儿三个并发进程的同步。,3,、某寺庙,有小、老和尚若干,有一水缸,有小和尚提水入缸供老和尚饮用。水缸可容,10,桶水,水取自同一井中。水井径窄,每次只能容一个桶取水。水桶总数为,3,个。每次入、取缸水仅为,1,桶,且不可同时进行。给出取水、入水的算法描述。,1,、独木桥问题。过桥的规则:同一方向的可连续过桥,某方向有人过桥时另一方向的人要等待。,Var,Semaphore,mutex,Lmutex,Rmutex,=1,0,0;,int,Lcount,=0,Rcount,=0,;,Main(),cobegin,Left();Right();,Coend,Left(),while(true),P(Lmutex,);,if,Lcount,=0,P(mutex,);,Lcount,=Lcount+1;,V(Lmutex,),过桥;,p(Lmutex,);,if,Lcount,=0,V(mutex,);,Lcount,=Lcount-1;,V(Lmutex,),/,mutex,左右两边过桥的互斥信号量;,Lcount,Rcount,左右两边过桥人数,/,Lmutex,Rmutex,分别表示对,Lcount,Rcount,互斥访问的信号量,Right(),while(true),P(Rmutex,);,if,Rcount,=0,P(mutex,);,Rcount,=Rcount+1;,V(Rmutex,),过桥;,p(Rmutex,);,if,Rcount,=0,V(mutex,);,Rcount,=Rcount-1;,V(Rmutex,),桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果和香蕉,儿子专等吃盘中的香蕉,女儿专等吃盘中的苹果。,Var,dish,apple,banana:Semaphore:=1,0,0;,Main(),cobegin,Father();,son();daugher,();,Coend,Father(),while(true),p(dish);,if,放的是苹果,v(apple,);,else,V(banana,),son(),while(true),p(banana);,从盘子取香蕉;,v(dish);,吃香蕉;,daugher,(),while(true),p(apple);,从盘子取苹果;,v(dish);,吃苹果;,/dish,互斥使用盘子;,apple,盘中苹果数;,banana,盘中香蕉数,桌上有一空盘,允许存放一只水果。,爸爸可向盘中放苹果,,,妈妈向盘中放香蕉,,儿子专等吃盘中的香蕉,女儿专等吃盘中的苹果。,Var,dish,apple,banana:Semaphore:=1,0,0;,Main(),cobegin,Father();mother();son();daugher,();,Coend,Father(),while(true),p(dish);,将苹果放入盘子;,v(apple);,Mother(),while(true),p(dish);,将,香蕉放入盘子;,v(,banana,);,son(),while(true),p(banana);,从盘子取香蕉;,v(dish);,吃香蕉;,daugher,(),while(true),p(apple);,从盘子取苹果;,v(dish);,吃苹果;,/dish,互斥使用盘子;,apple,盘中苹果数;,banana,盘中香蕉数,某寺庙,有小、老和尚若干,有一水缸,有小和尚提水入缸供老和尚饮用。水缸可容,10,桶水,水取自同一井中。水井径窄,每次只能容一个桶取水。水桶总数为,3,个。每次入、取缸水仅为,1,桶,且不可同时进行。给出取水、入水的算法描述,Semaphore mutex1=1;mutex2=1;,empty=10;full=0;count=3;,Main(),cobegin,get();use();,coend,Get()/,小和尚入水,while(true),p(empty);,p(count);,P(mutex1);,从井中取水;,v(mutex1),;,P(mutex2),;,将水倒入缸中;,v(mutex2),;,v(count),;,v(full),;,Use(),/,老和尚取水,while(true),p(full),;,p(count),;,P(mutex2),;,从缸中取水;,v(mutex2),;,v(empty),;,v(count),;,/mutex1:,互斥从井中提水;,mutex2:,互斥从缸中取水;,empty:,缸中尚能盛水的桶数;,full:,缸中已盛水的桶数;,count:,已用水桶数,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服