国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LRU頁面置換算法(C語言實現(xiàn))

這篇具有很好參考價值的文章主要介紹了LRU頁面置換算法(C語言實現(xiàn))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、實驗?zāi)康?/span>

1)熟悉虛擬存儲器頁面置換過程;

2)通過編寫和調(diào)試頁面置換算法的模擬程序以加深對頁面置換算法的理解;

3)掌握LRU算法的原理;

4)熟悉OPTFIFO頁面置換算法原理。

2 實驗要求??

??? 編寫并調(diào)試一個頁面置換模擬程序,采用LRU(最近最久未使用頁面置換)算法。已知系統(tǒng)為一進程分配的物理塊數(shù),進程運行過程中引用的頁面號,編程使用LRU算法輸出置換的頁號、缺頁中斷次數(shù)及缺頁率。

3、算法描述

??? LRU置換算法是選擇最近最久未使用的頁面予以淘汰。該算法賦予每個頁面一個訪問字段,用來記錄一個頁面自上次被訪問以來所經(jīng)歷的時間t,當(dāng)須淘汰一個頁面時,選擇現(xiàn)有頁面中其t值最大的,即最近最久未使用的頁面予以淘汰。 如下圖所示(第一行數(shù)據(jù)是進程運行過程中引用的頁號,假設(shè)開始時3個物理塊是空的):

LRU頁面置換算法(C語言實現(xiàn))

4、源程序代碼

#include<stdio.h>
#define N 3 //物理塊的個數(shù) 
int Nl = 20;//頁面訪問序列的長度 
void LRU(int block[],int blockN,int list[],int listN)//LRU替換算法
{
    int  i, j;//定義替換次數(shù)
	int rep1 = 0;//缺頁次數(shù)
	int rep2 = 0;//置換頁面次數(shù)
	int DisplacedPages[20] = {0};
    int time[N];//各個物理塊最近一次訪問至現(xiàn)在的時間

    for(i = 0;i < blockN;i++)//初始化 
        time[i] = 0;
 
    for(i = 0;i < listN; i++)
	{   
		for(j = 0; j < blockN; j++) //更新時間記錄 
			if(block[j] != -1)
                time[j]++;
        for(j = 0; j < blockN; j++)
            if(block[j] == list[i]) //命中 
			{
                time[j] = 0;
                break;
            }
            else if(block[j] == -1) //未命中但塊中為空 
            	break;
		if(j < blockN && block[j] == -1)//未命中且物理塊未滿,直接存入
		{
            block[j] = list[i];
            time[j] = 0; 
			rep1++;
        }
        else if(j == blockN)//需要替換 
		{
            int max = 0;
            for(int k = 0;k < blockN;k++)//尋找最久未訪問的地址所在的物理塊的位置
			{
                if(time[max] < time[k])
                    max = k;
            }
			DisplacedPages[rep2] = block[max];
			rep2++;
			rep1++;
            block[max] = list[i];
            time[max] = 0;
        }
        
        printf("當(dāng)前訪問的頁面為:%d\n",list[i]);
		printf("訪問后物理塊內(nèi)的頁面為:");
    	for(int m = 0;m < blockN;m++)//顯示當(dāng)前物理塊的狀態(tài) 
		{
        	if(block[m] == -1)
            	break;
        	printf("|%d|  ",block[m]);
    	}
		if (j == blockN)
			printf("置換了%d\n", DisplacedPages[rep2-1]);
    	printf("\n");
    }
    
    printf("缺頁的次數(shù)為:%d  缺頁率:%d/%d=%.2f\n", rep1, rep1, listN, (float)(rep1)/(float)listN);
	printf("置換的頁面為:");
	for (i=0; i<rep2; i++)
		printf("%d,", DisplacedPages[i]);
}

int main()
{
	int block[N], list[20] = {7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};//默認序列
	int df = 1;
    for(int i = 0;i < N;i++)//初始化 
    {
		block[i] = -1;
    } 
	printf("是否使用默認序列?(1:否  其他數(shù)字:是)");
	scanf("%d", &df);
   if (df == 1)
   {
	   printf("請輸入頁面?zhèn)€數(shù):");
	   scanf("%d", &Nl);
	   printf("請輸入頁面訪問序列:\n");
	   for(i = 0;i < Nl;i++)
		   scanf("%d", &list[i]);
   }
   LRU(block, N, list, Nl);//調(diào)用LRU頁面置換算法 
   printf("\n");
   return 0;
} 

5、運行結(jié)果

LRU頁面置換算法(C語言實現(xiàn))

LRU頁面置換算法(C語言實現(xiàn))文章來源地址http://www.zghlxwxcb.cn/news/detail-503334.html

到了這里,關(guān)于LRU頁面置換算法(C語言實現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 頁面置換算法(OPT、FIFO、LRU、時鐘、LFU)

    頁面置換算法(OPT、FIFO、LRU、時鐘、LFU)

    在地址映射過程中,若在頁面中發(fā)現(xiàn)所要訪問的頁面不在內(nèi)存中,則產(chǎn)生缺頁中斷。當(dāng)發(fā)生缺頁中斷時,如果操作系統(tǒng)內(nèi)存中沒有空閑頁面,則操作系統(tǒng)必須在內(nèi)存選擇一個頁面將其移出內(nèi)存,以便為即將調(diào)入的頁面讓出空間。而用來選擇淘汰哪一頁的規(guī)則叫做頁面置換算法

    2024年02月06日
    瀏覽(16)
  • 計算機操作系統(tǒng)實驗:頁面置換算法的實現(xiàn)

    計算機操作系統(tǒng)實驗:頁面置換算法的實現(xiàn)

    本實驗的目的是通過編程模擬不同的頁面置換算法,比較它們的缺頁率和命中率,加深對操作系統(tǒng)內(nèi)存管理的理解。本實驗采用C語言編寫,實現(xiàn)了最佳置換算法(OPT)、先進先出置換算法(FIFO)和最近最久未使用算法(LRU)。實驗中,頁面號引用串從文本文件中讀取,輸出

    2024年02月02日
    瀏覽(24)
  • 【操作系統(tǒng)】FIFO先進先出頁面置換算法(C語言實現(xiàn))

    【操作系統(tǒng)】FIFO先進先出頁面置換算法(C語言實現(xiàn))

    FIFO頁面置換算法,計算缺頁率,文末附代碼,及例題解析 1、內(nèi)容 ? ? ? ? 在地址映射過程中,若在頁面中發(fā)現(xiàn)所要訪問的頁面不在內(nèi)存中,則產(chǎn)生缺頁中斷。當(dāng)發(fā)生缺頁中斷時,如果操作系統(tǒng)內(nèi)存中沒有空閑頁面,則操作系統(tǒng)必須在內(nèi)存選擇一個頁面將其移出內(nèi)存,以便為

    2024年02月11日
    瀏覽(19)
  • 操作系統(tǒng) | 實驗五 頁面置換算法

    操作系統(tǒng) | 實驗五 頁面置換算法

    (1)加深對頁面置換算法的理解。 (2)掌握幾種頁面置換算法的實現(xiàn)方法。 (3)通過實驗比較各種置換算法的優(yōu)劣。 參考用C語言實現(xiàn)的先進先出算法FIFO的代碼,實現(xiàn)最佳置換算法OPT和最近最少使用算法LRU。使得隨機給出一個頁面執(zhí)行序列,計算不同置換算法的缺頁數(shù),

    2024年02月04日
    瀏覽(27)
  • 操作系統(tǒng):用C語言模擬先進先出的算法(FIFO)、最久未使用算法(LRU)、改進的Clock置換算法的命中率。

    操作系統(tǒng):用C語言模擬先進先出的算法(FIFO)、最久未使用算法(LRU)、改進的Clock置換算法的命中率。

    ??通過請求頁面式存儲管理中頁面置換算法設(shè)計,了解存儲技術(shù)的特點,掌握請求頁式存儲管理的頁面置換算法。 用程序?qū)崿F(xiàn)生產(chǎn)者——消費者問題,將指令序列轉(zhuǎn)換為用戶虛存中的請求調(diào)用頁面流。 具體要求: l頁面大小為1K l用戶內(nèi)存容量為4頁到40頁 l用戶外存的容量為

    2024年02月03日
    瀏覽(26)
  • 【操作系統(tǒng)--頁面置換算法】C語言詳解--大作業(yè)版(附代碼)

    【操作系統(tǒng)--頁面置換算法】C語言詳解--大作業(yè)版(附代碼)

    1設(shè)計和實現(xiàn)FIFO,LRU,OPT和CLOCK算法 2設(shè)計和實現(xiàn)一個完整的可供選擇不同算法的程序 3通過頁面訪問序列隨機發(fā)生器實現(xiàn)對上述算法的測試及性能比較 4領(lǐng)略頁面置換背后的資源調(diào)配思想,并將其運用到其他的操作系統(tǒng)的知識,以及運用到生活中的資源調(diào)配策略以及解決措施 5理

    2024年02月06日
    瀏覽(25)
  • 操作系統(tǒng)——LRU算法以及置換次數(shù)、缺頁數(shù)、缺頁率計算

    目錄 一、LRU是什么? 二、LRU算法的規(guī)則 三、缺頁,換頁 四、計算頁面置換次數(shù)、缺頁數(shù) LRU,全稱是Least Recently Used,即最近最少使用頁面置換算法。從字面意思上可以看出,選擇最近最久未使用的頁面予以淘汰。 LRU算法是大部分操作系統(tǒng)為最大化頁面命中率而廣泛采用的一

    2023年04月27日
    瀏覽(24)
  • 頁面置換算法模擬實現(xiàn)-操作系統(tǒng)課程設(shè)計基于Java

    頁面置換算法模擬實現(xiàn)-操作系統(tǒng)課程設(shè)計基于Java

    存儲管理的主要功能之一是合理的分配空間,請求頁式存儲管理是一種常用的虛擬存儲管理技術(shù)。在地址映射過程中,若在頁表中發(fā)現(xiàn)所要訪問的頁面不在內(nèi)存,則產(chǎn)生中斷,當(dāng)發(fā)生中斷時,系統(tǒng)必須在內(nèi)存選擇一個頁面移出內(nèi)存,調(diào)用頁面置換算法,以便為調(diào)入新的頁面讓

    2024年02月07日
    瀏覽(29)
  • 頁面置換算法之最佳置換算法的模擬(C++)

    頁面置換算法之最佳置換算法的模擬(C++)

    1)設(shè)計模擬實現(xiàn)OPT、FIFO和LRU頁面置換算法中的任意一種。 OPT算法:需要發(fā)生頁面置換時,算法總是選擇在將來最不可能訪問的頁面進行置換。 FIFO算法:算法總是選擇在隊列中等待時間最長的頁面進行置換。 LRU算法:如果某一個頁面被訪問了,它很可能還要被訪問;相反,

    2024年02月07日
    瀏覽(18)
  • 虛擬內(nèi)存頁面置換算法(操作系統(tǒng))

    虛擬內(nèi)存頁面置換算法(操作系統(tǒng))

    通過這次實驗,加深對虛擬內(nèi)存頁面置換概念的理解,進一步掌握先進先出FIFO、最佳置換OPI和最近最久未使用LRU頁面置換算法的實現(xiàn)方法。 問題描述: 設(shè)計程序模擬先進先出FIFO、最佳置換OPI和最近最久未使用LRU頁面置換算法的工作過程。假設(shè)內(nèi)存中分配給每個進程的最小物

    2024年02月04日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包