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

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

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

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

    旧书中是33题,不知道新书中是第几题,就是酒吧中爱好者队列那道。

    我觉得本题爱好者进程可以有两种实现方式:
    一种是: 爱好者由一个程序实现,判断每一个到柜台前的爱好者出自哪个队列,然后分别购买所需的物品;
    二种是:爱好者由三个程序实现,每个程序实现一种队列的爱好者行为。

    大家觉得那种方法更好些?或者说没什么区别?


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/25 13:22:00
     
     carroty 帅哥哟,离线,有人找我吗?
      
      
      等级:大四(GRE考了1600分!)
      文章:153
      积分:1257
      门派:IEEE.ORG.CN
      注册:2006/4/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给carroty发送一个短消息 把carroty加入好友 查看carroty的个人资料 搜索carroty在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看carroty的博客2
    发贴心情 
    我觉得应该都差不多,按照我的思路似乎太简单了.

    学写了一个,高手指点.:)

    /**************************************************************/
    enum QID {1,2,3}
    //from 1 have walkman,from 2 have cassette,from 3 have battery
    semaphora mode1=mod2=mod3=0;musicfan=0;

    music_fun(QID qid){
    while(1){
        if(qid==1){
            p(mode1);
            getprovide();
            listening()
            v(musicfun);
        }
        if(qid==2){
            p(mode2);
            getprovide();
            listening();
            v(musicfun);
        }
        if(qid==3){
            p(mode3);
            getprovide();
            listening();
            v(musicfun);
        }
    }

    provider(){
    while(1){
        mode=genprovide();    //generate a random provide and return a mode (1,2,3...etc);
        switch(mode){
            case 1:v(mode1);break;
            case 2:v(mode2);break;
            case 3:v(mode3);break;
            default:break;
        }
        p(musicfun);    
    }
    }

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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客3
    发贴心情 
    这是一个吸烟者问题,陈老师在编这个题时有些小问题,造成了大家对吸烟者模型本身的理解。你写的两种方法我认为对这个题都可以。选那种看个人喜好了。我认为1。

    其实,吸烟者问题里面的主被动关系是这样:老板随即的拿出两样物品放到桌子上,然后告诉所有人说:“我放了两样物品,你们谁需要?”于是大家都来看,只有真正需要这两样物品的人才可以拿。
    而不是一个人对老板说:“我需要**物品,你给我吧。”可能有个人需要A,B,而桌上放的却是B,C,从而他继续等待。


    以下是引用ychj在2006-10-25 13:22:00的发言:
    旧书中是33题,不知道新书中是第几题,就是酒吧中爱好者队列那馈?
    我觉得本题爱好者进程可以有两种实现方式:
    一种是: 爱好者由一个程序实现,判断每一个到柜台前的爱好者出自哪个队列,然后分别购买所需的物品;
    二种是:爱好者由三个程序实现,每个程序实现一种队列的爱好者行为。

    大家觉得那种方法更好些?或者说没什么区别?


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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Supremgoooo发送一个短消息 把Supremgoooo加入好友 查看Supremgoooo的个人资料 搜索Supremgoooo在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看Supremgoooo的博客4
    发贴心情 
    完全正确!这就是我说的真正的吸烟者问题!

    以下是引用carroty在2006-10-25 16:08:00的发言:
    我觉得应该都差不多,按照我的思路似乎太简单了.

    学写了一个,高手指点.:)

    /**************************************************************/
    enum QID {1,2,3}
    //from 1 have walkman,from 2 have cassette,from 3 have battery
    semaphora mode1=mod2=mod3=0;musicfan=0;

    music_fun(QID qid){
    while(1){
         if(qid==1){
             p(mode1);
             getprovide();
             listening()
             v(musicfun);
         }
         if(qid==2){
             p(mode2);
             getprovide();
             listening();
             v(musicfun);
         }
         if(qid==3){
             p(mode3);
             getprovide();
             listening();
             v(musicfun);
         }
    }

    provider(){
    while(1){
         mode=genprovide();    //generate a random provide and return a mode (1,2,3...etc);
         switch(mode){
             case 1:v(mode1);break;
             case 2:v(mode2);break;
             case 3:v(mode3);break;
             default:break;
         }
         p(musicfun);    
    }
    }



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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ychj发送一个短消息 把ychj加入好友 查看ychj的个人资料 搜索ychj在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看ychj的博客5
    发贴心情 
    的确,老板先发话,题目更明确些。

    music_fun(QID qid){
    while(1){
         if(qid==1){
             p(mode1);
             getprovide();
             listening()
             v(musicfun);
         }
         if(qid==2){
             p(mode2);
             getprovide();
             listening();
             v(musicfun);
         }
         if(qid==3){
             p(mode3);
             getprovide();
             listening();
             v(musicfun);
         }
    }

    provider(){
    while(1){
         mode=genprovide();    //generate a random provide and return a mode (1,2,3...etc);
         switch(mode){
             case 1:v(mode1);break;
             case 2:v(mode2);break;
             case 3:v(mode3);break;
             default:break;
         }
         p(musicfun);    
    }
    }

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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给ychj发送一个短消息 把ychj加入好友 查看ychj的个人资料 搜索ychj在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看ychj的博客6
    发贴心情 
    仔细想了一下,你这个算法有些问题,可能导致死锁。你想想看,呵呵。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/26 12:32:00
     
     apolor 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(汇编考了97分!)
      文章:39
      积分:382
      门派:XML.ORG.CN
      注册:2006/9/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给apolor发送一个短消息 把apolor加入好友 查看apolor的个人资料 搜索apolor在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看apolor的博客7
    发贴心情 

    semaphore serv; //初值为0
    semaphore borrow; //初值为0

    void Boss(){
          while(true){
                V(borrow);
                      出借...
                P(serv);
          }
    }

    void Fans(i){
          P(borrow);
                借到物品并听音乐一曲...
          V(serv);
    }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/10/28 21:40:00
     
     zshao 帅哥哟,离线,有人找我吗?
      
      
      等级:大三(要不要学学XML呢?)
      文章:145
      积分:684
      门派:XML.ORG.CN
      注册:2007/4/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zshao发送一个短消息 把zshao加入好友 查看zshao的个人资料 搜索zshao在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看zshao的博客8
    发贴心情 感觉这个算法有问题?
    如果QID第一次传入的是1,那在WHILE中就一直转,
    释放后,然后再继续申请,然后。。。。,
    这样其他的申请者永远得不到了?
    会造成其他的申请者饥饿

    -------

    P。S

    1:如果用VC来写的话,
        那是不是应该开4个线程?
        provider();
        music_fun(1);
        music_fun(2);
        music_fun(3);

    2:考试中,可否写把music_fun分成3个函数music_fun1,music_fun2,music_fun3?
         而不是通常的一对函数。

    ----------------------------------------------
    PLEASE BLESS ME ,MY GOD.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/11/29 1:01:00
     
     xingfang4666 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:0
      积分:55
      门派:XML.ORG.CN
      注册:2006/12/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给xingfang4666发送一个短消息 把xingfang4666加入好友 查看xingfang4666的个人资料 搜索xingfang4666在『 计算机考研交流 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看xingfang4666的博客9
    发贴心情 
    不错
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/3/2 16:31:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 计算机考研交流 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/12 13:35:31

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

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