實(shí)驗(yàn)一——單處理器系統(tǒng)的進(jìn)程調(diào)度

實(shí)驗(yàn)一——單處理器系統(tǒng)的進(jìn)程調(diào)度

ID:1810738

大小:35.00 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2017-11-13

實(shí)驗(yàn)一——單處理器系統(tǒng)的進(jìn)程調(diào)度_第1頁(yè)
實(shí)驗(yàn)一——單處理器系統(tǒng)的進(jìn)程調(diào)度_第2頁(yè)
實(shí)驗(yàn)一——單處理器系統(tǒng)的進(jìn)程調(diào)度_第3頁(yè)
資源描述:

《實(shí)驗(yàn)一——單處理器系統(tǒng)的進(jìn)程調(diào)度》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、實(shí)驗(yàn)一:進(jìn)程的建立及調(diào)度1.實(shí)驗(yàn)?zāi)康模杭由顚?duì)進(jìn)程概念的理解,熟悉PCB的組織,深入了解創(chuàng)建進(jìn)程的一般過(guò)程,掌握用隊(duì)列組織進(jìn)程的方法,掌握進(jìn)程調(diào)度算法。2.實(shí)驗(yàn)內(nèi)容編程實(shí)現(xiàn)創(chuàng)建原語(yǔ),形成就緒隊(duì)列,模擬實(shí)現(xiàn)進(jìn)程的調(diào)度。具體內(nèi)容包括:1)、確定進(jìn)程控制塊的內(nèi)容,用鏈表組織進(jìn)程控制塊;2)、完成進(jìn)程創(chuàng)建原語(yǔ)和進(jìn)程調(diào)度原語(yǔ);3)、?要求采用時(shí)間片輪轉(zhuǎn)調(diào)度算法;4)、?編寫主函數(shù)對(duì)所做工作進(jìn)程測(cè)試。3、實(shí)驗(yàn)具體內(nèi)容和步驟的說(shuō)明?這個(gè)實(shí)驗(yàn)主要考慮三個(gè)問(wèn)題:如何組織進(jìn)程、如何創(chuàng)建進(jìn)程和如何實(shí)現(xiàn)處理器調(diào)度。1)、進(jìn)程的組織:首先就要設(shè)

2、定進(jìn)程控制塊的內(nèi)容。進(jìn)程控制塊PCB記錄各個(gè)進(jìn)程執(zhí)行時(shí)的情況。不同的操作系統(tǒng),進(jìn)程控制塊所記錄的信息內(nèi)容不一樣。操作系統(tǒng)功能越強(qiáng),軟件也越龐大,進(jìn)程控制塊所記錄的內(nèi)容也就越多。本次實(shí)驗(yàn)只使用必不可少的信息。一般操作系統(tǒng)中,無(wú)論進(jìn)程控制塊中信息量多少,信息都可以大致分為以下四類:?①?標(biāo)識(shí)信息每個(gè)進(jìn)程都要有一個(gè)惟一的標(biāo)識(shí)符,用來(lái)標(biāo)識(shí)進(jìn)程的存在和區(qū)別于其他進(jìn)程。這個(gè)標(biāo)識(shí)符是必不可少的,可以用符號(hào)或編號(hào)實(shí)現(xiàn),它必須是操作系統(tǒng)分配的。本實(shí)驗(yàn)中要求,采用編號(hào)方式,也就是為每個(gè)進(jìn)程依次分配一個(gè)不相同的正整數(shù)。?②?說(shuō)明信息用于記

3、錄進(jìn)程的基本情況,例如進(jìn)程的狀態(tài)、等待原因、進(jìn)程程序存放位置、進(jìn)程數(shù)據(jù)存放位置等等。本模擬實(shí)驗(yàn)中,因?yàn)檫M(jìn)程沒(méi)有數(shù)據(jù)和程序,僅使用進(jìn)程控制塊模擬進(jìn)程,所以這部分內(nèi)容僅包括進(jìn)程狀態(tài)。③?現(xiàn)場(chǎng)信息現(xiàn)場(chǎng)信息記錄各個(gè)寄存器的內(nèi)容。當(dāng)進(jìn)程由于某種原因讓出處理器時(shí),需要將現(xiàn)場(chǎng)信息記錄在進(jìn)程控制塊中,當(dāng)進(jìn)行進(jìn)程調(diào)度時(shí),從選中進(jìn)程的進(jìn)程控制塊中讀取現(xiàn)場(chǎng)信息進(jìn)行現(xiàn)場(chǎng)恢復(fù)。現(xiàn)場(chǎng)信息就是處理器的相關(guān)寄存器內(nèi)容,包括通用寄存器、程序計(jì)數(shù)器和程序狀態(tài)字寄存器等。在實(shí)驗(yàn)中,可選取幾個(gè)寄存器作為代表。用大寫的全局變量AX、BX、CX、DX模擬通用寄

4、存器、大寫的全局變量PC模擬程序計(jì)數(shù)器、大寫的全局變量PSW模擬程序狀態(tài)字寄存器。本實(shí)驗(yàn)要求讀取一個(gè)寄存器的值,予以輸出④?管理信息管理信息記錄進(jìn)程管理和調(diào)度的信息。例如進(jìn)程優(yōu)先數(shù)、進(jìn)程隊(duì)列指針等。實(shí)驗(yàn)中,僅包括隊(duì)列指針。綜合上面內(nèi)容,建議進(jìn)程控制塊結(jié)構(gòu)定義如下:struct?pcb?{int?name;??//進(jìn)程標(biāo)識(shí)符int?status;??//進(jìn)程狀態(tài)?int?ax,?bx,?cx,dx;?//進(jìn)程現(xiàn)場(chǎng)信息,通用寄存器內(nèi)容int?pc;?????????//進(jìn)程現(xiàn)場(chǎng)信息,程序計(jì)數(shù)器內(nèi)容int?psw;????

5、???//進(jìn)程現(xiàn)場(chǎng)信息,程序狀態(tài)字寄存器內(nèi)容int?next;???????//下一個(gè)進(jìn)程控制塊的位置}??進(jìn)程控制塊定義好后,考慮如何組織進(jìn)程控制塊。多道程序設(shè)計(jì)系統(tǒng)中,往往同時(shí)創(chuàng)建多個(gè)進(jìn)程。在單處理器的情況下,每次只能有一個(gè)進(jìn)程處于運(yùn)行態(tài),其他的進(jìn)程處于就緒狀態(tài)或阻塞狀態(tài)。為了便于管理,通常把處于相同狀態(tài)的進(jìn)程的進(jìn)程控制塊鏈接在一起。單處理器系統(tǒng)中,正在運(yùn)行的進(jìn)程只有一個(gè)。因此,單處理器系統(tǒng)中的進(jìn)程控制塊分成三個(gè)隊(duì)列:①、一個(gè)正在運(yùn)行進(jìn)程的進(jìn)程控制塊;②、就緒進(jìn)程的進(jìn)程控制塊組成的就緒隊(duì)列;③、阻塞進(jìn)程的進(jìn)程控制

6、塊組成的阻塞隊(duì)列。由于實(shí)驗(yàn)?zāi)M的是進(jìn)程調(diào)度,沒(méi)有對(duì)阻塞隊(duì)列的操作,所以實(shí)驗(yàn)中只有一個(gè)指向正在運(yùn)行進(jìn)程的進(jìn)程控制塊指針和一個(gè)就緒進(jìn)程的進(jìn)程控制塊隊(duì)列指針。操作系統(tǒng)的實(shí)現(xiàn)中,系統(tǒng)往往在主存中劃分出一個(gè)連續(xù)的專門區(qū)域存放系統(tǒng)的進(jìn)程控制塊,實(shí)驗(yàn)中應(yīng)該用數(shù)組模擬這個(gè)專門的進(jìn)程控制塊區(qū)域,定義如下:#define??n???10???????//假定系統(tǒng)允許進(jìn)程個(gè)數(shù)為10struct?pcb??pcbarea[n];??//模擬進(jìn)程控制塊區(qū)域的數(shù)組這樣,進(jìn)程控制塊的鏈表實(shí)際上是數(shù)據(jù)結(jié)構(gòu)中使用的靜態(tài)鏈表。進(jìn)程控制塊的鏈接方式可以采

7、用單向和雙向鏈表,實(shí)驗(yàn)中,進(jìn)程控制塊隊(duì)列采用單向靜態(tài)鏈表。為了管理空閑進(jìn)程控制塊,還應(yīng)該將空閑控制塊鏈接成一個(gè)隊(duì)列。實(shí)驗(yàn)中采用時(shí)間片輪轉(zhuǎn)調(diào)度算法,這種算法是將進(jìn)程控制塊按照進(jìn)入就緒隊(duì)列的先后次序排成隊(duì)列。對(duì)就緒隊(duì)列的操作就是從隊(duì)頭摘下一個(gè)進(jìn)程控制塊和從隊(duì)尾掛入一個(gè)進(jìn)程控制塊。因此為就緒隊(duì)列定義兩個(gè)指針,一個(gè)頭指針,指向就緒隊(duì)列的第一個(gè)進(jìn)程控制塊;一個(gè)尾指針,指向就緒隊(duì)列的最后一個(gè)進(jìn)程控制塊。實(shí)驗(yàn)中指向運(yùn)行進(jìn)程的進(jìn)程控制塊指針、就緒隊(duì)列指針和空閑進(jìn)程控制塊隊(duì)列指針定義如下:intrun;????//定義指向正在運(yùn)行進(jìn)程

8、的進(jìn)程控制塊的指針struct{int??head;int??tail;}ready;???//定義指向就緒隊(duì)列的頭指針head和尾指針tailint??pfree;??//定義指向空閑進(jìn)程控制塊隊(duì)列的指針??2)、進(jìn)程創(chuàng)建。進(jìn)程創(chuàng)建是一個(gè)原語(yǔ),因此在實(shí)驗(yàn)中應(yīng)該用一個(gè)函數(shù)實(shí)現(xiàn),進(jìn)程創(chuàng)建的過(guò)程應(yīng)該包括:①申請(qǐng)進(jìn)程控制塊:進(jìn)程控制塊的數(shù)量是有限的,

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。