日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件测试——进程调度(短作业优先调度算法+先来先服务算法)测试

發(fā)布時間:2024/10/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件测试——进程调度(短作业优先调度算法+先来先服务算法)测试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

源代碼

被測代碼

Schedule

package net.mooctest;import java.util.ArrayList; import java.util.List;public class Schedule {public List<Double> FCFS(List<Work> works) {double avgCircleTime = 0;double avgCircleTimeWP = 0;List<Double> lst = new ArrayList<Double>();for (int i = 0; i < works.size(); i++) {// works.get(i).getArrivalTime();// works.get(i).getServiceTime();if (i != 0) {works.get(i).setBeginTime(works.get(i - 1).getEndTime());} else {works.get(i).setBeginTime(works.get(i).getArrivalTime());}works.get(i).setEndTime(works.get(i).getBeginTime()+ works.get(i).getServiceTime());avgCircleTime += works.get(i).getCircleTime();avgCircleTimeWP += works.get(i).getCircleWPTime();}avgCircleTime /= works.size();avgCircleTimeWP /= works.size();lst.add(avgCircleTime);lst.add(avgCircleTimeWP);return lst;}/*** 改后的短作業(yè)優(yōu)先調度算法* * @param works* @return*/public List<Double> SJF(List<Work> works) {List<Double> lst = new ArrayList<Double>();double avgCircleTime = 0;double avgCircleTimeWP = 0;List<Work> ins = new ArrayList<Work>();int i = 0;int counter = 0; // 已完成作業(yè)的計數(shù)器// 判斷是否已經(jīng)把所有的作業(yè)都處理完畢while (counter < works.size()) {// 找到所有未執(zhí)行,且到達時間小于i的作業(yè)for (int j = 0; j < works.size(); j++) {if (works.get(j).isIn())continue;if (works.get(j).getArrivalTime() <= i) {ins.add(works.get(j));}}if (ins.isEmpty()) {i++;} else {ins = sortByServiceTime(ins);// 將當前已到達的作業(yè)中,服務時間最短的作業(yè)加入到CPU執(zhí)行Work now = ins.get(0);now.setBeginTime(i);now.setEndTime(now.getBeginTime() + now.getServiceTime());now.setIn(); // 標記作業(yè)已調度counter++;i = now.getEndTime(); // 更新當前時間ins.clear(); // 清空臨時數(shù)組ins}}for (int m = 0; m < works.size(); m++) {avgCircleTime += works.get(m).getCircleTime();avgCircleTimeWP += works.get(m).getCircleWPTime();}avgCircleTime = avgCircleTime / works.size();avgCircleTimeWP = avgCircleTimeWP / works.size();lst.add(avgCircleTime);lst.add(avgCircleTimeWP);return lst;}/*** 對加入到系統(tǒng)中的作業(yè)依據(jù)服務時間多少進行排序<BR>* 然后直接返回* * @param ins* @return ins*/public static List<Work> sortByServiceTime(List<Work> ins) {for (int i = 0; i < ins.size(); i++) {for (int j = i + 1; j < ins.size(); j++) {Work aw = ins.get(i);int a = aw.getServiceTime();Work bw = ins.get(j);int b = bw.getServiceTime();if (a > b) {ins.remove(j);ins.add(i, bw);}}}return ins;} }

Work

package net.mooctest; public class Work {/** 作業(yè)名*/private String name;/** 作業(yè)到達時間*/private int arrivalTime;/** 作業(yè)服務時間*/private int serviceTime;/** 開始執(zhí)行時間*/private int beginTime;/** 完成時間*/private int endTime;/** 作業(yè)是否調入系統(tǒng)*/private boolean in=false;/*** 作業(yè)已調入*/public void setIn(){this.in=true;}/*** 判斷作業(yè)是否已調入系統(tǒng)* @return*/public boolean isIn(){return this.in;}/*** Constructor* @param name* @param t1* @param t2*/public Work(String name,int t1,int t2){this.name=name;this.arrivalTime=t1;this.serviceTime=t2;}/*** 設置開始執(zhí)行時間* @param t*/public void setBeginTime(int t){this.beginTime=t;}/*** 獲取開始時間* @return*/public int getBeginTime(){return this.beginTime;}/*** 設置完成時間* @param t*/public void setEndTime(int t){this.endTime=t;}/*** 獲取結束時間* @return*/public int getEndTime(){return this.endTime;}/*** 計算“周轉時間”=完成時間-到達時間* @return int*/public int getCircleTime(){return this.endTime-this.arrivalTime;}/*** 計算“帶權周轉時間”=周轉時間/服務時間* @return*/public double getCircleWPTime(){return ((double)getCircleTime())/this.serviceTime;}/*** 計算"響應比"=(等待時間+要求服務時間)/要求服務時間=響應時間/要求服務時間* @return*/public int getPriority(){//TODOreturn 0;}/***獲取到達時間* @return*/public int getArrivalTime(){return this.arrivalTime;}/*** 獲取服務時間* @return*/public int getServiceTime(){return this.serviceTime;} }

測試代碼

ScheduleTest

package net.mooctest;import static org.junit.Assert.*;import org.junit.Test;import java.util.ArrayList; import java.util.List;public class ScheduleTest {@Testpublic void testFCFS() {Schedule s = new Schedule();List<Work> l = new ArrayList<>();l.add(new Work("P1",0,7));l.add(new Work("P2",2,4));l.add(new Work("P3",4,1));l.add(new Work("P4",5,4));List<Double> outcome = s.FCFS(l);assertEquals(8.75,outcome.get(0),0.001);assertEquals(3.5,outcome.get(1),0.001);}@Testpublic void testSJF01(){Schedule s = new Schedule();List<Work> l = new ArrayList<>();l.add(new Work("P1",1,7));l.add(new Work("P2",2,4));l.add(new Work("P3",4,1));l.add(new Work("P4",5,4));l.add(new Work("P5",1,5));l.add(new Work("P6",2,4));l.add(new Work("P7",4,1));l.add(new Work("P8",5,6));l.add(new Work("P9",3,3));List<Double> outcome = s.SJF(l);assertEquals(14.111,outcome.get(0),0.001);assertEquals(3.518,outcome.get(1),0.001);}@Testpublic void testWork(){assertEquals(0,new Work("P1",0,5).getPriority());}}

測試結果

參考文章

幕測平臺_使用Junit測試Schedule_進程_短作業(yè)優(yōu)先調度算法_先來先服務算法

總結

以上是生活随笔為你收集整理的软件测试——进程调度(短作业优先调度算法+先来先服务算法)测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女久久久久久久久 | 91黑人精品一区二区三区 | 美女扒开内看个够网站 | 国产精品美女久久久 | 成人午夜视频一区二区播放 | 一本色道久久综合狠狠躁的推荐 | 好姑娘在线观看高清完整版电影 | 九月色婷婷 | 久久依人 | 人人澡超碰碰97碰碰碰 | 精品国产成人av | 尤物久久 | 久艹在线| 日韩欧美视频一区 | 久久av高潮av无码av喷吹 | 日本一区二区三区免费电影 | 亚洲国产精品一区二区三区 | 胸网站| 老司机激情影院 | 亚洲成人av电影在线 | 亚洲人视频 | 国产精品麻豆一区二区 | 一区二区成人精品 | 国产黄a三级三级三级看三级男男 | 日韩啊啊啊 | 日本一二三区视频 | 1024亚洲 | 欧美三日本三级少妇三99 | 日日夜夜爽 | av黄色免费在线观看 | 玩弄丰满少妇xxxxx性多毛 | 性感美女一级片 | 久久久一二三 | 精品亚洲永久免费精品 | 国产乱淫av | 欧洲免费毛片 | 亚洲a精品 | 一区二区午夜 | www.色亚洲| 国产精彩视频在线 | 狠狠伊人| 二区三区偷拍浴室洗澡视频 | 波多野结衣视频免费观看 | 一级黄色片免费看 | 小草av在线 | 天天看天天操 | 亚洲男人第一天堂 | 欧美日韩少妇精品 | 一级片aaa | 国产精品一区二区三区在线免费观看 | 日韩毛片一区 | 国产成人av一区二区三区在线观看 | 亚洲另类色图 | h片在线看 | 亚洲黄色小说视频 | 欧美日韩激情网 | 森泽佳奈作品在线观看 | 夜夜操天天 | 免费黄色短片 | 成年人在线免费观看网站 | 久草国产在线 | 欧美一级啪啪 | 揄拍自拍 | 久久综合婷婷国产二区高清 | www.在线视频 | 伊人免费在线观看 | 欧美hdxxxx| 18一20岁毛毛片 | 日本在线一区二区三区 | 亚洲五月综合 | 亚洲AV无码成人精品区先锋 | 国产精品一区二区免费在线观看 | 亚洲色图偷拍视频 | 国产妻精品一区二区在线 | 亚洲熟妇无码另类久久久 | 男人的天堂视频网站 | 真实人妻互换毛片视频 | 国产精品网站免费 | 亚洲国产精品午夜久久久 | 午夜视频免费在线观看 | 噜噜色成人| 男女啪啪资源 | 精品欧美日韩 | 国产精品久久久久9999爆乳 | 人人干天天操 | 国产在线观看免费视频软件 | 亚洲乱亚洲乱 | 西野翔夫の目の前で犯在线 | 国产一区二区三区影院 | 伊人伊人网 | 欧美成人精品激情在线视频 | 日韩成人久久 | av在线伊人 | 久色伊人 | 欧美精品久久 | 日本免费一区二区三区四区五六区 | 日韩插| 四虎影视黄色 | 精品人妻一区二区三区久久 |