国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

如何使用java實(shí)現操作系統中的最佳置換Optimal算法

發(fā)布時(shí)間:2021-09-27 17:50 來(lái)源:億速云 閱讀:0 作者:小新 欄目: 開(kāi)發(fā)技術(shù)

這篇文章主要介紹如何使用java實(shí)現操作系統中的最佳置換Optimal算法,文中介紹的非常詳細,具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

Swap指令

最佳置換算法是由Belady于1966年提出的一種理論上的算法。其所選擇的被淘汰頁(yè)面是以后永不使用的,或許是在最長(cháng)(未來(lái))時(shí)間內不再被訪(fǎng)問(wèn)的頁(yè)面。采用最佳置換算法通常保證獲取最低的缺頁(yè)率。但人們目前還無(wú)法與之,一個(gè)線(xiàn)程在內存的若干個(gè)頁(yè)面中,哪個(gè)頁(yè)面是未來(lái)最長(cháng)時(shí)間內不再被訪(fǎng)問(wèn)的,因此該算法是無(wú)法實(shí)現的,但是可以利用該算法去評價(jià)其他算法?,F在就說(shuō)明如下。

假定系統為某進(jìn)程分配了三個(gè)物理塊,并考慮有以下的頁(yè)面號引用串:

7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1

進(jìn)程運行時(shí),先將7,0,1三個(gè)頁(yè)面裝在內存,以后需要訪(fǎng)問(wèn)頁(yè)面2時(shí),將產(chǎn)生缺頁(yè)中斷。此時(shí)OS將根據最佳算法置換算法將選擇頁(yè)面7予以淘汰。這是因為頁(yè)面0將作為第五個(gè)被訪(fǎng)問(wèn)的頁(yè)面,頁(yè)面1為第十四個(gè)被訪(fǎng)問(wèn)的頁(yè)面,而頁(yè)面7則是要在低18次訪(fǎng)問(wèn)才需要引入,以此類(lèi)推。

以下是源代碼實(shí)現部分:

package chapter02;public class P175Optimal { //查找數組中是否存在并且未存儲元素的索引 public static int existEmpty(int[] place){  for (int i = 0; i < place.length; i++) {   if(place[i]==-1)    return i;  }  //不為空  return -1; } //查找元素是否在數組中存在 public static boolean paramExist(int[] place,int param){  for (int i = 0; i < place.length; i++) {   if(place[i]==param)    return true;  }  //不為空  return false; } //獲取最大距離值 public static int getMaxIndexOfNeed(int[] place,int[] block,int start){  //最近需求定位  int minBlockIndex = -1;  int minPlaceIndex = -1;  for(int PlaceIndex = 0;PlaceIndex<place.length;PlaceIndex++){   for (int BlockIndex = start + 1; BlockIndex < block.length; BlockIndex++) {    if (block[BlockIndex] == place[PlaceIndex]) {     if (minBlockIndex < BlockIndex) {      minBlockIndex = BlockIndex;      minPlaceIndex = PlaceIndex;     }     break;    }    //這操作是查找獲取最大距離值的時(shí),發(fā)現內存中的元素以后永久不使用的元素時(shí)候    if(BlockIndex==block.length-1 && block[BlockIndex]!=place[PlaceIndex]){     return PlaceIndex;    }   }  }  return minPlaceIndex; } public static void main(String[] args) {  int[] block = new int[]{7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1};  int[] place = new int[]{-1, -1, -1};  for (int index = 0; index < block.length; index++) {   //假設元素存在則不需要進(jìn)行任何操作   if(paramExist(place,block[index])){    continue;   }else {    int emptyIndex = existEmpty(place);    //當前已經(jīng)元素滿(mǎn)了    if(emptyIndex==-1){     int maxIndex = getMaxIndexOfNeed(place,block,index);     place[maxIndex] = block[index];     for (int param : place) {      System.out.print(param + " ");    }     System.out.println();    }else{     place[emptyIndex] = block[index];    }   }  } }}

實(shí)驗結果:

"C:\Program Files\Java\jdk1.8.0_101\bin\java.exe" 2 0 1 2 0 3 2 4 3 2 0 3 2 0 1 7 0 1

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

国产在线观看WWW污污污| 一道久在线无码加勒比 | 亚洲AV无码一区二区三区国产| 国产激情艳情在线看视频| 亚洲综合无码精品一区二区三区| 欧美成 人版在线|