• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            TanZek's 技術(shù)空間

            勇往直前,專注于技術(shù)...

            首頁 新隨筆 聯(lián)系 聚合 管理
              7 Posts :: 19 Stories :: 13 Comments :: 0 Trackbacks
            1、進(jìn)程調(diào)度中多級(jí)反饋隊(duì)列調(diào)度算法的模擬實(shí)現(xiàn)
            Following The Source Code:
            ?1?#include?<queue>
            ?2?#include?<iostream>
            ?3?#include?<cstdlib>
            ?4?
            ?5?
            ?6?/*
            ?7?--------+?|Ready?Queue?1|?--------+?to?CPU
            ?8????__________________|
            ?9???+
            10?--------+?|Ready?Queue?2|?--------+?to?CPU
            11????__________________|
            12???+
            13?--------+?|Ready?Queue?3|?--------+?to?CPU
            14????__________________|
            15???+
            16?---------+?|Ready?Queue?4|?--------+?to?CPU
            17???+__________________|
            18?以上加號(hào)為進(jìn)程執(zhí)行流向
            19?*/
            20?
            21?int?time[4]={1,2,3,4};??//各個(gè)隊(duì)列的時(shí)間片?
            22?char?*str[4]={"first","second","third","fourth"};
            23?queue<int>?Rqueue[4];???//各個(gè)優(yōu)先級(jí)隊(duì)列定義?
            24?
            25?int?execu(int?n)???
            26?//n是指哪一個(gè)隊(duì)列?
            27?//proc假設(shè)為一個(gè)進(jìn)程?
            28?{
            29?????int?proc;???//代表一個(gè)進(jìn)程?
            30?????while(!Rqueue[n-1].empty())
            31?????{
            32?????????proc=Rqueue[n-1].front();?//取隊(duì)首進(jìn)程進(jìn)行調(diào)度?
            33?????????proc?=?proc?-?time[n-1];?//時(shí)間片輪轉(zhuǎn),執(zhí)行調(diào)度后得到的進(jìn)程?
            34?????????cout<<?proc?<<"?in?the?"<<str[n-1]<<"?queue"<<endl;???????????????
            35?????????if(?proc?>=0?)???//假設(shè)進(jìn)程時(shí)間片用完,但還沒有執(zhí)行完?
            36?????????{
            37???????????if(n-1<3)Rqueue[n].push(proc);?//將其壓入下一個(gè)低優(yōu)先級(jí)的隊(duì)列?
            38???????????else
            39?????????????Rqueue[n-1].push(proc);?//如果是最后一個(gè)隊(duì)列,則壓入本身?
            40?????????}
            41?????????Rqueue[n-1].pop();???????//進(jìn)行下一次隊(duì)列調(diào)度
            42?????}
            43?????return?0;??//返回,代表該隊(duì)列的所有進(jìn)程均已調(diào)度過?
            44?}
            45?
            46?int?schedule(int&?proc)?//最初執(zhí)行一個(gè)程序,創(chuàng)建一個(gè)進(jìn)程,調(diào)度算法開始?
            47?{
            48?????Rqueue[0].push(proc);???//將進(jìn)程壓入第一個(gè)隊(duì)列?
            49?????for(int?i=1;?i<=4;?i++)
            50?????execu(i);????
            51?????//當(dāng)execu()返回時(shí),意味著上一優(yōu)先級(jí)隊(duì)列里的進(jìn)程均已調(diào)度完,進(jìn)行下一個(gè)隊(duì)列的調(diào)度?
            52?}
            53?
            54?
            55?int?main(int?argc,?char*?argv[])
            56?{
            57?/*
            58?????for(int?i=0;?i<100;?i++)
            59?????{
            60?????????int?n=int(rand())%4;????
            61?????????Rqueue[n].push(int(rand())%3);
            62?????}
            63?*/
            64?????int?proc=15;????????//新進(jìn)程
            65?????schedule(proc);?
            66?????system("PAUSE");
            67?????return?0;
            68?}
            69?

            以上即為我的實(shí)驗(yàn)成果,經(jīng)編譯運(yùn)行后,證明是正確的。
            如果中間還有不正確的,請(qǐng)不吝指教。
            謝謝!
            posted on 2006-05-30 13:46 TanZek 閱讀(568) 評(píng)論(2)  編輯 收藏 引用 所屬分類: Subject-Study

            評(píng)論

            # re: 操作系統(tǒng)實(shí)驗(yàn)(Operating System Experiment) 2007-06-19 10:46 李俊
            怎么運(yùn)行不了。大哥  回復(fù)  更多評(píng)論
              

            # re: 操作系統(tǒng)實(shí)驗(yàn)(Operating System Experiment) 2007-06-19 10:47 李俊
            出現(xiàn)這樣的錯(cuò)誤

            --------------------Configuration: 11 - Win32 Debug--------------------
            Compiling...
            11.cpp
            C:\Documents and Settings\Administrator\11.cpp(22) : error C2143: syntax error : missing ';' before '<'
            C:\Documents and Settings\Administrator\11.cpp(22) : error C2501: 'queue' : missing storage-class or type specifiers
            C:\Documents and Settings\Administrator\11.cpp(22) : error C2143: syntax error : missing ';' before '<'
            C:\Documents and Settings\Administrator\11.cpp(29) : error C2065: 'Rqueue' : undeclared identifier
            C:\Documents and Settings\Administrator\11.cpp(29) : error C2109: subscript requires array or pointer type
            C:\Documents and Settings\Administrator\11.cpp(29) : error C2228: left of '.empty' must have class/struct/union type
            C:\Documents and Settings\Administrator\11.cpp(29) : fatal error C1903: unable to recover from previous error(s); stopping compilation
            Error executing cl.exe.

            11.obj - 7 error(s), 0 warning(s)  回復(fù)  更多評(píng)論
              

            久久播电影网| 久久国产精品无码HDAV| 精品久久久久久国产潘金莲| 亚洲国产成人精品无码久久久久久综合| 国产精品久久久天天影视| 久久棈精品久久久久久噜噜| 亚洲愉拍99热成人精品热久久| 欧美日韩精品久久久免费观看| 日本久久久久久久久久| 久久久精品人妻无码专区不卡| 久久精品视频91| 亚洲精品乱码久久久久久蜜桃 | 人妻丰满?V无码久久不卡| 国产精品久久久久久| 久久中文骚妇内射| 漂亮人妻被中出中文字幕久久| 一级女性全黄久久生活片免费 | 久久精品国产精品亚洲| 国产亚洲成人久久| 色婷婷噜噜久久国产精品12p| 免费一级欧美大片久久网| 无码国内精品久久人妻麻豆按摩| 成人综合久久精品色婷婷| 蜜臀av性久久久久蜜臀aⅴ| AV无码久久久久不卡蜜桃| 国产69精品久久久久99尤物| 色偷偷91久久综合噜噜噜噜| 中文字幕无码免费久久| 欧美综合天天夜夜久久| 欧美与黑人午夜性猛交久久久| 亚洲国产精品无码成人片久久| 国产精品久久久久影视不卡 | 久久久午夜精品| 国产精品久久久久久吹潮| 99久久精品国产一区二区三区| 武侠古典久久婷婷狼人伊人| 性做久久久久久久| 久久精品国产亚洲7777| 久久99精品久久久久久久久久 | 久久久久人妻精品一区二区三区| 国产精品日韩深夜福利久久|