操作系統(tǒng)實驗報告_第1頁
操作系統(tǒng)實驗報告_第2頁
操作系統(tǒng)實驗報告_第3頁
操作系統(tǒng)實驗報告_第4頁
操作系統(tǒng)實驗報告_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、ga族鬲紳枝夬爹SHAANXI UNUVERSIIYOF SCIENCE & TECHNOLOG操作系統(tǒng)實驗報告實驗1進程調(diào)度算法報告日期:2016-6-10姓 名:學 號:班 級: 任課教師:實驗1進程調(diào)度算法一、實驗內(nèi)容按優(yōu)先數(shù)調(diào)度算法實現(xiàn)處理器調(diào)度。二、實驗?zāi)康脑诓捎枚嗟莱绦蛟O(shè)計的系統(tǒng)中, 往往有若干個進程同時處于就緒狀態(tài)。 當就緒進程個數(shù) 大于處理器數(shù)時,就必須依照某種策略來決定哪些進程優(yōu)先占用處理器。本實驗?zāi)M在單處理器情況下的處理器調(diào)度,幫助學生加深了解處理器調(diào)度的工作。三、實驗原理設(shè)計一個按優(yōu)先數(shù)調(diào)度算法實現(xiàn)處理器調(diào)度的程序。假定系統(tǒng)有五個進程,每一個進程用一個進程控制塊PCB來

2、代表,進程控制塊的格式為:進程名指針要求運行時間優(yōu)先數(shù)狀態(tài)其中,進程名一一作為進程的標識,假設(shè)五個進程的進程名分別為Pi,P2,P3,P4,R。指針一一按優(yōu)先數(shù)的大小把五個進程連成隊列,用指針指出下一個進程的進程控制塊的首地址,最后一個進程中的指針為“0”要求運行時間一一假設(shè)進程需要運行的單位時間數(shù)。優(yōu)先數(shù)一一賦予進程的優(yōu)先數(shù),調(diào)度時總是選取優(yōu)先數(shù)大的進程先執(zhí)行。狀態(tài)可假設(shè)有兩種狀態(tài),“就緒”狀態(tài)和“結(jié)束”狀態(tài)。五個進程的初始狀態(tài)都為“就緒”,用“ R表示,當一個進程運行結(jié)束后,它的狀態(tài)為“結(jié)束”,用“ E”表示。在每次運行你所設(shè)計的處理器調(diào)度程序之前,為每個進程任意確定它的“優(yōu)先數(shù)” 和“要

3、求運行時間”。為了調(diào)度方便,把五個進程按給定的優(yōu)先數(shù)從大到小連成隊列。用一單元指出隊首進程,用指針指出隊列的連接情況。例:隊首標志(4)處理器調(diào)度總是選隊首進程運行。采用動態(tài)改變優(yōu)先數(shù)的辦法,進程每運行一次優(yōu)先數(shù)就減“ 1”由于本實驗是模擬處理器調(diào)度,所以,對被選中的進程并不實際的啟動運行, 而是執(zhí)行:優(yōu)先數(shù)-1要求運行時間-1來模擬進程的一次運行。提醒注意的是:在實際的系統(tǒng)中,當一個進程被選中運行時,必須恢復進程的現(xiàn)場,讓它占有處理器運行,直到出現(xiàn)等待事件或運行結(jié)束。在這里省去了這些工作。進程運行一次后,若要求運行時間?0,則再將它加入隊列 (按優(yōu)先數(shù)大小插入, 且置隊首標志);若要求運行時

4、間=0,則把它的狀態(tài)修改成“結(jié)束”(日,且退出隊列。若“就緒”狀態(tài)的進程隊列不為空,則重復上面(4)和(5)的步驟,直到所有進程都成為“結(jié)束”狀態(tài)。在所設(shè)計的程序中應(yīng)有顯示或打印語句,能顯示或打印每次被選中進程的進程名以及運行一次后進程隊列的變化。為五個進程任意確定一組“優(yōu)先數(shù)”和“要求運行時間”,啟動所設(shè)計的處理器調(diào)度程序,顯示或打印逐次被選中進程的進程名以及進程控制塊的動態(tài)變化過程。四、實驗內(nèi)容畫出算法流程圖程序中使用的數(shù)據(jù)結(jié)構(gòu)及符號說明1結(jié)構(gòu)體typedef struct PCBrior_num =pos = I;break;head = & arr pos;for (i = N- 1;

5、 i 0; i-) rior_num = i)pos1 = j;break;arr pos.next = & arr pos1;pos = pos1;return head;源程序#defi ne _CRT_SECURE_NO_WARNINGS#ifndef _SCHEDULING_H_#defi ne _SCHEDULIHG_H_ #defi ne N5 #include #include #include #include typedef struct PCB rior num = Nhead = & arr pos;for (i = N - 1; i 0; i-) rior_num =

6、i)arr pos.next = & arr posl;pos = pos1;return head; ame, stri);arr i.prior_num =ai;arr i.state =R;arr i.next =NULLarr i.time = (rand() % 4) + 1; ame);printf(進程優(yōu)先級:dn, arr i.prior_num); printf(進程所需運行時間:%dn, arr i.time); printf(進程當前狀態(tài):%cn, arr i.state); printf( n);pPCBrunPCB(pPCBhead, pPCBpcb)程序運行時的初值和運行結(jié)果初始狀態(tài):運行一次:運行兩次:運行三次

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論