版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 計算機(jī)操作系統(tǒng)課程設(shè)計實(shí)驗報告</p><p> 題目名稱進(jìn)程調(diào)度模擬系統(tǒng)</p><p> 院系班級完成時間2013.1.8</p><p> 指導(dǎo)老師本次實(shí)驗成績</p><p> 組長聯(lián)系電話郵件地址</p><p> 組長(姓名、學(xué)號)主要任務(wù)需求分析,模塊設(shè)計與代碼編寫,組織任務(wù)分配,P
2、PT制作,實(shí)驗報告審定,材料匯總等</p><p> 成員(姓名、學(xué)號)主要任務(wù)代碼的編寫實(shí)驗報告的編寫、材料查找等</p><p> 題目進(jìn)程調(diào)度:模擬FCFS和SJF進(jìn)程調(diào)度過程</p><p> 實(shí)驗介紹原理現(xiàn)在的處理機(jī)任務(wù)量大,多個進(jìn)程會不同時先后到達(dá),并且各個進(jìn)程的工作時間也不一定相同,為了使各個進(jìn)程間不發(fā)生沖突,有條不紊的先后運(yùn)行,并以最短的時間占用處理
3、機(jī), 面對這種發(fā)展?fàn)顩r,有必要使用進(jìn)程調(diào)度算法來提高處理機(jī)的工作效率。去選擇合適的一種進(jìn)程調(diào)度算法達(dá)到理想的效果,可以做到信息的規(guī)范管理、科學(xué)統(tǒng)計和快速運(yùn)作,從而減少時間上的浪費(fèi)。用Java語句設(shè)計實(shí)現(xiàn)登陸界面,直觀顯示各種算法和調(diào)度結(jié)果,直觀地顯示運(yùn)行結(jié)果,設(shè)計進(jìn)程調(diào)度算法實(shí)現(xiàn)用不同算法(先來先服務(wù),短作業(yè)優(yōu)先,高響應(yīng)比優(yōu)先調(diào)度算法,時間片輪轉(zhuǎn)算法)進(jìn)行進(jìn)程調(diào)度,算出最短周轉(zhuǎn)時間,實(shí)現(xiàn)高效率調(diào)度算法。參考資料[1] 黃祥喜,計算機(jī)操作
4、系統(tǒng)實(shí)驗教程。廣州:中山大學(xué)出版社,1994.[2] 湯子瀛,《計算機(jī)操作系統(tǒng)(修訂版)》西安電子科技大學(xué)出版社[3] Andrew S.Tanenbaum,現(xiàn)代操作系統(tǒng),機(jī)械工業(yè)出版社。[4] (美)Bruce Eckel. Java編程思想. 陳昊鵬譯. 北京:機(jī)械工業(yè)出版社,2007 [5] 王路群.Java高級程序設(shè)計.北京:中國水利水電出版社,2006[6] 孫衛(wèi)琴. 精通Stru</p><p> 實(shí)
5、驗實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的定義進(jìn)程個數(shù) N進(jìn)程號 b[i][0]提交時間 b[i][1]運(yùn)行時間 b[i][2]開始時間 b[i][3]結(jié)束時間 b[i][4]周轉(zhuǎn)時間 b[i][5]帶權(quán)周轉(zhuǎn)時間 b[i][6]算法介紹(可以是流程圖、可以是類C代碼、可以是文字算法描述。)1. FCFS算法FCFS算法是最簡單的算法,每次調(diào)度是從就緒的進(jìn)程隊列中,選擇一個最先進(jìn)入該隊列的進(jìn)程,為之位置
6、分配處理機(jī),使之運(yùn)行。(1)先對各進(jìn)程的提交順序進(jìn)行升序排列,選擇最先提交的進(jìn)程開始運(yùn)行。(2)對已運(yùn)行結(jié)束的進(jìn)程結(jié)束時間與下一個提交的進(jìn)程時間比較,若大于下一個進(jìn)程的提交時間,則下一個進(jìn)程的開始運(yùn)行時間就是上一個進(jìn)程的結(jié)束時間,否則,下一個進(jìn)程的開始運(yùn)行時間就是自己的提交時間。(3)依次向后運(yùn)行。2. SJF算法SJF算法是以作業(yè)的長短來計算優(yōu)先級,作業(yè)越短優(yōu)先級越高。作業(yè)長短用所要求的運(yùn)行時間來衡量。(1)先對各進(jìn)程的提交順序進(jìn)行升
7、序排列,選擇最先提交的進(jìn)程開始運(yùn)行。(2)對已運(yùn)行結(jié)束的進(jìn)程結(jié)束時間與下一個提交的進(jìn)程時間比較,若大于下一個進(jìn)程的提交</p><p> 本次實(shí)踐計劃、進(jìn)度安排及完成情況實(shí)踐計劃1.資料收集和總結(jié)2.需求分析和算法設(shè)計,界面設(shè)計3.編程實(shí)現(xiàn)及調(diào)試,小組討論及改進(jìn)4.實(shí)驗報告及PPT匯報進(jìn)度安排完成情況</p><p> 實(shí)驗心得**:此次操作系統(tǒng)課程設(shè)計,作為組長,主要任務(wù)為組織任務(wù)分配,
8、在技術(shù)方面負(fù)責(zé)需求分析,模塊設(shè)計與代碼編寫, PPT制作,實(shí)驗報告審定,材料匯總等。我們采用JAVA語言設(shè)計進(jìn)程調(diào)度模擬系統(tǒng),在給定題目的基礎(chǔ)上,增加了兩個調(diào)度算法,在此模擬系統(tǒng)中實(shí)現(xiàn)了四種基本進(jìn)程調(diào)度,并利用GUI設(shè)計的優(yōu)勢設(shè)計出良好的界面風(fēng)格。從課題確定到正式成稿的一個月過程中,我們進(jìn)行了合理的計劃安排和任務(wù)分配,組員合作十分融洽,并每周進(jìn)行一次集中討論交流,最終較好地完成了預(yù)定目標(biāo)。在編程實(shí)踐中,我對JAVA語言有了進(jìn)一步的深入,
9、對進(jìn)程調(diào)度有了更深入的認(rèn)識。此次團(tuán)隊合作也使我更加明確集體合作的重要性,大家共同討論,共同搜集資料,集思廣益,項目才能圓滿完成。相信每一位組員也都收獲頗多,很感謝有這么一次機(jī)會和大家合作,這會是一次難忘的經(jīng)歷。**:在這次操作系統(tǒng)課程設(shè)計中,我的主要任務(wù)是編寫部分代碼。另外,我也協(xié)助編寫了實(shí)驗報告以及資料的收集。編寫代碼過程中,我認(rèn)真回顧了上學(xué)期操作系統(tǒng)的知識及JAVA和C語言的知識,并仔細(xì)編寫研究了代碼,進(jìn)行了多次的修改。通過此次課程
10、設(shè)計,我對四個進(jìn)程調(diào)度有了更深入的理解(特別是時間</p><p> 備注(包括源程序清單及其它說明)源程序清單package NEW2;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class OS extends JFrame implements ActionListener{JButton b1, b2, b3,
11、 b4;JTable table;JTextField j2, j3;String str = JOptionPane.showInputDialog("請輸入進(jìn)程數(shù):");int N = Integer.parseInt(str);String process_num = null;String arrive_time = null;String service_time = null;String start_t
12、ime = null, end_time = null, total_time = null,weightotal_time = null;String a[][] = new String[N][7];String[] name =</p><p> gbc.gridheight = 1;f.setConstraints(label6, gbc);c.add(label6);JLabel label7 = ne
13、w JLabel(" ");gbc.gridwidth = GridBagConstraints.REMAINDER;gbc.gridheight = 1;f.setConstraints(label7, gbc);c.add(label7);JLabel label2 = new JLabel("平均周轉(zhuǎn)時間:");label2.setFont(new Font("楷體",
14、 Font.BOLD, 12));gbc.gridwidth = 1;gbc.gridheight = 1;f.setConstraints(label2, gbc);c.add(label2);j2 = new JTextField(10);gbc.weightx = 0.0;gbc.weighty = 0.0;gbc.gridwidth = 1;gbc.gridheight = 1;f.setConstraints(j2, gbc)
15、;j2.setTe</p><p> b1 = new JButton("先來先服務(wù)");b1.setFont(new Font("楷體", Font.BOLD, 15));gbc.gridwidth = 1;gbc.gridheight = 1;f.setConstraints(b1, gbc);c.add(b1);b2 = new JButton("短作業(yè)優(yōu)先
16、");b2.setFont(new Font("楷體", Font.BOLD, 15));gbc.gridwidth = 1;gbc.gridheight = 1;f.setConstraints(b2, gbc);c.add(b2);b3 = new JButton("時間片輪轉(zhuǎn)");b3.setFont(new Font("楷體", Font.BOLD, 15))
17、;gbc.gridwidth = 1;gbc.gridheight = 1;f.setConstraints(b3, gbc);c.add(b3);b4 = new JButton("高響應(yīng)比優(yōu)先");b4.setFont(new Font("楷體", Font.BOLD, 15));gbc.grid</p><p> double t, s, m;double b[][]
18、 = new double[N][7];if (e.getSource().equals(b1))// /////////////////////////////先來先服務(wù){(diào)try {for (i = 0; i < N; i++) {for (j = 0; j < 3; j++) {b[i][j] = Double.parseDouble(a[i][j]);}}for (i = 0; i < N; i++){for (
19、j = 0; j < N; j++) {if (b[i][1] <= b[j][1]) {t = b[i][1];b[i][1] = b[j][1];b[j][1] = t;s = b[i][2];b[i][2] = b[j][2];b[j][2] = s;m = b[i][0];b[i][0] = b[j][0];b[j][0] = m;}}}b[0][3] = b[0][1];b[0][4] = b[0][3] + b[
20、0][2];b[0][5] = b[0][4] - b[0][1];b[0][6] = b[0]</p><p> }for (i = 0; i < N; i++) {for (j = 0; j < 7; j++) {table.setValueAt("" + b[i][j], i, j);}}} catch (Exception ee) {ee.printStackTrace()
21、;}}if (e.getSource().equals(b2))// /////////////////////////////短作業(yè)優(yōu)先{try {for (i = 0; i < N; i++){for (j = 0; j < 3; j++) {b[i][j] = Double.parseDouble(a[i][j]);}}for (i = 0; i < N; i++){for (j = 0; j < N; j
22、++) {if (b[i][1] < b[j][1]) {t = b[i][1];b[i][1] = b[j][1];b[j][1] = t;s = b[i][2];b[i][2] = b[j][2];b[j][2] = s;m = b[i][0];b[i][0] = b[j][0];b[j][0] = m;}}}</p><p> for (i = 1; i < N; i++) {if (b[i -
23、 1][4] >= b[i][1]){for (j = i; j < N; j++) {if (b[i - 1][4] < b[j][1]) {h = j;for (p = i; p < h; p++){for (n = i; n < h; n++) {if (b[p][2] < b[n][2]) {t = b[p][1];b[p][1] = b[n][1];b[n][1] = t;s = b[p][
24、2];b[p][2] = b[n][2];b[n][2] = s;m = b[p][0];b[p][0] = b[n][0];b[n][0] = m;}}}b[i][3] = b[i - 1][4];b[i][4] = b[i][3] + b[i][2];b[i][5] = b[i][4] - b[i][1];b[i][6] = b[i][5] / b[i][2];}}if (b[i - 1][4] >= b[N - 1][1])
25、 {for (p = i; p < N; p++){for (n = i; n < N; n+</p><p> }}b[i][3] = b[i - 1][4];b[i][4] = b[i][3] + b[i][2];b[i][5] = b[i][4] - b[i][1];b[i][6] = b[i][5] / b[i][2];}}if (b[i - 1][4] < b[i][1]) {b[i]
26、[3] = b[i][1];b[i][4] = b[i][3] + b[i][2];b[i][5] = b[i][4] - b[i][1];b[i][6] = b[i][5] / b[i][2];}}for (i = 0; i < N; i++) {for (j = 0; j < 7; j++) {table.setValueAt("" + b[i][j], i, j);}}} catch (Except
27、ion ee) {ee.printStackTrace();}}if (e.getSource().equals(b3))// /////////////////////////////時間片輪轉(zhuǎn){JTextField txt = new JTextField(5);String val = JOption</p><p> for (i = 0; i < N; i++){for (j = 0; j <
28、; N; j++) {if (b[i][1] <= b[j][1]) {t = b[i][1];b[i][1] = b[j][1];b[j][1] = t;s = b[i][2];b[i][2] = b[j][2];b[j][2] = s;m = b[i][0];b[i][0] = b[j][0];b[j][0] = m;}}}Double r = b[0][1] ;b[0][3] = b[0][1];while (t0 == 1
29、) {t1 = 0;for (i = m0; i < m1 + m0; i++) {if (c[i] < b[i][2]){t1 = 1;break;}}if (t1== 1) {for (i = m0; i < m1 + m0; i++) {if (c[i] < b[i][2]) {c[i] = c[i] + slice;r = r + slice;if (c[i] == b[i][2])b[i][4] = r
30、;}}while(m1 <= N-1){if(b[m1][1] <= r)</p><p> else {for (i = 0; i < N; i++) {if (c[i] ==0.0) {m0 = i;r = r + b[i][1];break;}b[m0][3] = b[m0][1];}}t0 = 0;for (i = 0; i < N; i++) if (c[i] < b[i]
31、[2]){t0 = 1;break;}}for (i = 0; i < N; i++) {b[i][5] = b[i][4] - b[i][1];b[i][6] = b[i][5] / b[i][2];}for (i = 0; i < N; i++) {for (j = 0; j < 7; j++) {table.repaint();table.setValueAt("" + b[i][j], i,
32、 j);}}}if (e.getSource().equals(b4))// /////////////////////////////高響應(yīng)比優(yōu)先調(diào)度{double tt, ss, mm;double d[] = new double[N];try {for (i = 0; i < N; i++){fo</p><p> for (i = 0; i < N; i++){for (j = 0; j &
33、lt; N; j++) {if (b[i][1] < b[j][1]) {t = b[i][1];b[i][1] = b[j][1];b[j][1] = t;s = b[i][2];b[i][2] = b[j][2];b[j][2] = s;m = b[i][0];b[i][0] = b[j][0];b[j][0] = m;}}}b[0][3] = b[0][1];b[0][4] = b[0][3] + b[0][2];b[0][
34、5] = b[0][4] - b[0][1];b[0][6] = b[0][5] / b[0][2];for (i = 1; i < N; i++) {for (j = i; j < N; j++) {d[j] = (b[i - 1][4] - b[j][1] + b[j][2]) / b[j][2];}if (b[i - 1][4] >= b[i][1]){for (j = i; j < N; j++){for
35、 (p = i; p < N; p++) {if (d[j] >= d[p])</p><p> d[j] = d[p];d[p] = m;mm = b[j][2];b[j][2] = b[p][2];b[p][2] = mm;}}}b[i][3] = b[i - 1][4];b[i][4] = b[i][3] + b[i][2];b[i][5] = b[i][4] - b[i][1];b[i][6]
36、 = b[i][5] / b[i][2];} else {b[i][3] = b[i][1];b[i][4] = b[i][3] + b[i][2];b[i][5] = b[i][4] - b[i][1]; b[i][6] = b[i][5] / b[i][2];}}for (i = 0; i < N; i++) {for (j = 0; j < 7; j++) {table.repaint();table.setValue
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 操作系統(tǒng)課程設(shè)計-進(jìn)程調(diào)度模擬
- 操作系統(tǒng)課程設(shè)計——進(jìn)程調(diào)度模擬算法
- 操作系統(tǒng)課程設(shè)計---進(jìn)程調(diào)度模擬設(shè)計
- 操作系統(tǒng)課程設(shè)計——進(jìn)程調(diào)度模擬算法
- 進(jìn)程模擬調(diào)度算法課程設(shè)計
- 進(jìn)程調(diào)度模擬程序課程設(shè)計
- 操作系統(tǒng)課程設(shè)計---進(jìn)程調(diào)度子系統(tǒng)模擬實(shí)現(xiàn)
- 操作系統(tǒng)進(jìn)程調(diào)度課程設(shè)計
- 操作系統(tǒng)進(jìn)程調(diào)度課程設(shè)計
- 操作系統(tǒng)課程設(shè)計報告---進(jìn)程調(diào)度的模擬實(shí)現(xiàn)
- 《高級語言程序設(shè)計》課程設(shè)計--進(jìn)程調(diào)度模擬
- 進(jìn)程調(diào)度算法 操作系統(tǒng)課程設(shè)計
- 操作系統(tǒng)進(jìn)程調(diào)度課程設(shè)計報告
- 操作系統(tǒng)課程設(shè)計--進(jìn)程調(diào)度算法
- 操作系統(tǒng)課程設(shè)計---進(jìn)程調(diào)度算法
- 進(jìn)程調(diào)度算法操作系統(tǒng)課程設(shè)計
- 操作系統(tǒng)課程設(shè)計--進(jìn)程調(diào)度算法
- 進(jìn)程調(diào)度算法操作系統(tǒng)課程設(shè)計 (2)
- 操作系統(tǒng)模擬進(jìn)程課程設(shè)計
- 操作系統(tǒng)課程設(shè)計--進(jìn)程調(diào)度程序設(shè)計
評論
0/150
提交評論