作業系統實驗 主存管理

2021-10-12 04:12:51 字數 1769 閱讀 1993

在可變分割槽管理方式下採用最先適應演算法實現主 存分配和實現主存**。 [提示]:

(1)可變分割槽方式是按作業需要的主存空間大小來分割分 區的。當要裝入乙個作業時,根據作業需要的主存量檢視是 否有足夠的空閒空間,若有,則按需要量分割乙個分割槽分配 給該作業;若無,則作業不能裝入。隨著作業的裝入、撤離 ,主存空間被分成許多個分割槽,有的分割槽被作業占用,而有 的分割槽是空閒的。例如:

為了說明哪些區是空閒的,可以用來裝入新作業,必須 要有一張空閒區說明表,格式如下:

(2) 當有乙個新作業要求裝入主存時,必須查空閒區說 明表,從中找出乙個足夠大的空閒區。有時找到的空閒區可 能大於作業需要量,這時應把原來的空閒區變成兩部分:一 部分分給作業占用;另一部分又成為乙個較小的空閒區。為 了儘量減少由於分割造成的空閒區,而盡量儲存高位址部分 有較大的連續空閒區域,以利於大型作業的裝入。為此,在 空閒區說明表中,把每個空閒區按其位址順序登記,即每個 後繼的空閒區其起始位址總是比前者大。為了方便還可以使**「緊縮」 ,總是讓「空表目」欄集中在表哥的後部。

(3) 採用最先適應演算法(順序分配演算法)分配主存空間。 按照作業的需要量,查空閒區說明表,順序檢視登記欄,找 到第乙個能滿足要求的空閒區。當空閒區大於需要量時,一 部分用來裝入作業,另一部分仍為空閒區登記在空閒區說明 表中。 由於本實驗是模擬主存的分配,所以把主存區分配給作 業後並不實際啟動裝入程式裝入作業,而用輸出「分配情況 」來代替。最先適應分配演算法如圖6-1。

(4) 當乙個作業執行結束撤離時,作業所佔的區域應該 歸還,歸還的區域如果與其它空閒區相鄰,則應合成乙個較 大的空閒區,登記在空閒區說明表中。例如,在提示(1) 中列舉的情況下,如果作業2撤離,歸還所佔主存區域時, 應與上、下相鄰的空閒區一起合成乙個大的空閒區登記在空 閒區說明表中。歸還主存時的**演算法如圖6-2。

(5) 請按最先適應演算法設計主存分配和**的程式。然 後按(1)中假設主存中已裝入三個作業,且形成兩個空閒 區,確定空閒區說明表的初值。現有乙個需要主存量為6k 的作業4申請裝入主存;然後作業3撤離;再作業2撤離。請 你為它們進行主存分配和**,把空閒區說明表的初值以及 每次分配或**後的變化顯示出來或列印出來。

struct memory//儲存每一塊記憶體

;vector m;//儲存記憶體資訊

bool cmp(memory a, memory b)//按記憶體塊起始位置排序

void init()//初始化

void print()//列印記憶體資訊

int pan(int n)//判斷作業是否已存在

void change(int n, int m1)//更新記憶體資訊

#include #include #include using namespace std;

struct memory

;vectorm;

bool cmp(memory a, memory b)

void init()

void print()

n=0;

}int pan(int n)//判斷作業是否已存在

return 0;

}void change(int n, int m1)

} if (pwd==false) cout << "沒有空閒空間,請等待" << endl;

} else

m.erase(iter);

cout<<"和後面的空閒區合併"start - iter->length&&(iter-1)->panduan==false&&iter->num==n)

}print(); }}

int main()

}

作業系統實驗之程序管理

實驗內容 建立新的程序 檢視執行的程序 換出某個程序 殺死執行程序以及程序之間的通訊 下面是 include conio.h include stdio.h include stdlib.h struct pcb struct pcb neicun 20 waicun 20 int count 0,...

SWJTU 作業系統實驗 記憶體管理

和之前的實驗一樣,仍然是模擬,這次是模擬作業系統的記憶體管理。要求實現opt置換演算法與clock演算法。演算法具體不再贅述,參考下文。clock演算法概要 當頁表未滿時,若新到達程序未在頁表中,進表且指標 1,若新到達程序已在頁表中,指標不移動。頁表滿後,若新到達程序已在頁表中,將該程序使用狀態改...

作業系統 儲存器管理實驗

實驗過程 理解windows中堆 棧的記憶體布局 通過wndows系統提供的系統呼叫heapcreate heapalloc heapfree 等函式的應用,理解虛擬記憶體管理技術中的記憶體分配原理。使用工具軟體vmmap檢視某個程序的虛擬位址空間,並理解虛位址空間中的相關術語。本實驗要求用c語言書...