网站大量收购独家精品文档,联系QQ:2885784924

.欲设计一个分时售票系统,各个终端共用票号单元x,.pptVIP

.欲设计一个分时售票系统,各个终端共用票号单元x,.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.欲设计一个分时售票系统,各个终端共用票号单元x,

司机与售票员协调问题 只有售票员把车门关好,司机才能开车,从而售票员关门应通知司机开车; 只有汽车已停下,售票员才能开门让乘客上下,从而司机停车后应通知售票员 s1:车门是否关上,0表示未关,初始值为0 s2:车是否已停止,0为正在行进,初始值为1 同步的进程 司机进程 售票员进程 While(1) { while(1){ P(s1); P(s2); 开车行进; 开门上下客; 到站停车; 关车门; V(s2);} V(s1);} 吸烟者问题 The Readers and Writers Problem Reader first solution. Writer first solution. * 欲设计一个分时售票系统,各个终端共用票号单元x, 执行卖票程序send(x)。为了互斥地卖票,设置一个变量 gate, 卖票者将它置0,以便将其它终端进程堵在卖票程序 之外。各个终端进程使用下列程序段: while (gate == 0) ; // 查看别人在卖票就踏步等待 gate = 0; // 一旦别人买完退出,便关上门 //准备卖票 send(x); // 卖票 gate = 1;// 卖完票后开门,准备让 //别人卖 试问上述程序结构是否存在与时间有关的错误? 这个程序可能产生与时间有关的错误。比如 如果当前gate 的值为1,门是开的。进程A 在考察了gate 的值后,在执行“gate = 0;”之 前它的时间片到期了,发生了时间片到期中断。 此时gate的值仍为1,进程B可以进入卖票。 很可能在它卖票的同时,被中断的进程A再 次被调度运行,导致进程A与B同时卖票的 混乱局面。 有一阅览室,读者进入时必须先在一张登记表上进行登记,该表为每一座位列一表目,包括座号和读者姓名。读者离开时要消掉登记信号,阅览室中共有100个座位,请用类Pascal语言和Wait, Signal操作写出这些进程间的同步算法 S1=100 (有100个座位) S2=0 (有没阅读者) mutex =1 while(1) { P(S1); P(mutex); 登记信息; V(muetx); V(S2)就座,阅读; } while(1) { P(S2); P(mutex); 消掉信息; V(muetx); V(S1); 离开阅览室; } smoker2 smoker1 smoker2 Wait(s1); 卷烟; 抽烟; Signal(done); Wait(s2); 卷烟; 抽烟; Signal(done); Wait(s3); 卷烟; 抽烟; Signal(done); agent Do{ Wait(done); 放置××; If( ) Signal(s1); If( ) Signal(s2); If( ); Signal(s3); }while(1); wait( mutex ); readcount++; if ( readcount == 1 ) wait( wrt ); signal( mutex ); … reading is performed … wait(mutex); readcount--; if ( readcount == 0 ) signal( wrt ); signal( mutex ); wait( wrt ); … writing is performed … signal( wrt ); 2.第二类读者写者问题: 写者优先 条件: 1)多个读者可以同时进行读 2)写者必须互斥(只允许一个写者写,也不能读者写者同时进行) 3)写者优先于读者(一旦有写者,则后续读者必须等待,唤醒时优先考虑写者) Semaphore rwmutex=1, rmutex=10;  //假定容许10个读者 读者进程: begin Wait(rwmutex);//读者写者互斥 Wait(rmutex); Signal(rwmutex);//容许

文档评论(0)

zqianqxf02 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档