1. 程式人生 > >例項分析首次適應演算法、最佳適應演算法、最差適應演算法

例項分析首次適應演算法、最佳適應演算法、最差適應演算法

關於首次適應演算法、最佳適應演算法和最差適應演算法,先看一下百度百科的解釋,已經說出了三者的最大區別。

首次適應演算法(first-fit):

    從空閒分割槽表的第一個表目起查詢該表,把最先能夠滿足要求的空閒區分配給作業,這種方法的目的在於減少查詢時間。

    最佳適應演算法(best-fit):從全部空閒區中找出能滿足作業要求的,且大小最小的空閒分割槽,這種方法能使碎片儘量小。

    最差適應演算法(worst-fit):它從全部空閒區中找出能滿足作業要求的、且大小最大的空閒分割槽,從而使連結串列中的節點大小趨於均勻。

下面看一個例項:

Given five memory partitions of 100 KB, 500 KB, 200 KB, 300 KB, and 600 KB (in order), how would each of the first-fit, best-fit, and worst-fit algorithms place processes of 212 KB, 417 KB, 112 KB, and 426 KB (in order)? Which algorithm makes the most efficient use of memory?


首次適應演算法:

    為212k分配空間:

        依次找尋,找到第一個大於212k的空閒區;

        找到第二個空閒區500k>212k,分配給212k,剩餘288k空閒區;

    為417k分配空間:

        依次找尋,找到第一個大於417k的空閒區;

        找到第五個空閒區600k>417k,分配給417k,剩餘183k空閒區

    為112k分配空間:

        依次找尋,找到第一個大於112k的空閒區;

        找到第二個空閒區288k>112k,分配給112k,剩餘176k空閒區

    為426k分配空間:

        依次找尋,找到第一個大於426k的空閒區;

        未找到,此作業將等待釋放空間

最佳適應演算法

為212k分配空間:

        找到第一個跟212k大小最接近的空閒區

        找到第四個空閒區300>212k,剩餘88k空閒區

為417k分配空間:

        找到第一個跟417k大小最接近的空閒區

        找到第二個空閒區500>417,剩餘83k空閒區

    為112k分配空間:

        找到第一個跟112k大小最接近的空閒區

        找到第三個空閒區200>112k,剩餘88k空閒區

    為426k分配空間:

        找到第一個跟426大小最接近的空閒區

        找到第五個空閒區600k>426,剩餘74k空閒區

最壞適應演算法

    為212k分配空間:

        找到第一個大小最大的空閒區

        找到第五個空閒區600>212k,剩餘388k空閒區

   為417k分配空間:

        找到第一個大小最大的空閒區

        找到第二個空閒區500>417,剩餘83k空閒區

    為112k分配空間:

        找到第一個大小最大的空閒區

        找到第三個空閒區388>112k,剩餘276k空閒區

    為426k分配空間:

        找到第一個大小最大的空閒區

        達到大小最大的空閒區300k<426k,所以不分配

Answer

Free partition

  100  

    500  

  200  

  300  

  600

    Not satisfied

First-fit   

   212,112    

  417

    426

Best-fit

   417

  112

  212

  426

Worst-fit

   417

  212,112  

    426


  ps:好久沒碰作業系統了,今天看到這三個演算法的第一反應居然有點懵,還是好記性不如爛筆頭啊,本文中的定義來自百度百科,例項題目來自老師佈置的作業,答案分析為筆者按自己的理解寫的,若有不對,歡迎指出~~

相關推薦

例項分析首次適應演算法最佳適應演算法適應演算法

關於首次適應演算法、最佳適應演算法和最差適應演算法,先看一下百度百科的解釋,已經說出了三者的最大區別。 首次適應演算法(first-fit):     從空閒分割槽表的第一個表目起查詢該表,把最先能

OS-記憶體分配回收(最佳適應適應首次適應

#include <iostream> using namespace std; class freeMemoryTable { public: int id; int begin; int size; int stat

決策數演算法進階:屬性測試條件最佳劃分度量過擬合現象的處理

我們在先前博文中已經簡要介紹了決策樹的思想和幾個經典演算法來構造決策樹:《決策樹演算法簡介及其MATLAB實現程式碼》。今天我們要針對決策樹繼續深入探討一些的問題,目錄如下: 目錄 一、表示屬性測試條件的方法 二、選擇最佳劃分的度量 三、處理決策樹歸納中的過分擬合現象 一、表

高通sensor架構例項分析之三(adsp上報資料詳解校準流程詳解)

本系列導航: 從adsp獲取資料的方法分為同步、非同步兩種方式,但一般在實際使用中使用非同步方式,因為同步獲取資料會因外設匯流排速率低的問題阻塞smgr,降低效率,增加功耗。 Sensor上報資料的方式分為如下幾種 sync          同步資料上報,(每次上報一個數據) async      

迴圈首次適應演算法首次適應演算法最佳適應演算法_C語言版

#include <stdio.h> #define getpch(type) (type*)mallloc(sizeof(type)) strct LNode { int size; int start; int end; struct LNode *

系統記憶體分配的首次適應演算法最佳適應演算法連結串列模擬實現

#include<iostream> #include<stdlib.h> using namespace std; #define Free 0 //空閒狀態 #define Busy 1 //已用狀態 #define OK 1    //完成

首次適應演算法最佳適應演算法(指標模擬分配過程)

實現程式記憶體的動態分配 首次適應演算法: 找到第一個滿足程式的記憶體塊,並將其分配給程式 最佳適應演算法: 找到所有的滿足程式的記憶體塊,並將其中最小的記憶體塊分配給程式 #include <iostream> #include <stri

c模擬記憶體分配演算法首次適應演算法最佳適應演算法適應演算法

#include<bits/stdc++.h> using namespace std; /*定義記憶體的大小為100*/ #define MEMSIZE 100 /*如果小於此值,將不再分割記憶體*/ #define MINSIZE 2 /*記憶體分割槽空間表結構*/ typedef str

計算機作業系統 ----記憶體空間回收(首次適應演算法最佳適應演算法

#include<iostream.h>  #include<stdlib.h>  #define Free 0 //空閒狀態  #define Busy 1 //已用狀態  #define OK 1    //完成  #define ERROR 0

資料分析資料探勘演算法工程師大資料分析師的區別是什麼?爬招聘網站用資料來全方位分析

大資料行業經過幾年的發展和沉澱,大資料專案崗位細分領域已經趨於完善,本文主要探討在大資料分析這個領域,通過爬蟲爬取各個招聘網站的相關資料,對細分崗位進行深入分析,本文的呈現,感謝科多大資料資料分析培訓班第10期學員“NO.1”團隊的技術支援。 此次分析結果呈現經歷三個階段: 細分查詢目

android ANRtraces檔案獲取及例項分析

前言:前段時間專案開發中遇到anr的問題,時間緊急,一時間又難以定位,通過臨時方法解決後,最近有時間對ANR的問題做一次份細的解決方案,本文中的解決方案是通過綜合其他部落格後自己再通過例項驗證後得出的可行方案,讀者如遇類似問題可做參考,歡迎評論交流。

演算法導論 第五章:概率分析和隨機演算法 筆記(僱傭問題指示器隨機變數隨機演算法概率分析和指示器隨機變數的進一步使用)

僱傭問題: 假設你需要僱用一名新的辦公室助理。你先前的僱傭嘗試都以失敗告終,所以你決定找一個僱用代理。僱用代理每天給你推薦一個應聘者。你會面試這個人,然後決定要不要僱用他。你必須付給僱用代理一小筆費用來面試應聘者。要真正地僱用一個應聘者則要花更多的錢,因為你必須辭掉目前的辦公室助理,還要付一

笨鳥兒 靜態佈局適應佈局流式佈局響應式佈局彈性佈局等的概念和區別

一、靜態佈局(Static Layout) 即傳統Web設計,網頁上的所有元素的尺寸一律使用px作為單位。 1、佈局特點:不管瀏覽器尺寸具體是多少,網頁佈局始終按照最初寫程式碼時的佈局來顯示。常規的pc的網站都是靜態(定寬度)佈局的,也就是設定了min-width,這樣的話,如果小於這個寬度就會

RSA演算法-例項分析

主要講解5個問題: 一,6步生成公鑰和私鑰 二,明文X的加密成密文Y與密文Y的解密 三,例項分析 四,為什麼說RSA是安全的? 五,需要知道一點數論知識: (1)互質:這個小學就學過了,如果兩個正整數,除了1之外,沒有其他公因子,就稱這兩個數是互質關係(coprime)   (2) &

PageRank 演算法例項分析

本文一部分是針對圖的PageRank 的實現,以及具體資料集的分析過程的記錄。 另一部分是BFS的實現,並記錄每一層的節點數。 資料集下載地址  soc-Slashdot0811 、 roadNet-CA 、 soc-LiveJournal1 1. java 實現程式碼 M

ScrollView巢狀ListViewRecyclerView,使其高度自適應

1、針對ScrollView巢狀ListView時只顯示第一個item高度的bug,可在activity裡動態修改ListView的高度(即計算每個item和分割線的高度後進行相加得到總高度),在setAdapter之後呼叫下面這個函式即可。 值得注意的是,此時ListVi

七種常見閾值分割程式碼(Otsu大熵迭代法適應閥值手動迭代法基本全域性閾值法)

整理了一些主要的分割方法,以後用省的再查,其中大部分為轉載資料,轉載連結見資料; 一、工具:VC+OpenCV 二、語言:C++ 三、原理    (1) otsu法(最大類間方差法,有時也稱之為大津演算法)使用的是聚類的思想,把影象的灰度數按灰度級分成2個部分,使得兩

適應閾值分割(大類間方大津法OTSU)

最大類間方差法是由日本學者大津(Nobuyuki Otsu)於1979年提出的,是一種自適應的閾值確定的方法,又叫大津法,簡稱OTSU。它是按影象的灰度特性,將影象分成背景和目標兩部分,或者說,是尋找一個閾值為K,將影象的顏色分為1,2.....K和K+1.....256

響應式網頁設計:remem設定網頁字型大小自適應

「rem」是指根元素(root element,html)的字型大小,好開心的是,從遙遠的 IE6 到版本帝 Chrome 他們都約好了,根元素預設的 font-size 都是 16px。這樣一個新的單位相容性如何呢? IE9+,Firefox、Chrome、Safari、Opera 的主流版本都支援了,

靜態佈局適應佈局流式佈局響應式佈局彈性佈局等的概念和區別

一、靜態佈局(Static Layout)即傳統Web設計,網頁上的所有元素的尺寸一律使用px作為單位。1、佈局特點:不管瀏覽器尺寸具體是多少,網頁佈局始終按照最初寫程式碼時的佈局來顯示。常規的pc的網站都是靜態(定寬度)佈局的,也就是設定了min-width,這樣的話,如果小於這個寬度就會出現滾動條,如果大