操作系统同步例题.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统同步例题 操作系统同步例题 操作系统同步例题 13. 于生 者—消 者 ,假 冲区是无界的, 用信号灯与 PV 操作 出解法。 答:因为是无界 冲区, 所以生 者不会因得不到 冲区而被堵塞, 不需要 空 冲区 行 管理,能够去掉在有界 冲区顶用来管理空 冲区的信号量及其 PV操作。 semaphore mutex_in=1; semaphore mutex_out=1; semaphore empty=0; int in=0 ,out=0; 生 者活 : 消 者活 : while(1){ while(1){ produce next product; P(empty); P(mutex_in); P(mutex_out); add the product to buffer[in]; take the product from buffer[out]; in++; out++; v(mutex_in); V(mutex_out); V(empty); } } 有一个能够装 A、B 两种物件的 , 其容量无穷大,但要求 中 A、B 两种物件的数目 足下述不等式 : M≤ A 物件数目- B 物件数目≤ N 此中 M和 N 正整数。 用信号灯和 PV 操作描绘 A、 B 两种物件的入 程。 答:已知条件 - M≤A 物件数目- B 物件数目≤ N 能够拆成两个不等式,即 A 物件数目- B 物件数目≤ N, B 物件数目- A 物件数目≤ M。 两个不等式的含 是: 中 A 物件能够比 B 物件多,但不可以超 N个;B物件能够比 A 物件多,但不可以超 M个。 semaphore a=n; semaphore b=m; void main(){ createprocess(A, ?); createprocess(B, ?); } 物件入 : void A(){ while(1){  物件入 : void B(){ while(1){ P(a); P(b); A 物件入库 ; B 物件入库 ; V(b); V(a); } } } } 试用信号灯与 PV操作实现司机与售票员之间的同步问题。设公共汽车上有一个司机和一个售票员,其活动以下列图 所示。 为了安全起见, 明显要求 : (1) 关车门后方能启动车辆; (2) 到站泊车后方能开车门。 亦即“启动车辆” 这一活动应该在 “关车门” 这一活动以后, “开车门” 这一活动应该在 “到站泊车”这一活动以后。 解:假如进度 P2 还没有推动到②处时, 进度 P1 已经推动到①处, 则 P1 应等候直到 P2 推动到 ②处为止;相同,假如进度 P1 还没有推动到③处时,进度 P2 已经推动到④处,则 P2 应等候 直到 P1 推动到③处为止。假如进度 P1 在①处发生了等候,则当进度 P2 履行到②处时应将 P1 唤醒;相同,假如进度 P2 在④处发生了等候,则当进度 P2 履行到③处时应将 P1 唤醒。 用信号量和 P、 V 操作解决这一问题,需要定义两个信号量,一个信号量 start 表示能否允 许司机启动车辆,另一个信号量 open 表示能否同意售票员开车门。初始状态是车停在始发 站,车门开着,等候乘客上车。所以,两个信号量的初值都是 0。 semaphore start=0; semaphore open=0; 司机的活动 : 售票员的活动 : P1: do{ P2: do{ P(start); 关车门 ; 启动车辆 ; V(start); 正常行车 ; 售票 ; 到站泊车 ; P(open); V(open); 开车门 ; }while (1); }while (1); 16. 设有 A、B、C 三组进度,它们互斥地使用某一独占型资源 R,使用前申请,使用后释 放。资源分派原则以下 : (1) 当只有一组申请进度时,该组申请进度挨次获取 R; (2) 当有两组申请进度时,各组申请进度交替获取 R,组内申请进度挨次获取 R; (3) 当有三组申请进度时,各组申请进度轮番获取 R,组内申请进度挨次获取 R。 试用信号灯和 PV 操作分别给出各组进度的申请活动程序段和开释活动程序段。 解: int free=1; 设自行车生产线上有一只箱子, 此中有 N 个地点 (N≥ 3) ,每个地点可寄存一个车架或一个车 轮; 又设有三个工人,其活动分别为: 工人 1 活动: 工人 2 活动: 工人 3 活动: do { do { do { 加工一个车架 ; 加工一个车轮 ; 箱中取一车架 ; 车架放入箱中 ; 车轮放入箱中 ; 箱中取二车轮 ; }while(1) }while(1) 组装为一台车 ; }while(1) 试

文档评论(0)

150****0527 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档