[分数可追加]把伪代码改成C/C++代码,操作系统内存管理的伪代码

http://wenku.baidu.com/link?url=mbQq-dJSAyyWBT82WX9VfCS2glykQyyZ9DqB557Fk4ywYTL3ZJyy4... http://wenku.baidu.com/link?url=mbQq-dJSAyyWBT82WX9VfCS2glykQyyZ9DqB557Fk4ywYTL3ZJyy4uw_bp779lQ7YC_GAhcAaeh5yDH4epV78pm2Y-tvSvT3r1uUb2ddHZ3

伪代码如下{也可看上述文库的文档}:
GetMemSta(); //输出当前内存情况
printf("================================================.\n") ;
……; //使用内存分配来获得128MB块
……; //尝试向刚申请的内存空间内写入0
GetMemSta(); //输出当前内存情况
……; //释放刚刚申请的128MB块
GetMemSta(); //输出当前内存情况
printf("================================================.\n") ;
……; //使用虚拟分配以获得物理128MB块
……; //尝试向刚申请的内存空间内写入0
GetMemSta(); //输出当前内存情况
……; //释放刚刚申请的128MB块
GetMemSta(); //输出当前内存情况
printf("================================================.\n") ;
……; //使用虚拟分配以获得虚拟512MB块
……; //尝试向刚申请的内存空间内写入0
GetMemSta(); //输出当前内存情况
……; //释放刚刚申请的虚拟512MB块
GetMemSta(); //输出当前内存情况
printf("================================================.\n") ;
……; //使用虚拟分配调配获得虚拟512MB块,再为其调配128MB物理存储
……; //尝试向刚申请的128MB内存空间内写入0
GetMemSta(); //输出当前内存情况
……; //释放刚刚申请的虚拟512MB块
GetMemSta(); //输出当前内存情况
展开
 我来答
碧血玉叶花
推荐于2016-11-26 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1693万
展开全部
class storehouse{
    int mutex;
    int count;
    int max;
    void save(){
        int changed=false;
                while(changed==false){
                   changed=true;
                   enter(mutex);
                    if(count<max)count++;
                    else changed=false;
                leave(mutex);
                sleep(0);
            }
    }
    void sell(){
       int changed=false;
               while(changed==false){
                  changed=true;
                  enter(mutex);
                   if(count>0)count--;
                   else changed=false;
               leave(mutex);
               sleep(0);
           }
    }
 
}
class Producer{
    produect(storehouse& store){
        store.save();
    }
}
class consumer{
    consum(storehouse& store){
        store.sell();
    }
 
}
 
int main(){
    storehouse store1;
    vector<Producer> products;
    vector<consumer> consums;
    vector<std:thread> allthread;
  while(products.size()||consums.size()){
    if(products.size()) allthread.push_back(std::thread t(&Producer,products.pop_back()));
    if(consums.size())allthread.push_back(std::thread(&consums.sell(),consums.pop_back()));
}
 for(auto athread:allthread)athread.join();
    
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式