美文网首页
第二章 信号量习题(5)

第二章 信号量习题(5)

作者: w王好人w | 来源:发表于2018-09-27 22:33 被阅读0次

黑白棋子问题

两个人下棋,一方执黑棋,一方执白棋。要求双方轮流下子。给出两种情况的解决办法:

 1)执黑子一方先下

2)双方都可以先下,谁先抢到棋盘谁先下。然后开始轮流下子。

信号量:b=1,w=0

黑:

while(没结束){

  wait(b);

  下一黑棋;

  signal(w);

}

白:

while(没结束){

  wait(w);

  下一白棋;

  signal(b);

}

先定义信号量b=1,w=0;

黑子先wait(b) 白子先wait(w) 一旦定义信号量时定义了b=1 w=0

这就说明只能是黑子先下 因为黑子是1 wait后可以继续执行 只有在黑子下完后signal(w)后w+1后白字才能再下。

双方都可以先下,谁先抢到棋盘谁先下。然后开始轮流下子:

Semaphore 

  m=1;

turn=0;

while(没结束){

p(m)

if (turn!=2)

  下一黑子;

  turn=2;

  v(m)

}

白:

while(没结束){

  p(m);

  if (turn!=1)

  下一白子;

  turn=1;

  v(m)

定义了信号量m=1 都先P(m) 后都可以继续往下执行 这就决定了谁先抢到棋盘谁先下,因为turn初始值为0 都判断了turn后都可以往下执行  但是谁执行了 谁就把turn赋值为和自己互斥的量 这就保证了不能一直是黑子下 或者 一直是白字下

相关文章

  • 第二章 信号量习题(5)

    黑白棋子问题 两个人下棋,一方执黑棋,一方执白棋。要求双方轮流下子。给出两种情况的解决办法: 1)执黑子一方先下 ...

  • 二.进程(5)信号量习题

    1. 读者与写者(写者优先方式) 2. 黑白棋问题 3. 嗜睡的理发师问题 4. 生产与销售问题 读者与写者问题 ...

  • 第二章(五)信号量习题

    1.黑白棋子问题 问题描述:两个人下棋,一方执黑棋,一方执白棋。要求双方轮流下子。给出两种情况的解决办法: (...

  • 第二章 习题

    title: 第二章 习题category: 习题date: 2019/08/13mathjax: true 1....

  • C++ Linux线程同步机制:POSIX信号量,互斥锁,条件变

    线程同步机制:POSIX 信号量,互斥量,条件变量 POSIX 信号量 常用的POSIX 信号量函数为如下5个: ...

  • 第2章 2-5信号量习题

    1.读者与写者问题(写者优先方式) 读者优先的关键: 若读者先占有互斥信号量,只有最后一个读者离开,计数降为0时...

  • 【Python爬虫】01作业

    习题0 在老师的帮助下完成,特别感谢程程老师! 习题1 习题2 习题3 习题4 习题5 习题6 习题7 习题8 习...

  • 【Python爬虫】-《笨办法学 Python》练习

    零基础学习python第一课,感谢程程老师! 习题0 习题1 习题2 习题3 习题4 习题5 习题6

  • 第二章操作系统复习要点

    第二章操作系统复习要点 本章每次约3题 一、资源互斥(PV) 信号量包含两类,一类是公用信号量,他实现进程间的互斥...

  • 第七天

    5:00起床 5:30晨读生态学第二章,第1节习题答案。 8:00英语口语第十八天文本练习。 9:00整理昨晚英语...

网友评论

      本文标题:第二章 信号量习题(5)

      本文链接:https://www.haomeiwen.com/subject/lviyoftx.html