亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? quickfit.java

?? 操作系統(tǒng)-動態(tài)分區(qū)分配算法 操作系統(tǒng)-動態(tài)分區(qū)分配算法
?? JAVA
字號:
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

/*
 * 快速適應(yīng)算法
 * 算法概述:將空閑分區(qū)按容量大小進行分類,為每一類具有相同容量的空閑分區(qū)單獨設(shè)立一個空閑分區(qū)鏈表,
 *          分配時僅根據(jù)線程長度尋找能容納它的最小空閑分區(qū)
 * 實現(xiàn)方法:由于元素少,所以很難出現(xiàn)相同的數(shù)值,于是改為將數(shù)值接近的元素分為一組(以10為單位分類),
 *          分配時將大于該作業(yè)的一組元素中最小的一個分配出來
 * 
 */

public class QuickFit extends JFrame implements MouseListener {
	JTextPane t = new JTextPane();
	JPanel p = new JPanel();

	// 定義一個二維數(shù)組用于存儲分組后的元素,二維數(shù)組可實現(xiàn)按元素所在行而分辨出它所在的組
	mem[][] aa;

	// m表示分組后最長組的數(shù)組長度,index用于指示未得到分配的作業(yè)存入c的位置
	int m, index;

	// c用于存儲未得到分配的作業(yè),構(gòu)造方法中將它的長度設(shè)為與作業(yè)數(shù)組長度相同
	int[] c;

	// 通過count方法統(tǒng)計各個分組的大小,然后以最大的長度作為二維數(shù)組aa的列數(shù)
	public void count(mem[] b) {
		int i0 = 0, i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
		// 通過switch語句把所有空閑分區(qū)分組的大小確定
		for (int i = 0; i < b.length; i++) {
			if (b[i].m4 == 0) {
				switch (b[i].m2 / 10) {
				case 0: {
					i0++;
					break;
				}
				case 1: {
					i1++;
					break;
				}
				case 2: {
					i2++;
					break;
				}
				case 3: {
					i3++;
					break;
				}
				case 4: {
					i4++;
					break;
				}
				case 5: {
					i5++;
					break;
				}
				case 6: {
					i6++;
					break;
				}
				case 7: {
					i7++;
					break;
				}
				case 8: {
					i8++;
					break;
				}
				default: {
					i9++;
					break;
				}
				}

			}
		}
		m = Math.max(Math.max(Math.max(Math.max(Math.max(Math.max(Math.max(Math
				.max(Math.max(i0, i1), i2), i3), i4), i5), i6), i7), i8), i9);
		aa = new mem[10][m];

	}

	// 分組存數(shù)據(jù),即給二維數(shù)組aa的對應(yīng)位置賦值
	// 通過i0~i9幾個數(shù)起到指針的作用,將各組元素依次存入對應(yīng)位置
	public void create(mem[] b) {
		int i0 = 0, i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
		for (int i = 0; i < b.length; i++) {
			if (b[i].m4 == 0) {
				switch (b[i].m2 / 10) {
				case 0: {
					aa[0][i0] = b[i];
					i0++;
					break;
				}
				case 1: {
					aa[1][i1] = b[i];
					i1++;
					break;
				}
				case 2: {
					aa[2][i2] = b[i];
					i2++;
					break;
				}
				case 3: {
					aa[3][i3] = b[i];
					i3++;
					break;
				}
				case 4: {
					aa[4][i4] = b[i];
					i4++;
					break;
				}
				case 5: {
					aa[5][i5] = b[i];
					i5++;
					break;
				}
				case 6: {
					aa[6][i6] = b[i];
					i6++;
					break;
				}
				case 7: {
					aa[7][i7] = b[i];
					i7++;
					break;
				}
				case 8: {
					aa[8][i8] = b[i];
					i8++;
					break;
				}
				default: {
					aa[9][i9] = b[i];
					i9++;
					break;
				}
				}

			}
		}
	}

	// 快速適應(yīng)算法分組的顯示方法
	public void print(mem[][] a, JTextPane t) {
		add.insert(" - - - - - - - - - - - - - - - - - - - - - - -" + "\n", t);
		add.insert(" 空閑分區(qū)分組如下所示:", t);
		// 使用for循環(huán)將各組元素依次輸出,即輸出二維數(shù)組中各行的非零元素
		add.insert("\n" + "  1~ 9:   ", t);
		if (a[0][0] != null) {// 假如第一位非零,則說明該組元素非空
			int i = 0;
			while (i < m && a[0][i] != null) {// 將在數(shù)組長度范圍內(nèi)的非零元素輸出
				add.insert3(" [" + a[0][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n" + " 10~19:   ", t);
		if (a[1][0] != null) {
			int i = 0;
			while (i < m && a[1][i] != null) {
				add.insert3(" [" + a[1][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n" + " 20~29:   ", t);
		if (a[2][0] != null) {
			int i = 0;
			while (i < m && a[2][i] != null) {
				add.insert3(" [" + a[2][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n" + " 30~39:   ", t);
		if (a[3][0] != null) {
			int i = 0;
			while (i < m && a[3][i] != null) {
				add.insert3(" [" + a[3][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n" + " 40~49:   ", t);
		if (a[4][0] != null) {
			int i = 0;
			while (i < m && a[4][i] != null) {
				add.insert3(" [" + a[4][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n" + " 50~59:   ", t);
		if (a[5][0] != null) {
			int i = 0;
			while (i < m && a[5][i] != null) {
				add.insert3(" [" + a[5][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n" + " 60~69:   ", t);
		if (a[6][0] != null) {
			int i = 0;
			while (i < m && a[6][i] != null) {
				add.insert3(" [" + a[6][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n" + " 70~79:   ", t);
		if (a[7][0] != null) {
			int i = 0;
			while (i < m && a[7][i] != null) {
				add.insert3(" [" + a[7][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n" + " 80~89:   ", t);
		if (a[8][0] != null) {
			int i = 0;
			while (i < m && a[8][i] != null) {
				add.insert3(" [" + a[8][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n" + " 90~99:   ", t);
		if (a[9][0] != null) {
			int i = 0;
			while (i < m && a[9][i] != null) {
				add.insert3(" [" + a[9][i].m2 + "]", t);
				i++;
			}
		}
		add.insert("\n", t);
	}

	// select方法用于確定將哪個空閑分區(qū)分配給作業(yè)
	public void select(int a, mem[] b) {
		// 將作業(yè)大小除以十可知該作業(yè)屬十組中哪一組,而比該組大的組中的元素肯定可以分配給它,以此作為算法
		int n = a / 10;
		// 由于使用的算法決定了無法分配大于90的作業(yè),所以以下循環(huán)中僅比較1~89的值,超過90直接認(rèn)定為無法分配
		for (int i = n; i < 10; i++) {
			if (n < 9 && i < 9) {// 僅在作業(yè)大小小于90以及未比較至最后一組空閑分區(qū)的情況下進行
				if (aa[i + 1][0] != null) {// 若比該作業(yè)大的一組空閑空間數(shù)組頭位元素存在
					add.insert2("\n" + " [" + aa[i + 1][0].m2 + "] 分配給 [" + a
							+ "] " + "\n", t);
					// 將該數(shù)組從第二位開始前移,末位設(shè)零,然后結(jié)束本次循環(huán)
					for (int j = 0; j < m - 1; j++) {
						aa[i + 1][j] = aa[i + 1][j + 1];
					}

					int xx = aa[i + 1][0].m1 - 1;
					b[xx].m4 = 1;

					aa[i + 1][m - 1] = null;
					break;
				} else {// 假如比該作業(yè)大的一組空閑空間數(shù)組頭位元素不存在,則再往上找
					continue;
				}
			} else {// 假如作業(yè)大于90或者比較到最后(i=9)仍無合適空間,則輸出“無法分配”,并將index加一
				c[index] = a;
				add.insert2("\n" + " [" + a + "] 無法分配" + "\n", t);
				index++;
			}
		}
	}

	// 構(gòu)造方法
	public QuickFit(int[] ai, mem[] bi) {

		// 為避免改變傳遞進來的數(shù)組值,影響操作,新建兩個相同的數(shù)組
		int la = ai.length, lb = bi.length;
		int[] a = new int[la];
		mem[] b = new mem[lb];
		for (int i = 0; i < la; i++) {
			a[i] = ai[i];
		}
		for (int i = 0; i < lb; i++) {
			b[i] = bi[i];
		}

		c = new int[a.length];
		// 以下為界面代碼
		JScrollPane sp = new JScrollPane(t);
		p.setLayout(new GridLayout(1, 1));
		p.add(sp);
		t.addMouseListener(this);
		t.setBackground(Color.yellow);
		t.setEditable(false);
		add(p);
		setSize(350, 250);
		setVisible(true);
		setLocation(100, 60);
		setTitle("快速適應(yīng)算法");

		add.printJ(a, t);
		add.insert2(" 內(nèi)存分區(qū)初始狀態(tài):" + "\n", t);
		Test.print(b, t);
		// 調(diào)用分組的方法生成一個空的二維數(shù)組
		count(b);
		// 將二維數(shù)組對應(yīng)位置逐一賦值
		create(b);
		// 調(diào)用顯示分組結(jié)果的方法
		print(aa, t);

		// 使用循環(huán)依次將作業(yè)按select方法分配
		for (int i = 0; i < a.length; i++) {

			int cc = 0;
			for (int j = 0; j < 10; j++) {
				if (aa[j][0] == null) {
					cc++;
				}
				if (cc == 10) {
					add.insert2(" 內(nèi)存中已無空閑分區(qū)" + "\n", t);
					break;
				}
			}

			select(a[i], b);
			add.insert(" - - - - - - - - - - - - - - - - - - - - - - -" + "\n",
					t);
			add.insert("\n", t);
			print(aa, t);
		}
		add.insert("\n", t);

		if (c[0] != 0) {// 若未分配作業(yè)數(shù)組非空
			add.insert2(" 以下作業(yè)未得到分配:" + "\n", t);
			for (int i = 0; i < c.length; i++) {
				if (c[i] != 0) {// 輸出非零元素
					add.insert(" [" + c[i] + "]", t);
				}
			}
		} else {// 如果未分配作業(yè)數(shù)組為空,則輸出"所有作業(yè)分配完成"
			add.insert2(" 所有作業(yè)分配完成" + "\n", t);
		}
		add.insert2("\n" + " 內(nèi)存最終狀態(tài):" + "\n", t);
		Test.print(b, t);
	}

	public void mouseClicked(MouseEvent arg0) {
		// TODO 自動生成方法存根

	}

	public void mouseEntered(MouseEvent arg0) {
		// TODO 自動生成方法存根
		t.setBackground(Color.white);
	}

	public void mouseExited(MouseEvent arg0) {
		// TODO 自動生成方法存根

	}

	public void mousePressed(MouseEvent arg0) {
		// TODO 自動生成方法存根

	}

	public void mouseReleased(MouseEvent arg0) {
		// TODO 自動生成方法存根

	}

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠网亚洲精品| 国产亚洲一区二区三区四区| 一区二区三区免费在线观看| 99热在这里有精品免费| 亚洲日本va午夜在线影院| 91亚洲国产成人精品一区二三| 国产精品麻豆99久久久久久| 成人免费视频一区| 亚洲免费观看在线视频| 在线视频一区二区免费| 日韩国产精品大片| 久久色成人在线| 91丨porny丨国产入口| 岛国精品一区二区| 亚洲激情网站免费观看| 欧美精品久久天天躁| 精品一区二区久久| 1024成人网色www| 欧美日韩精品是欧美日韩精品| 蜜桃一区二区三区四区| 久久精品亚洲乱码伦伦中文| 91麻豆福利精品推荐| 人人爽香蕉精品| 欧美激情一区二区三区不卡| 在线观看中文字幕不卡| 久久99精品国产| 亚洲人成精品久久久久| 日韩视频永久免费| 99久久精品免费看| 美女视频一区二区三区| 国产精品二三区| 日韩午夜中文字幕| 91香蕉视频污| 久久国产夜色精品鲁鲁99| 日本一区免费视频| 日韩一级片在线播放| 99久久综合狠狠综合久久| 麻豆成人av在线| 亚洲另类春色国产| 国产欧美日本一区二区三区| 欧美性猛交xxxxxxxx| 国产一区二区91| 亚洲成人午夜电影| 中文字幕亚洲不卡| 26uuu精品一区二区在线观看| 色婷婷综合激情| 国产激情精品久久久第一区二区 | 欧美不卡视频一区| a4yy欧美一区二区三区| 极品少妇一区二区| 亚洲电影激情视频网站| 日本一区二区三区视频视频| 欧美伦理影视网| 色天天综合色天天久久| 国产成人av福利| 精品一区二区在线看| 亚洲午夜免费福利视频| 亚洲三级在线免费| 欧美韩日一区二区三区| 久久综合色8888| 日韩欧美美女一区二区三区| 欧美日韩国产一二三| 日本福利一区二区| 色综合中文字幕国产| 国产一区二区三区四区五区入口| 视频一区在线视频| 亚洲最大成人综合| 亚洲欧美aⅴ...| 椎名由奈av一区二区三区| 中文一区二区完整视频在线观看| 2017欧美狠狠色| 欧美刺激脚交jootjob| 日韩美女主播在线视频一区二区三区| 欧美日韩国产色站一区二区三区| 欧美一a一片一级一片| 99热国产精品| 六月婷婷色综合| av电影在线观看不卡 | 国产精品初高中害羞小美女文| 日韩免费在线观看| 韩国一区二区在线观看| 免费在线观看不卡| 日韩高清不卡在线| 日韩1区2区3区| 青青草国产精品亚洲专区无| 视频一区视频二区在线观看| 亚洲成a人片综合在线| 视频在线观看一区二区三区| 日韩avvvv在线播放| 日本91福利区| 国产精品18久久久久久久网站| 国产精品主播直播| 成人免费观看av| 91日韩在线专区| 欧美亚洲国产bt| 欧美一区二区三区啪啪| 精品成人在线观看| 国产欧美视频一区二区三区| 国产精品无圣光一区二区| 亚洲人成影院在线观看| 亚洲国产乱码最新视频| 蜜臀国产一区二区三区在线播放| 激情综合色播五月| 成人久久18免费网站麻豆| 91在线视频网址| 91麻豆精品国产91久久久久久| 日韩免费视频一区| 日本一区二区成人在线| 亚洲免费在线视频| 久久成人av少妇免费| 国产a视频精品免费观看| 色综合久久久久| 日韩三级在线免费观看| 国产精品色一区二区三区| 亚洲精品自拍动漫在线| 免费成人性网站| 91在线一区二区| 欧美一区二区三区视频在线 | 99精品欧美一区| 在线不卡a资源高清| 国产午夜久久久久| 亚洲国产日韩一级| 成人午夜视频网站| 日韩欧美电影一二三| 中文字幕亚洲不卡| 久久99国产精品尤物| 色婷婷av一区二区三区大白胸| 精品美女一区二区三区| 亚洲欧美日韩一区二区| 国产精品一区专区| 在线成人高清不卡| 亚洲嫩草精品久久| 亚洲丝袜精品丝袜在线| av在线综合网| 欧美久久久久免费| 久久久精品蜜桃| 五月婷婷激情综合| 色婷婷激情久久| 中文字幕不卡在线观看| 免费一级欧美片在线观看| 99这里只有精品| 2021国产精品久久精品| 亚洲一区免费视频| 99久久久精品| 国产精品嫩草99a| 国产剧情一区在线| 精品精品国产高清a毛片牛牛| 艳妇臀荡乳欲伦亚洲一区| av一区二区三区四区| 国产欧美一区二区精品忘忧草| 日韩成人免费在线| 欧美日韩国产免费一区二区| 亚洲精品久久久蜜桃| proumb性欧美在线观看| 久久久99精品免费观看| 久久99精品久久久久久国产越南| 91麻豆精品国产| 丝袜诱惑制服诱惑色一区在线观看| 99国产精品视频免费观看| 欧美国产精品久久| 国产黄色精品网站| 欧美极品aⅴ影院| 国产999精品久久| 国产日韩在线不卡| 国产 日韩 欧美大片| 久久久久久99久久久精品网站| 国产一区三区三区| 久久新电视剧免费观看| 国产在线一区观看| 久久久99精品免费观看| 国产精品一级二级三级| 国产欧美精品一区二区三区四区| 国产91高潮流白浆在线麻豆| 国产欧美一区二区精品秋霞影院| 国产白丝精品91爽爽久久| 欧美激情一区二区三区全黄| 成人av在线播放网址| 亚洲人成精品久久久久| 欧美中文字幕一区| 日韩黄色在线观看| 日韩精品专区在线影院观看| 国产一区二区久久| 国产精品久久久久久久蜜臀| 99re视频精品| 亚洲777理论| 亚洲精品在线观看视频| 成人av网站免费观看| 亚洲欧美另类小说视频| 欧美日韩一本到| 美国三级日本三级久久99| 国产偷国产偷精品高清尤物| 91在线播放网址| 五月开心婷婷久久| 精品国产91乱码一区二区三区| 国产福利一区二区三区视频| 亚洲欧洲精品一区二区精品久久久 | 99国产精品久久久久| 亚洲一卡二卡三卡四卡 | 精品一区二区三区免费视频| 2020日本不卡一区二区视频|