儲存管理演算法

2021-08-24 22:01:03 字數 3262 閱讀 9595

計算並輸出下述各種演算法在不同記憶體容量下的命中率。

a.fifo

先進先出的演算法

b.lrr

最近最少使用演算法

c.opt

最佳淘汰演算法(先淘汰最不常用的頁位址)

d.lfr

最少訪問頁面演算法

e.nur

最近最不經常使用演算法

**:

#include

#include

#include

#include

struct aa;

void main()

}tail=table;

temp=head;

first=head;

count=0;

i=0;

while(i<320)

if (count==1)

if(count==2)

if(count==3)

table=head;

temp=head;

answer=0;

min=400;

if (fangfa==5)

table=table->next;

}if (answer!=1)

table=table->next;

}if (temp->page!=-1) ++ffalse;

temp->page=j;

temp->count=1;

}table=head;

if ((i%32)==0)

table=table->next;}}

}if ((fangfa==4)||(fangfa==3))

table=table->next;

}if(answer!=1)

table=table->next;

}if (temp->page!=-1)

}else}}

if (fangfa==2)

table=table->next;

}if((fangfa==2)&&(answer==1))

tail->page=temp1;

}if((answer!=1)&&(fangfa==2))

tail->page=j;}}

table=head;

while((table!=null)&&(fangfa==1))

table=table->next;

}if ((answer!=1)&&(fangfa==1))

else  

}++i;

++count;

if (count==4)

}sum=1.0-ffalse/320.0;

/*cout<

if (fangfa==1) cout<<"fifo:"<

if (fangfa==2) cout<<" lrr:"<

if (fangfa==3) cout<<" opt:"<

if (fangfa==4) cout<<" lfr:"<

if (fangfa==5) cout<<" nur:"<

if(mm==5) cout<

cout<

for(ti=head;ti!=null;ti=ti->next)coutcout<

}實驗四

檔案系統設計

1

.目的和要求

本實驗的目的是通過乙個簡單多使用者檔案系統的設計,加深理解檔案系統的內部功能和內部實現。

2

.實驗內容

為dos

系統設計乙個簡單的二級檔案系統。要求做到以下幾點:

①可以實現下列幾條命令

login   

使用者登陸

dir      

列檔案目錄

create  

建立檔案

delete  

刪除檔案

open    

開啟檔案

close   

關閉檔案

read    

讀檔案write   

寫檔案②列目錄時要列出檔名,實體地址,保護碼和檔案長度。

③原始檔可以進行讀寫保護。

3

.實驗環境

同前4

.實驗提示

①首先應確定檔案系統的資料結構:主目錄、子目錄及活動檔案等。主目錄和子目錄都以檔案的形式存放於磁碟,這樣便於查詢和修改。

②使用者建立的檔案,可以編號儲存於磁碟上。如:file0,file1,file2…並以編號作為實體地址,在目錄中進行登記。

5

.實驗執行結果

參考程式見下(本程式需要在c:下建乙個名為osfile的目錄及乙個名為file的子目錄):

#include "stdio.h"

#include "string.h"

#include "conio.h"

#include "stdlib.h"

#define maxname 25  /*the largest length of mfdname,ufdname,filename*/

#define maxchild 50 /*the largest child*/

#define max (maxchild*maxchild) /*the size of fpaddrno*/

typedef struct  /*the structure of osfile*/

osfile;

typedef struct     /*the structure of osufd*/

osufd;

typedef struct  /*the structure of osufd'login*/

osufd_login;

typedef struct     /*file open mode*/

osufd_openmode;

osufd *ufd[maxchild];

記憶體管理演算法

buddy演算法的優缺點 1 儘管夥伴記憶體演算法在記憶體碎片問題上已經做的相當出色,但是該演算法中,乙個很小的塊往往會阻礙乙個大塊的合併,乙個系統中,對記憶體塊的分配,大小是隨機的,一片記憶體中僅乙個小的記憶體塊沒有釋放,旁邊兩個大的就不能合併。2 演算法中有一定的浪費現象,夥伴演算法是按2的冪次...

記憶體管理演算法 Buddy夥伴演算法

buddy演算法的優缺點 1 儘管夥伴記憶體演算法在記憶體碎片問題上已經做的相當出色,但是該演算法中,乙個很小的塊往往會阻礙乙個大塊的合併,乙個系統中,對記憶體塊的分配,大小是隨機的,一片記憶體中僅乙個小的記憶體塊沒有釋放,旁邊兩個大的就不能合併。2 演算法中有一定的浪費現象,夥伴演算法是按2的冪次...

記憶體管理演算法 Buddy夥伴演算法

buddy system記憶體管理,努力讓記憶體分配與相鄰記憶體合併能快速進行 對於普通演算法來講,合併記憶體相當困難 它利用的是計算機擅長處理2的冪運算。我們建立一系列空閒塊列表,每一種都是2的倍數。舉個例子,如果最小分配單元是8位元組,整個記憶體空間有1m。我們建立8位元組記憶體塊鍊錶,16位元...