• <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>

            Brian Warehouse

            Some birds aren`t meant to be caged, their feathers are just too bright... ...
            posts - 40, comments - 16, trackbacks - 0, articles - 1

            實驗一 進程調度(指導書)

            Posted on 2010-08-17 12:57 Brian 閱讀(1905) 評論(0)  編輯 收藏 引用 所屬分類: OS

            一、實驗內容

            利用高級語言模擬進程的時間片輪轉調度算法,響應比高者優先調度算法。

            二、實驗目的

            在采用多道程序設計的系統中,往往有若干個進程同時處于就緒狀態。當就緒進程個數大于處理器數時,就必須依照某種策略來決定哪些進程優先占用處理器。本實驗模擬在單處理器情況下的處理器調度,幫助學生加深了解處理器調度的工作。

            、實驗環境

            1PC微機。

            2Windows 操作系統。

            3C/C++/VB開發集成環境。

            四、實驗題目

            本實驗有兩個小題。

            第一題:設計一個按時間片輪轉法實現處理器調度的程序。

            算法設計思想:

            (1) 假定系統有五個進程,每一個進程用一個進程控制塊PCB來代表。進程控制塊的格式為:

            進程名

            指針

            要求運行時間

            已運行時間

            狀態

            其中,進程名——作為進程的標識,假設五個進程的進程名分別為Q1Q2Q3Q4Q5

            指針——進程按順序排成循環隊列,用指針指出下一個進程的進程控制塊的首地址,最后一個進程的指針指出第一個進程的進程控制塊首地址。

            要求運行時間——假設進程需要運行的單位時間數。

            已運行時間——假設進程已經運行的單位時間數,初始值為“0”。

            狀態——有兩種狀態,“就緒”和“結束”,初始狀態都為“就緒”,用“R”表示。當一個進程運行結束后,它的狀態為“結束”,用“E”表示。

            (2) 每次運行所設計的進程調度程序前,為每個進程任意確定它的“要求運行時間”。

            (3) 把五個進程按順序排成循環隊列,用指針指出隊列連接情況。另用一標志單元記錄輪到運行的進程。例如,當前輪到P2執行,則有:

            標志單元

                     K2   

            K1

            Q1

             K2

            Q2

             K3

            Q3

             K4

            Q4

             K5

            Q5

             

            K2

             

            K3

             

            K4

             

            K5

             

            K1

             

            2

             

            3

             

            1

             

            2

             

            4

             

            1

             

            0

             

            0

             

            0

             

            0

             

            R

             

            R

             

            R

             

            R

             

            R

             

            PCB1

             

            PCB2

             

            PCB3

             

            PCB4

             

            PCB5

             

            (4) 處理器調度總是選擇標志單元指示的進程運行。由于本實驗是模擬處理器調度的功能,所以,對被選中的進程并不實際的啟動運行,而是執行:

            已運行時間+1

            來模擬進程的一次運行,表示進程已經運行過一個單位的時間。

            請注意:在實際的系統中,當一個進程被選中運行時,必須置上該進程可以運行的時間片值,以及恢復進程的現場,讓它占有處理器運行,直到出現等待事件或運行滿一個時間片。在這時省去了這些工作,僅用“已運行時間+1”來表示進程已經運行滿一個時間片。

            (5) 進程運行一次后,應把該進程的進程控制塊中的指針值送到標志單元,以指示下一個輪到運行的進程。同時,應判斷該進程的要求運行時間與已運行時間,若該進程的要求運行時間?已運行時間,則表示它尚未執行結束,應待到下一輪時再運行。若該進程的要求運行時間=已運行時間,則表示它已經執行結束,應指導它的狀態修改成“結束”(E)且退出隊列。此時,應把該進程的進程控制塊中的指針值送到前面一個進程的指針位置。

            (6) 若“就緒”狀態的進程隊列不為空,則重復上面的(4)和(5)的步驟,直到所有的進程都成為“結束”狀態。

            (7) 在所設計的程序中應有顯示或打印語句,能顯示或打印每次選中進程的進程名以及運行一次后進程隊列的變化。

            (8) 為五個進程任意確定一組“要求運行時間”,啟動所設計的處理器調度程序,顯示或打印逐次被選中的進程名以及進程控制塊的動態變化過程。

             

            第二題:設計一個按響應比高者優先調度算法實現進程調度的程序。

            算法設計思想:

             (1) 假定系統有五個進程,每一個進程用一個進程控制塊PCB來代表,進程控制塊的格式為:

            進程名

            指針

            要求運行時間

            等待時間

            響應比

            狀態

            其中,進程名——作為進程的標識,假設五個進程的進程名分別為P1P2P3P4P5

            指針——按優先數的大小把五個進程連成隊列,用指針指出下一個進程的進程控制塊的首地址,最后一個進程中的指針為“0”。

            要求運行時間——假設進程需要運行的單位時間數。

            等待時間——自最近一次調度運行至今等待的時間數,當進程被調度時等待時間清零。

            響應比——進程調度程序運行前計算每個進程的響應比,調度時總是選取響應比大的進程先執行,每次執行一個固定的時間片。

            狀態——可假設有兩種狀態,“就緒”狀態和“結束”狀態。五個進程的初始狀態都為“就緒”,用“R”表示,當一個進程運行結束后,它的狀態為“結束”,用“E”表示。

            (2) 在每次運行你所設計的處理器調度程序之前,為每個進程任意確定它的“等待時間”和“要求運行時間”。

            (3) 為了調度方便,把五個進程按給定的響應比從大到小連成隊列。用一單元指出隊首進程,用指針指出隊列的連接情況。例:

              隊首標志

                     K2   

            K1

            P1

             K2

            P2

             K3

            P3

             K4

            P4

             K5

            P5

             

            0

             

            K4

             

            K5

             

            K3

             

            K1

             

            2

             

            3

             

            1

             

            2

             

            4

             

            1

             

            5

             

            3

             

            4

             

            2

             

            R

             

            R

             

            R

             

            R

             

            R

             

            PCB1

             

            PCB2

             

            PCB3

             

            PCB4

             

            PCB5

             

            (4) 處理器調度總是選隊首進程運行。采用動態改變響應比的辦法,進程每運行一次重新計算各進程的響應比。由于本實驗是模擬處理器調度,所以,對被選中的進程并不實際的啟動運行,而是執行:要求運行時間-1、等待時間為0。其它進程等待時間+1,重新計算各進程的響應比,并從大到小排序。

            提醒注意的是:在實際的系統中,當一個進程被選中運行時,必須恢復進程的現場,讓它占有處理器運行,直到出現等待事件或運行結束。在這里省去了這些工作。

            (5) 進程運行一次后,若要求運行時間?0,則再將它加入隊尾(因其響應比最小。);若要求運行時間=0,則把它的狀態修改成“結束”(E),且退出隊列。

            (6) 若“就緒”狀態的進程隊列不為空,則重復上面(4)和(5)的步驟,直到所有進程都成為“結束”狀態。

            (7) 在所設計的程序中應有顯示或打印語句,能顯示或打印每次被選中進程的進程名以及運行一次后進程隊列的變化及各進程的參數。

            (8) 為五個進程任意確定一組“等待時間”和“要求運行時間”,啟動所設計的進程調度程序,顯示或打印逐次被選中進程的進程名以及進程控制塊的動態變化過程。
            久久伊人五月天论坛| 久久国产乱子伦免费精品| 人人狠狠综合久久亚洲高清| 国产亚洲美女精品久久久| 亚洲国产精品嫩草影院久久| 99久久精品国产一区二区| 国产精品久久久亚洲| 久久久久成人精品无码| 日产精品久久久久久久| 久久福利青草精品资源站| 日韩久久无码免费毛片软件| 国产精品青草久久久久婷婷 | 日韩一区二区三区视频久久| 亚洲日本va午夜中文字幕久久| 无码国内精品久久人妻蜜桃| 久久久久免费精品国产| 久久精品卫校国产小美女| 亚洲成色999久久网站| 亚洲中文精品久久久久久不卡| 国产女人aaa级久久久级| 亚洲国产一成人久久精品| 久久精品人妻一区二区三区| 久久99国产亚洲高清观看首页| 2021久久精品免费观看| 久久93精品国产91久久综合| 久久亚洲精品视频| 国产成人精品久久免费动漫| 久久亚洲AV成人出白浆无码国产| 欧美久久久久久| 色8久久人人97超碰香蕉987| 久久五月精品中文字幕| 国产激情久久久久影院| 精品999久久久久久中文字幕| 少妇久久久久久被弄高潮| 2020久久精品亚洲热综合一本| 久久久久亚洲?V成人无码| 国产福利电影一区二区三区久久久久成人精品综合 | 一97日本道伊人久久综合影院| 国产呻吟久久久久久久92| 久久综合丝袜日本网| 一本色道久久88加勒比—综合|