zoukankan      html  css  js  c++  java
  • 信号量习题

    读者与写者(写者优先方式)

    读者优先的关键:

    若读者先占有互斥信号量,只有最后一个读者离开,计数降为0时才释放信号量,导致写者弱势。

    写者优先同上述方法:

    写者先占有某信号后,直到最后一个写者走完才释放该信号,读者才能进入。增加一个互斥信号量S,读者和写者都争抢该信号;
    对写者也进行计数,第1个写者申请S,其他写者不需要申请S;最后一个写者离开时才释放信号量S.
    一旦写者先申请到了S,则所有的读者只能等待写者都走完才可进入共享读。而多个写者通过S后,
    仍要争抢wmutex信号以完成互斥的写入。

    黑白棋问题

    问题描述
    两个人下棋,一方执黑棋,一方执白棋。要求双方轮流下子。给出两种情况的解决办法:
    1)执黑子一方先下
    2)双方都可以先下,谁先抢到棋盘谁先下。然后开始轮流下子。

    问题分析:
    无法用单纯的信号量操作完成,因为初始值无法设置固定值。
    争抢棋盘需要一个互斥信号m;加入if控制与标志判断。利用互斥信号量与特殊标志变量的结合使用实现有序控制。

    嗜睡的理发师问题

    问题描述
    一个理发店有N个沙发,1个理发椅;
    理发师:
    持续睡觉,理发,收钱的动作
    顾客:
    若有沙发,进入等待;否则离开。
    理发椅空,一顾客放弃沙发,去唤醒它理发;
    理发后付费,付费完毕离开理发椅,离店。


    生产与销售问题

    同步关系分析
    互斥:三人在对仓库的使用上必须互斥(mutex=1)
    顺序关系:
    1)生产者AB之间:因为假设仓库无限大,不需考虑空的限制。
    控制其能否生产的关键是再生产一个能否满足Sa-Sb在限定的[-n,m]范围内。
    A、B关心的都是各自的生产指标数量,即A关心x=A-B这个变量的值,同样B关心y=B-A。
    初值:初始若无产品,A最多可生产m个,B最多可生产n个。自己生产一个必然使对方可以多生产一个。
    2)生产与消费之间
    关心卖出的A、B间的差值

  • 相关阅读:
    python 文件和路径操作函数小结
    python文件处理
    jquery操作select
    ubuntu 安装ODOO时的python的依赖
    XML-RPC 实现C++和C#交互
    C#接收xmlrpc接口返回哈希表格式
    XmlRpc with C#/Java【转】
    OpenERP 的XML-RPC的轻度体验+many2many,one2many,many2one创建方式
    在Ubuntu Server上源码安装OpenERP 8.0,并配置wsgi和nginx运行环境
    C# 文件与二进制互转数据库写入读出
  • 原文地址:https://www.cnblogs.com/Kirino1/p/10018834.html
Copyright © 2011-2022 走看看