操作系統(tǒng)課程設(shè)計(jì)Linux下進(jìn)程調(diào)度算法的模擬實(shí)現(xiàn)_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)Linux下進(jìn)程調(diào)度算法的模擬實(shí)現(xiàn)_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)Linux下進(jìn)程調(diào)度算法的模擬實(shí)現(xiàn)_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)Linux下進(jìn)程調(diào)度算法的模擬實(shí)現(xiàn)_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)Linux下進(jìn)程調(diào)度算法的模擬實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、棗 莊 學(xué) 院信息科學(xué)與工程學(xué)院課程設(shè)計(jì)任務(wù)書(shū) 題目: linux下進(jìn)程調(diào)度算法的模擬實(shí)現(xiàn) 學(xué) 生1: 學(xué) 生2: 學(xué) 生3: 專(zhuān) 業(yè): 計(jì)算機(jī)應(yīng)用技術(shù) 課 程: 操作系統(tǒng) 指導(dǎo)教師: 職稱(chēng): 副教授 完成時(shí)間: 2015年 12月-2016 年 1月棗莊學(xué)院信息科學(xué)與工程學(xué)院制2015年12月20日課程設(shè)計(jì)任務(wù)書(shū)及成績(jī)?cè)u(píng)定課程設(shè)計(jì)的任務(wù)和具體要求操作系統(tǒng)課程設(shè)計(jì)是操作系統(tǒng)課程學(xué)習(xí)的延續(xù)。主要目的是配合操作系統(tǒng)課程的學(xué)習(xí),對(duì)linux操作系統(tǒng)有一定掌握,能夠熟練操作,并能在linux系統(tǒng)下模擬實(shí)現(xiàn)操作系統(tǒng)的功能,有助于對(duì)操作系統(tǒng)的理解。本次課程設(shè)計(jì)共分兩部分,其中第一部分為操作題,同學(xué)們需要對(duì)

2、linux的基本的命令(常用的幾個(gè),講課的時(shí)候強(qiáng)調(diào)的),這部分,任課教師實(shí)時(shí)檢查,讓學(xué)生用命令完成一定的功能,然后,根據(jù)完成情況評(píng)定成績(jī)。第二部分為編程設(shè)計(jì)題,每組同學(xué)必須獨(dú)立完成,可以選擇進(jìn)程調(diào)度,也可以根據(jù)自己的興趣,選擇模擬實(shí)現(xiàn)磁盤(pán)調(diào)度、銀行家算法、頁(yè)面置換算法等。指導(dǎo)教師簽字: 日期: 指導(dǎo)教師評(píng)語(yǔ)成績(jī): 指導(dǎo)教師簽字: 日期: 課程設(shè)計(jì)所需軟件、硬件等軟件: vc 6.0 windows xp上的虛擬機(jī)上運(yùn)行的red hat linux硬件: cpu,主頻1ghz以上;內(nèi)存512m以上;硬盤(pán)30g以上;1024768顯示分辨率課程設(shè)計(jì)進(jìn)度計(jì)劃起至日期工作內(nèi)容備注12月1日12月4日1

3、2月5日12月8日12月9日12月12日12月13日12月17日搜集課程設(shè)計(jì)資料以及整理課程設(shè)計(jì)算法思路。在linux環(huán)境下熟悉相關(guān)指令的功能對(duì)兩種算法程序進(jìn)行設(shè)計(jì),調(diào)試,運(yùn)行。對(duì)前面的工作進(jìn)行整合,寫(xiě)課程設(shè)計(jì)。參考文獻(xiàn)、資料索-引序號(hào)文獻(xiàn)、資料名稱(chēng)編著者出版單位1嚴(yán)蔚敏, 吳偉民. 數(shù)據(jù)結(jié)構(gòu). 清華大學(xué)出版社, 2005.112譚浩強(qiáng). c語(yǔ)言程序設(shè)計(jì). 清華大學(xué)出版社, 2005.113湯小丹, 梁紅兵, 哲鳳屏, 湯子瀛. 計(jì)算機(jī)操作系統(tǒng). 西安電子科技大學(xué)出版社, 2007.519目 錄1. 引言32. 常用基本命令介紹42.1 linux目錄管理有關(guān)命令42.2 更改目錄或文件訪問(wèn)權(quán)

4、限的命令52.3 顯示文件內(nèi)容的命令72.4 文件管理命令93. 進(jìn)程調(diào)度程序的設(shè)計(jì)93.1進(jìn)程調(diào)度介紹93.2 進(jìn)程調(diào)度算法103.3 程序的設(shè)計(jì)思路103.4程序代碼113.5程序及運(yùn)行情況154. 實(shí)驗(yàn)過(guò)程中出現(xiàn)的問(wèn)題及解決方法175. 總結(jié)171. 引言 linux是一套免費(fèi)使用和自由傳播的類(lèi) unix操作系統(tǒng),它主要用于基于 intel x86系列 cpu的計(jì)算機(jī)上。這個(gè)系統(tǒng)是由世界各地的成千上萬(wàn)的程序員設(shè)計(jì)和實(shí)現(xiàn)的。其目的是建立不受任何商品化軟件的版權(quán)制約的、全世界都能自由使用的 unix兼容產(chǎn)品。 linux的出現(xiàn),最早開(kāi)始于一位名叫 linus torvalds的計(jì)算機(jī)業(yè)余愛(ài)好

5、者,當(dāng)時(shí)他是芬蘭赫爾辛基大學(xué)的學(xué)生。他的目的是想設(shè)計(jì)一個(gè)代替 minix(是由一位名叫 andrew tannebaum的計(jì)算機(jī)教授編寫(xiě)的一個(gè)操作系統(tǒng)示教程序)的操作系統(tǒng),這個(gè)操作系統(tǒng)可用于 386、 486或奔騰處理器的個(gè)人計(jì)算機(jī)上,并且具有 unix操作系統(tǒng)的全部功能,因而開(kāi)始了 linux雛形的設(shè)計(jì)。 linux以它的高效性和靈活性著稱(chēng)。它能夠在 pc計(jì)算機(jī)上實(shí)現(xiàn)全部的 unix特性,具有多任務(wù)、多用戶(hù)的能力。 linux是在 gnu公共許可權(quán)限下免費(fèi)獲得的,是一個(gè)符合 posix標(biāo)準(zhǔn)的操作系統(tǒng)。 linux操作系統(tǒng)軟件包不僅包括完整的 linux操作系統(tǒng),而且還包括了文本編輯器、高級(jí)語(yǔ)

6、言編譯器等應(yīng)用軟件。它還包括帶有多個(gè)窗口管理器的 x-windows圖形用戶(hù)界面,如同我們使用 windows nt一樣,允許我們使用窗口、圖標(biāo)和菜單對(duì)系統(tǒng)進(jìn)行操作。 linux相對(duì)于windows的許多變化都是有益的。空閑的gui的開(kāi)銷(xiāo)被歸還給服務(wù)。任務(wù)可以腳本化并可以自動(dòng)執(zhí)行。配置文件基于文本并且人類(lèi)可讀。在大多數(shù)情況下不必重新引導(dǎo)系統(tǒng),linux還有很多好處,總之,能夠很好地掌握l(shuí)inux的使用是非常必要的。2. 常用基本命令介紹2.1 linux目錄管理有關(guān)命令命令一般格式: 命令名 -選項(xiàng) 參數(shù)對(duì)每個(gè)命令掌握: a.命令名 b.命令功能 c.命令格式 d.常用參數(shù)(1)pwd -顯示

7、當(dāng)前工作目錄的絕對(duì)路徑格式: pwd (2) cd -改變當(dāng)前工作目錄 命令格式:cd 目錄名 (3) ls- 列出文件目錄的信息 命令格式:ls 可選項(xiàng) 子目錄名 文件名 與dos的cd命令類(lèi)似; 當(dāng)前目錄/絕對(duì)路徑/相對(duì)路徑可選項(xiàng): -a :列出全部的文件,包括那些隱藏文件.-l :按長(zhǎng)格式列目錄,輸出信息包括文件目錄,文件的權(quán)限、所屬用戶(hù)組、文件建立和修改的時(shí)間等信息。 -d :只列出子目錄信息。 -o :用不同顏色顯示各種類(lèi)型的文件,藍(lán)色表示子目錄、綠色表示可執(zhí)行文件、紅色表示壓縮文件、淺藍(lán)色表示連接文件、灰色表示其它文件。 (4) mkdir - 建立目錄 命令格式:mkdir 可選

8、項(xiàng) 目錄名 可選項(xiàng):-m :設(shè)置目錄的存取權(quán)限,這也可以在目錄建立后用命令chmod 來(lái)設(shè)定。-p :如果連續(xù)建立兩級(jí)以上的目錄,例如原來(lái)只有/usr/srcp目錄,可以輸入:mkdir p /usr/inin/mors/cs。(5) rmdir -刪除目錄 本命令用于刪除指定的一個(gè)或多個(gè)目錄,必須保證要?jiǎng)h除的目錄中沒(méi)有任何文件。命令格式:rmdir 可選項(xiàng) 目錄名 可選項(xiàng):-p :如果刪出一個(gè)目錄后,它的上一層目錄也變?yōu)榭漳夸浟?,這個(gè)選項(xiàng)會(huì)一并刪除上一層也變?yōu)榭盏哪夸洝?verbose :為每一個(gè)創(chuàng)建的目錄顯示一條信息。 通配符的使用與windows類(lèi)似: *,?. 如:1-9* -所有以1

9、-9中任意一個(gè)字符開(kāi)頭的文件 1,3,5* - 所有以1或3或5開(kāi)頭的文件 2.2 更改目錄或文件訪問(wèn)權(quán)限的命令linux中的訪問(wèn)權(quán)限 在linux中,對(duì)目錄訪問(wèn)的用戶(hù)分為三種:目錄屬主(u表示)、目錄屬主所在組的用戶(hù)(g表示)、其他用戶(hù)(o表示)。對(duì)文件訪問(wèn)有三種不同類(lèi)型的用戶(hù):文件所有者,同組用戶(hù)、其他用戶(hù)。目錄或文件的權(quán)限就是這三種用戶(hù)對(duì)目錄或文件進(jìn)行訪問(wèn)時(shí)的權(quán)限。 每種用戶(hù)的權(quán)限進(jìn)一步細(xì)分為讀,寫(xiě)和可執(zhí)行三種,分別用r 、w、 x表示。每一文件或目錄的訪問(wèn)權(quán)限都有三組,每組用三位表示 例如: ls l 某文件 可列出該文件的三組訪問(wèn)權(quán)限file1 rwxurwxgrw-or- ls-查

10、看訪問(wèn)權(quán)限格式: ls l 文件名# ls l sobsrc.tgz -rw-rr1 root root 483997 ju1 l5 17:3l sobsrc.tgz 文件類(lèi)型 權(quán)限 鏈接數(shù) 文件屬主 文件組 文件大小 時(shí)間 文件名確定了一個(gè)文件的訪問(wèn)權(quán)限后,用戶(hù)可以利用linux系統(tǒng)提供的chmod命令來(lái)重新設(shè)定不同的訪問(wèn)權(quán)限。也可以利用chown命令來(lái)更改某個(gè)文件或目錄的所有者。利用chgrp命令來(lái)更改某個(gè)文件或目錄的用戶(hù)組。 chmod -改變文件或目錄的訪問(wèn)權(quán)限 命令格式:chmod 可選項(xiàng) 權(quán)限 目錄或文件名 可選項(xiàng): -v :報(bào)告權(quán)限更改信息; -c :每次發(fā)生權(quán)限的實(shí)質(zhì)性更改時(shí)給

11、出一條信息。 (1) 文字設(shè)定法格式:chmod who + |-|= mode 文件名 | 目錄名 who: uuser ggroup oothers aall+ 添加 - 取消 = 賦予給定權(quán)限并取消其他所有權(quán)限 例如: $chmod g+r,o+r example (2) 數(shù)字設(shè)定法用八進(jìn)制數(shù)07來(lái)表示一組“rwx”權(quán)限,如6表示rw-首先規(guī)定 0表示沒(méi)有權(quán)限; 1表示可執(zhí)行權(quán)限; 2表示寫(xiě)權(quán)限; 4表示可讀權(quán)限 然后將四個(gè)數(shù)相加,其指范圍為07例如: # chmod 644 temp1.txt 相當(dāng)于 chmod u=rw,g=r,o=r temp1.txt(3) chgrp命令 -改

12、變文件或目錄所屬的組。 命令格式:chgrp 選項(xiàng) group filename選項(xiàng): -r:遞歸式地改變指定目錄及其下的所 有子目錄和文件的屬組 例:命令:$ chgrp r book /opt/local /book 功能:改變/opt/local /book/及其子目錄下的所有文件的屬組為book。 (4) chown -更改某個(gè)文件或目錄的屬主和屬組 命令格式:chown 選項(xiàng) 文件或目錄的新屬主.文件或目錄所在的新組 文件名|目錄 選項(xiàng): -r :遞歸地改變指定目錄及其下的所有目錄和文件的擁有者 -v :顯示chown命令所作的工作。 2.3 顯示文件內(nèi)容的命令(1)cat -顯示,

13、新建,連接文件功能1:新建文件 功能2:在標(biāo)準(zhǔn)輸出上顯示文件 格式:cat -選項(xiàng) 文件選項(xiàng):-v 用一種特殊形式顯示控制字符,lfd與tab除外。加了-v選項(xiàng)后,-t和-e選項(xiàng)將起作用。-t 將tab顯示為“ i”。該選項(xiàng)需要與-v選項(xiàng)一起使用。即如果沒(méi)有使用-v選項(xiàng),則這個(gè)選項(xiàng)將被忽略。-e 在每行的末尾顯示一個(gè)符。該選項(xiàng)需要與-v選項(xiàng)一起使用。 -a 等于-vte。-b 系統(tǒng)會(huì)在文件每一非空白行前加入編號(hào),以便識(shí)別。功能3:連接兩個(gè)或多個(gè)文件 (2) more -在終端屏幕按屏顯示文本文件。 命令格式: more - 選項(xiàng) 文件 說(shuō)明: 該命令一次顯示一屏文本,顯示滿之后,停下來(lái),并在終

14、端底部打印出- - more- - ,系統(tǒng)還將同時(shí)顯示出已顯示文本占全部文本的百分比,若要繼續(xù)顯示,按回車(chē)或空格鍵即可。 選項(xiàng): - p 顯示下一屏之前先清屏。 - c 先從最頂端顯示,在清除每行后剩余的舊內(nèi)容,可使顯示加快。 - d 在每屏的底部顯示更友好的提示信息: - - more- - (xx%)press space to ontinue , q to quit . 而且若用戶(hù)輸入了個(gè)錯(cuò)誤命令則顯示出錯(cuò)信息,而不是簡(jiǎn)單地鳴響終端。 在more命令的執(zhí)行過(guò)程中,用戶(hù)可以使用more自己的一系列命令動(dòng)態(tài)地根據(jù)需要來(lái)選擇顯示的部分。more在顯示完一屏內(nèi)容之后,將停下來(lái)等待用戶(hù)輸入某個(gè)命令

15、。下表列出了more指令在執(zhí)行中用到的一些常用命令,而有關(guān)這些命令的完整內(nèi)容,可以在more執(zhí)行時(shí)按h查看。這些命令的執(zhí)行方法是先輸入i(行數(shù))的值,再打所要的命令,不然它會(huì)以預(yù)設(shè)值來(lái)執(zhí)行命令。 i空格 若指定i,顯示下面的i行;否則,顯示下一整屏。如:5空格,即顯示下面的5行。 i回車(chē) 若指定i,顯示下面的i行;否則,顯示下一行。 iz 同“i空格”類(lèi)似,只是i將成為以下每個(gè)滿屏的缺省行數(shù)。 is 跳過(guò)下面的i行再顯示一個(gè)整屏。預(yù)設(shè)值為1。如:3s,即跳過(guò)下面的3行顯示整屏。 命令:if 跳過(guò)下面的i屏再顯示一個(gè)整屏。預(yù)設(shè)值為1。 q或q 退出more。 = 顯示當(dāng)前行號(hào)。 v 在當(dāng)前行啟動(dòng)

16、/usr/bin/vi對(duì)之進(jìn)行編輯修改。 h 顯示各命令的幫助信息。 i:f 顯示當(dāng)前文件的文件名和行數(shù)。 .(點(diǎn)) 重復(fù)上次鍵入的命令。 (3) less less命令的功能幾乎和more命令一樣,也是用來(lái)按頁(yè)顯示文件,不同之處在于less命令在顯示文件時(shí)允許用戶(hù)既可以向前又可以向后翻閱文件。 less命令的功能幾乎和more命令一樣,也是用來(lái)按頁(yè)顯示文件,不同之處在于less命令在顯示文件時(shí)允許用戶(hù)既可以向前又可以向后翻閱文件。(4) head-顯示文件或標(biāo)準(zhǔn)輸入的頭幾行 命令格式:head - n 文件 該命令顯示每個(gè)指定文件的前面n行。如果沒(méi)有給出n值,缺省設(shè)置為10。如果沒(méi)有指定文件

17、,head就從標(biāo)準(zhǔn)輸入讀取。 (5) tail-顯示文件的尾部 命令格式:tail + / - num 參數(shù) 文件 說(shuō)明:該命令顯示一個(gè)文件的指定內(nèi)容。它把指定文件的指定顯示范圍內(nèi)的內(nèi)容顯示在標(biāo)準(zhǔn)輸出上。本命令特別適用于閱讀一個(gè)有用信息在其尾部的大文件,如系統(tǒng)信息中的出錯(cuò)記錄文件(/var/log/message)。 選項(xiàng): num 從第num行以后開(kāi)始顯示。 - num 從距文件尾num行處開(kāi)始顯示。如果省略num參數(shù),系統(tǒng)默認(rèn)值為10。 參數(shù)l: 以文本行為num的計(jì)數(shù)單位。與參數(shù)選項(xiàng)num或- num選項(xiàng)同時(shí)使用時(shí),num表示要顯示的文本行行數(shù)。 參數(shù)c: 以字節(jié)為num的計(jì)數(shù)單位。與參

18、數(shù)選項(xiàng)num或- num選項(xiàng)同時(shí)使用時(shí),num表示要顯示的字符數(shù)。2.4 文件管理命令(1) touch -功能:將文件的修改時(shí)間改為當(dāng)前時(shí)間,如果文件不存在則建立一個(gè)空文件。 命令格式: touch - 選項(xiàng) 文件 (2) cp -功能:文件或目錄的拷貝 ,如同dos的copy 命令格式: cp 選項(xiàng) 源文件或目錄 目標(biāo)文件或目錄 -a 該選項(xiàng)通常在拷貝目錄時(shí)使用。它保留鏈接、文件屬性,并遞歸地拷貝目錄,其作用等于dpr選項(xiàng)的組合。 - d 拷貝時(shí)保留鏈接。 - f 刪除已經(jīng)存在的目標(biāo)文件而不提示。 - i 和f選項(xiàng)相反,在覆蓋目標(biāo)文件之前將給出提示要求用戶(hù)確認(rèn)?;卮饄時(shí)目標(biāo)文件將被覆蓋,是

19、交互式拷貝。 - p 此時(shí)cp除復(fù)制源文件的內(nèi)容外,還將把其修改時(shí)間和訪問(wèn)權(quán)限也復(fù)制到新文件中。 - r 若給出的源文件是一目錄文件,此時(shí)cp將遞歸復(fù)制該目錄下所有的子目錄和文件。此時(shí)目標(biāo)文件必須為一個(gè)目錄名。 - l 不作拷貝,只是鏈接文件。 (3) mv -功能:為文件或目錄改名或?qū)⑽募梢粋€(gè)目錄移入另一 個(gè)目錄中 命令格式: mv 選項(xiàng) 源文件或目錄 目標(biāo)文件或目錄 (4) rm -功能:刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄,它也可以將某個(gè)目錄及其下的所有文件及子目錄均刪除 命令格式: rm 選項(xiàng) 文件 選項(xiàng):- f 忽略不存在的文件,從不給出提示。 - r 指示rm將參數(shù)中列出的全部目

20、錄和子目錄均遞歸地刪除。 - i 進(jìn)行交互式刪除。3. 進(jìn)程調(diào)度程序的設(shè)計(jì)3.1進(jìn)程調(diào)度介紹進(jìn)程調(diào)度是內(nèi)核重要的組成部分,運(yùn)行著的進(jìn)程首先在使用計(jì)算機(jī)。要設(shè)計(jì)一個(gè)可以滿足各種需求的調(diào)度算法是不現(xiàn)實(shí)的。不過(guò)linux內(nèi)核的新調(diào)度程序盡量滿足各個(gè)方面,并以較完善的可伸縮性位所有情況提供了比較好的解決方案。3.2 進(jìn)程調(diào)度算法(1) 先來(lái)先服務(wù)調(diào)度算法(2) 進(jìn)程優(yōu)先調(diào)度算法(3) 時(shí)間片輪轉(zhuǎn)算法3.3 程序的設(shè)計(jì)思路(1)先來(lái)先服務(wù)調(diào)度算法 先來(lái)先服務(wù)調(diào)度算法是一種最簡(jiǎn)單的調(diào)度算法,該算法既可以用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。當(dāng)在作業(yè)調(diào)度中采用該算法時(shí),每次調(diào)度都是從后備作業(yè)隊(duì)列中選擇一個(gè)或多個(gè)最

21、先進(jìn)入該隊(duì)列的作業(yè),將他們調(diào)入內(nèi)存,為它們分配資源、創(chuàng)建進(jìn)程,然后放入就緒隊(duì)列。在進(jìn)程調(diào)度中采用fcfs算法時(shí),則每次調(diào)度是從就緒隊(duì)列中選擇一個(gè)最先進(jìn)入該隊(duì)列的進(jìn)程,為之分配處理機(jī),使之投入運(yùn)行。該進(jìn)程一直運(yùn)行到完成或發(fā)生某事件而阻塞后才放棄處理機(jī)。fcfs算法比較有利于長(zhǎng)作業(yè)(進(jìn)程),而不利于短作業(yè)(進(jìn)程)。(2)進(jìn)程優(yōu)先調(diào)度算法 短作業(yè)(進(jìn)程)優(yōu)先調(diào)度算法sj(p)f,是指對(duì)短作業(yè)或短進(jìn)程優(yōu)先調(diào)度的算法。它們可以分別用于作業(yè)調(diào)度和進(jìn)程調(diào)度。短作業(yè)優(yōu)先(sjf)的調(diào)度算法是從后備隊(duì)列中選擇一個(gè)或若干個(gè)估計(jì)運(yùn)行時(shí)間最短的作業(yè),將它們調(diào)入內(nèi)存運(yùn)行。而短進(jìn)程(spf)調(diào)度算法則是從就緒隊(duì)列中選出一

22、個(gè)估計(jì)運(yùn)行時(shí)間最短的進(jìn)程,將處理機(jī)分配給它,使它立即執(zhí)行并一直執(zhí)行到完成,或發(fā)生某事件而被阻塞放棄處理機(jī)再重新調(diào)度。sj(p)f調(diào)度算法能有效地降低作業(yè)(進(jìn)程)的平均等待時(shí)間,提高系統(tǒng)吞吐量。該算法對(duì)長(zhǎng)作業(yè)不利,完全未考慮作業(yè)的緊迫程度。(3)時(shí)間片輪轉(zhuǎn)算法 在時(shí)間片輪轉(zhuǎn)算法中,系統(tǒng)將所有的就緒進(jìn)程按先來(lái)先服務(wù)的原則排成一個(gè)隊(duì)列,每次調(diào)度時(shí),把cpu分配給隊(duì)首進(jìn)程,并令其執(zhí)行一個(gè)時(shí)間片。當(dāng)執(zhí)行的時(shí)間片用完時(shí),由一個(gè)計(jì)數(shù)器發(fā)出時(shí)鐘中斷請(qǐng)求,調(diào)度程序便據(jù)此信號(hào)來(lái)停止該進(jìn)程的執(zhí)行,并將它送往就緒隊(duì)列的末尾;然后,再把處理機(jī)分配給就緒隊(duì)列中新的隊(duì)首進(jìn)程,同時(shí)也讓它執(zhí)行一個(gè)時(shí)間片。這樣就可以保證就緒隊(duì)列

23、中的所有進(jìn)程在一給定的時(shí)間內(nèi)均能獲得一時(shí)間片的處理機(jī)執(zhí)行時(shí)間。換言之,系統(tǒng)能在給定的時(shí)間內(nèi)響應(yīng)所有用戶(hù)的請(qǐng)求。3.4程序代碼#include#include #include typedef struct pcb int name; int needtime; int arrivetime; int pri; int state; int cputime;plist;void action(plist * nowpro);void action(plist * nowpro) delay(1000); printf(now is process %d ,nowpro-name); nowpro

24、-needtime-; if(nowpro-needtime=0) printf( the process %d is endn,nowpro-name); /* nowpro-state=1; */ printf(-n); else printf(process %d needtime is %dn,nowpro-name,nowpro-needtime); printf(-n); void creatpro(int n,plist * process ) int j; for(j=0;jn;j+) = j; processj.needtime=rand()%10+

25、1; processj.arrivetime=rand()%10; processj.pri=rand()%4; processj.state=0; processj.cputime=0; void show( int n,plist * process) int j; for (j=0 ;jn;j+) printf(name of process%dt,); printf(needtime %dt,processj.needtime); printf(arrivetime %dt,processj.arrivetime); printf(pri %dn,proces

26、sj.pri); printf(state %dt,processj.state); printf(cputime %dn,processj.cputime); void main() void creatpro(int n,plist * process ); void show( int n,plist * process); void fcfs(int n,plist * process); void sjf(int n,plist * process); void rr(int n,plist * pro1); void hrrn(int n,plist * pro1); int n;

27、 /*the number of process*/ int k; plist process10; printf(please input the number of process from 0 to 10n); scanf(%d,&n); creatpro(n,process); show(n,process); printf(please choose the what you want to usen); printf(1 fcfst 2 sjft 3 hrrnt 4 rrn); scanf(%d,&k); switch(k) case 1: fcfs(n,process); bre

28、ak; case 2: sjf(n,process); break; case 3: hrrn(n,process); break; case 4: rr(n,process); break; default : break; getch();void fcfs(int n,plist * pro1) void show( int n,plist * process); int i,j,k; int m=0; int time; plist temp; plist pro210; for(i=0;in;i+) k=0; while(pro1k.state=1) k+; temp=pro1k;

29、for(j=k+1;jpro1j.arrivetime&pro1j.state!=1) temp=pro1j; k=j; pro2m+=temp; pro1k.state=1; show(n,pro2); for(i=0;i0) action(&pro2i); void sjf(int n,plist * pro1) void show( int n,plist * process); int i,j,k; int m=0; plist temp; plist pro210; for(i=0;in;i+) k=0; while(pro1k.state=1) k+; temp=pro1k; for(j=k+1;jpro1j.needtime&pro1j.state!=1) temp=pro1j; k=j; pro2m+=temp; pro1k.state=1; show(n,pro2); for(i=0;i0) action(&pro2i); void rr(int n,plist * pro1) void show( int n,plist * process); int i,j,k; int m=0; int time; plist temp; plist pro210; for(i=0;in;i+) k=0; while(pro1k.stat

溫馨提示

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

評(píng)論

0/150

提交評(píng)論