新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 研友的交流园地,讨论关于计算机考研的方方面面。
    [返回] 计算机科学论坛计算机理论与工程『 计算机考研交流 』 → 关于北大操作系统教程第四章35题的讨论 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 13771 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 关于北大操作系统教程第四章35题的讨论 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     ychj 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(C++考了100分!)
      文章:58
      积分:440
      门派:XML.ORG.CN
      注册:2006/8/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ychj发送一个短消息 把ychj加入好友 查看ychj的个人资料 搜索ychj在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看ychj的博客楼主
    发贴心情 关于北大操作系统教程第四章35题的讨论

    关于银行业务的问题。
    想完美地解决这道题,似乎有点麻烦。
    关键是需要满足以下两个问题:
    1) 进入银行的顾客可以直接取号,不需要等待;
    2) 空闲的柜员叫号时不能叫错人,即必须要求先来接受服务的是当前的最小号。
    不知道大家有没有很好地解决这道题?想圆满地解决,似乎并不容易。

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/28 3:16:00
     
     ychj 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(C++考了100分!)
      文章:58
      积分:440
      门派:XML.ORG.CN
      注册:2006/8/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ychj发送一个短消息 把ychj加入好友 查看ychj的个人资料 搜索ychj在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看ychj的博客2
    发贴心情 
    大家考虑得怎么样啊?
    我已经想到一个绝妙的办法了,呵呵。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/28 5:41:00
     
     ychj 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(C++考了100分!)
      文章:58
      积分:440
      门派:XML.ORG.CN
      注册:2006/8/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ychj发送一个短消息 把ychj加入好友 查看ychj的个人资料 搜索ychj在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看ychj的博客3
    发贴心情 
    这个问题是n个理发师问题的变种,但比其更加复杂。
    因为理发师问题并没有苛刻地要求先来的顾客(即先领号的)一定先接受服务;而银行叫号都是从小号到大号的。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/28 6:01:00
     
     apolor 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(汇编考了97分!)
      文章:39
      积分:382
      门派:XML.ORG.CN
      注册:2006/9/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给apolor发送一个短消息 把apolor加入好友 查看apolor的个人资料 搜索apolor在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看apolor的博客4
    发贴心情 
    int count_s = 0;
    int count_c = 0;
    semaphore customer;//初值为0
    semaphore mutex_s;//初值为0
    semaphore mutex_c;//初值为0
    semaphore staff;//初值为n

    void Staff(i){
            while(ture){
                    P(customer);
                    P(mutex_s);
                            count_s ++;
                            叫编号为count_s的顾客;
                    V(mutex_s);
                    服务;
            }
    }

    //////////////////////////////////////////////////////////

    void Customer(){
            P(mutex_c);
                    count_c ++;
            V(mutex_c);
            V(customer);
            P(staff);
                    接受服务;
            V(staff);
            离开;
    }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/28 20:50:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客5
    发贴心情 
    apolor的算法正确。另外我认为count_c可以去掉。

    这个问题很像理发师问题,但是它没有进屋人数的限制。它叫做面包师问题,由Lamport(注:Lamport对分布式os有重大贡献)在1974年提出。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/28 21:54:00
     
     apolor 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(汇编考了97分!)
      文章:39
      积分:382
      门派:XML.ORG.CN
      注册:2006/9/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给apolor发送一个短消息 把apolor加入好友 查看apolor的个人资料 搜索apolor在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看apolor的博客6
    发贴心情 
    以下是引用Supremgoooo在2006-10-28 21:54:00的发言:
    另外我认为count_c可以去掉。

    count_c是顾客的编号,是一定要要的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/28 22:13:00
     
     Supremgoooo 帅哥哟,离线,有人找我吗?
      
      
      等级:大四下学期(考上研究生啦!)
      文章:201
      积分:1872
      门派:XML.ORG.CN
      注册:2006/4/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客7
    发贴心情 
    不好意思!刚才想的有问题,不能省!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/28 22:55:00
     
     ychj 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(C++考了100分!)
      文章:58
      积分:440
      门派:XML.ORG.CN
      注册:2006/8/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ychj发送一个短消息 把ychj加入好友 查看ychj的个人资料 搜索ychj在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看ychj的博客8
    发贴心情 
    所谓银行叫号就是要让先拿号的顾客一定先得到服务。
    请大家仔细分析一下代码,存在以下问题:
    (1) 上面这段代码有这种可能性:i+1号顾客在i号顾客之前进入Staff等待队列,从而先得到服务,这显然是有问题的。
    (2) 服务于接受服务之间缺乏同步。例如:Customer也许已经执行完“接受服务”了,Staff可能才开始执行“服务”。
    (3) 当Customer进程唤醒Staff进程后,可能Staff还没开始叫号,而Customer已经接受完服务并离开了,这都是不合理的。
    这是上述算法的明显问题,大家想想有什么好的解决方案。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/29 2:19:00
     
     ychj 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(C++考了100分!)
      文章:58
      积分:440
      门派:XML.ORG.CN
      注册:2006/8/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ychj发送一个短消息 把ychj加入好友 查看ychj的个人资料 搜索ychj在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看ychj的博客9
    发贴心情 
    前沿教研室编写的考研丛书中的理发师算法也是有一些问题。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/29 2:23:00
     
     ychj 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(C++考了100分!)
      文章:58
      积分:440
      门派:XML.ORG.CN
      注册:2006/8/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ychj发送一个短消息 把ychj加入好友 查看ychj的个人资料 搜索ychj在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看ychj的博客10
    发贴心情 
    另外,大家发现没有:
    Customer进程的V(Staff)其实在某些时候已经具备“叫号”功能了,而Staff进程也在叫号。
    逻辑混乱。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/29 2:29:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 计算机考研交流 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/3 6:51:45

    本主题贴数20,分页: [1] [2]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    93.750ms