您當前的位置:首頁 > 動漫

作業系統期末複習

作者:由 Chiaz 發表于 動漫時間:2022-05-08

記憶體管理

固定分割槽

分割槽大小數量在系統的生成階段就已經確定,儘管大小不同的分割槽具有一定的靈活請,但還是比較低效。

動態分割槽

放置演算法

為程序確定該分配至哪個空閒區,有以下幾種策略,顧名思義即可:

最佳適配 BF

首次適配 FF

下次適配 NF

最差適配 WF

例1

假設使用動態分割槽,下圖是經過數次放置和換出操作後的記憶體格局。記憶體地址從左到右增長;灰色區域是分配給程序的記憶體塊;白色區域是可用記憶體塊。最後一個放置的程序大小為2MB,用X標記。此後僅換出了一個程序。

作業系統期末複習

a。換出程序的最大尺寸是多少?

解:8M。因為當前空閒區最大的區域就是8M,為換出程序後空下來的。

b。建立分割槽並分配給X之前,空閒塊的大小是多少?

解:答案並不唯一。至少是3M,最大是8M,因此大小為[3M,8M]。

c。下一個記憶體需求大小為3MB。在使用最佳適配/首次適配/下次適配/最差適配的情況下,分別在圖上標記出分配的記憶體區域。

作業系統期末複習

四种放置演算法

夥伴系統

例2

一個1MB的記憶體塊使用夥伴系統來分配記憶體。

a。 請畫圖來表示序列的結果請求,70KB;請求35KB;請求80KB;釋放A;請求60;釋放B;釋放D;釋放C。

作業系統期末複習

夥伴系統

b。畫出釋放B後的二叉樹表示。

作業系統期末複習

二叉樹表示

分頁

邏輯地址

是指與當前資料在記憶體中的物理分配地址無關的地址,在使用它對記憶體訪問之前要將它轉換為物理地址。

物理地址

資料在記憶體中的實際位置。

頁表

頁表由作業系統所維護,給出了程序中每頁所對應的頁框的位置。注意頁框是與物理地址有實際關係的,頁框號代表實際物理地址的高位,而透過頁號和程序頁表可以找到頁框號,因此頁號+偏移量就是邏輯地址,可以轉化為物理地址。

例3

系統使用簡單分頁,記憶體大小為

2^{32}

位元組,頁大小為

2^{10}

位元組,邏輯地址空間包含

2^{16}

頁。

a。邏輯地址有多少位?

解:邏輯地址包含頁號和偏移量,頁號為16位,偏移量位10位,因此邏輯地址有26位。

b。一個頁框有多少位元組?

解:頁大小就是頁框大小,它們是一一對應的關係,一個頁框有

2^{10}

位元組。

c。物理地址中的多少位是頁框號?

解:32-10=22,有22位頁框號。

d。頁表中有多少表項?

解:邏輯地址空間包含

2^{16}

頁,所以有

2^{16}

項。

e。假設每個頁表項中含一位有效位,則每個頁表項有多少位?

解:22+1=23位。

分段

偏移量大於段長度,則改地址無效。

例4

在一個簡單分段系統中,包含如下段表:

起始地址

長度(位元組)

660

248

1752

442

222

198

996

604

對如下每一個邏輯地址,確定其對應的物理地址或說明段錯誤是否會發生:

a。 0, 198; 物理地址:660+198 不會

b。 2, 156; 物理地址:222+156 不會

c。 1, 530; 物理地址:1752+530 會

d。 3,444; 物理地址:996+444 不會

e。 0,222; 物理地址:660+222 不會

檔案系統

檔案的組織方式

FCB

檔案控制塊,系統為每個檔案設定描述和控制檔案的資料結構,包括檔名和存放檔案的盤物理地址。FCB的有序集合稱為檔案目錄。一個檔案控制塊就是一個檔案目錄項。注意與FAT的區別

索引節點

檢索目錄的時候並不需要所有的檔案控制塊中的資訊,而只需要檔名,檢視是不是與指定的檔名相匹配,其它的資訊都不需要,因此不需要調入記憶體。將檔案描述資訊單獨稱為一個索引界定啊,這樣一個目錄項佔用的磁碟大小就少了,一個盤塊中就能放更多的目錄項,啟動磁碟的次數就減少了。

目錄結構

應該不考,略。

檔案的分配方式

FAT

File Allocation Table,檔案分配表,一般存放檔案的起始地址和總塊數,用於跟蹤檔案的分配情況。使用連結分配時,可根據FAT可以找到檔案的起始塊順著連結指標依次往下找。看題目中給的是FAT還是FCB,就做題而言,可以說沒有區別。

連續分配

需要預分配,必須為一個檔案分配連續的磁碟空間。存在外部碎片。

連結分配

連結(鏈式)分配,每一個盤塊上的連結指標,將同屬於一個檔案的盤塊連結成一個連結串列,稱為連結檔案。不存在外部碎片。連結指標佔用一定的記憶體空間,因此在計算時需要小心。

不能有效支援檔案的直接訪問,要順著連結指標找。

索引分配

索引分配保持了連結結構的優點,同時又能順序存取,又能隨機存取,同時充分利用了外存空間,但是帶來了存取時間的開銷。

直接定址,適用於小檔案,盤塊地址可以直接放在FCB中。

一次間址,中等檔案,FCB中存放索引表。

二次間址,大檔案。

三次間址,大檔案。

混合索引分配

LINUX混合分配為例(15個64位地址,前12個地址用於直接定址,第13個用於一級間址,第14個用於二級間址,第15個用於三級間址),假設最小的塊大小為4KB,該格式下檔案的最大尺寸為:

12 \times 4KB+512 \times4KB+512 \times 512 \times 4KB+512 \times 512 \times 512  \times 4 KB

連結索引

有了連結分配和索引分配的概念,連結索引才會比較好理解。連結索引是將索引塊連結起來了,我們知道在索引分配中的索引塊一個表項代表檔案的一個地址塊,因此可見將如此多的索引塊連結起來,理論上最大檔案會很大。

例1.

一個檔案系統中有20MB大檔案和一個20KB的小檔案,當分別採用連續、連結、連結索引、二級索引和LINUX分配方案時,每塊大小為4096B,每塊地址用4B表示,問:

1.各檔案系統管理的最大檔案是多少?

a。連續分配:理論上不受限制,可大到整個磁碟檔案區;

b。連結分配:每個盤塊的大小為4096B,其中連結指標佔用4B,最大尺寸為

2^{32} \times (4096-4)B

c。連結索引:先算最多連結的索引塊,每個索引塊能放多少地址,得:

2^{32} \times (4096-4)/4 \times 4KB

d。二級索引:

1024 \times 1024 \times 4096B

e。LINUX混合分配上文已給出

注意:涉及到連結,需要把連結指標的大小考慮在內

2.每種方案對大小兩檔案各需要多少專用塊來記錄檔案的物理地址,並說明各塊的用途;

a。連續分配:FCB中設定起始物理塊,檔案塊總數

b。連結分配:同連續分配,且每個檔案塊設定連結指標

c。連結索引:20KB檔案需要一個索引塊,20MB檔案需要6個索引塊(20MB/(4K(1K-1)),FCB也要

d。二級索引:20KB要1+1塊,20MB要1+5塊

e。LINUX混合:前12個地址直接存放FCB,不需要專用塊,一級索引要1塊,二級索引要1+4塊。

3.若需要讀大檔案前面5.5KB的資訊和後面16M+5.5KB的資訊,則每個方案各需要訪問盤塊多少次?(FCB已在記憶體)

a。連續分配:計算邏輯塊號,1+1次 b。連結分配:要按順序讀,後面的肯定讀很多2(前面)+n(後面)

c。連結索引:算一下每個索引塊能放多少地址,1+5次

d。二級索引:固定的3次,沒得說1+1+1,第一級1次,第二級1次,最終1次

e:LINUX混合:順序+二級,2+3

例2.

從訪問速度、儲存空間的使用和易於更新(新增/刪除/修改)這幾方面考慮,為了達到最大效率,你將選擇哪種檔案組織?

1.很少修改並且以隨機方式頻繁地訪問時;

順序分配

2.頻繁地修改並且相對頻繁地訪問檔案整體時;

索引分配(連結分配狗都不用)

3. 頻繁地修改並以隨機順序頻繁的訪問時。

索引分配

例3.

塊大小為1KB,每一塊可以存放256個地址。使用索引節點方案,一個檔案的最大尺寸是多少?

256 \times 1KB

例4.

考慮由一個索引節點所表示的UNIX檔案的組織,假設有12個直接塊指標,在每個索引節點中有一個一級、二級和三級間接指標。此外,假設系統塊大小和磁碟扇區大小都是8KB。如果磁碟塊指標是32位,其中8位用於標識物理磁碟,24位用於標識物理塊,那麼

1.該系統支援的最大檔案大小是多少?

12 \times 8KB+2K \times 8KB+2K \times 2K \times 8KB+2K \times 2K \times 2K \times 8KB

2.該系統支援的最大檔案系統分割槽是多少?

2^{24} \times 8KB

3.假設記憶體中除了檔案索引節點外沒有其他資訊,訪問在位置13423956中的位元組需要多少次磁碟訪問?

在一級索引處,所以要2次

例5.

存放在某個磁碟上的檔案系統,採用混合索引分配方式,其FCB中共有13個地址項,第0~9個地址項為直接地址,第10個地址項為一次間接地址,第11個地址項為二次間接地址,第12個地址項三次間接地址。如果每個盤塊的大小512位元組,若盤塊號需要用3個位元組來描述,而每個盤塊最多存放170個盤塊地址。

1.該檔案系統允許檔案的最大長度是多少?

10 \times 512B+170 \times 512B+170 \times 170 \times 512B+170 \times 170 \times 170 \times 512B

2. 將檔案的位元組偏移量5000,15000,150000轉換為物理塊號和塊內偏移量。

物理塊號(15位)

塊內偏移(9位)

a。5000:物理塊號1001 塊內偏移110001000

b。15000:物理塊號11101 塊內偏移010011000

c。150000:物理地址100100100 塊內偏移111110000

轉為二進位制,後9位就是塊內偏移。

3. 假設某個檔案FCB已在記憶體,但其他資訊均在外存,為了訪問該檔案中某個位置的內容,最少需要幾次訪問磁碟,最多需要幾次訪問磁碟?

最少1次(直接),最多4次(三次間址)

期末考試大題基本混合索引沒得跑了,如有問題,歡迎評論區指出,一起進步!

分頁儲存管理

基本概念

不要求將作業同時全部裝入記憶體的連續區域,而是將記憶體空間分為一個個大小相等的分割槽,每個分割槽就是一個頁框,每個頁框有一個編號,即頁框號,頁框號從0開始。將使用者程序的地址空間也分成與頁框大小相等的一個個區域,稱為頁或頁面,每個頁面也有一個編號,頁號也是從0開始的。程序的頁面與記憶體的頁框存在一一對應的關係。分頁會產生內部碎片。

頁框:記憶體被劃分為大小固定的塊,稱為頁框

頁表項:每個頁表項的長度是相同的,頁號是隱含的,程序頁表通常是裝在連續的記憶體空間中的

TLB快表:一種訪問速度比記憶體快很多的高速儲存器,用來存放當前訪問的若干項表項。引入快表後,先訪問快表,再訪問記憶體,只需要訪問一次記憶體;沒有找到再訪問記憶體中的頁表,同時存入快表(按一定的頁面置換策略),需要訪問兩次記憶體。

地址轉換

已知邏輯地址,求物理地址。

算出邏輯地址對應的頁號

知道該頁號再記憶體中的起始地址

計算邏輯地址再頁面內的偏移量

物理地址=頁面始址+頁內偏移量

注意:已知頁面大小等價於已知頁面偏移量佔幾位,按位元組定址等價於一個地址對應一個位元組的空間

兩級頁表

解決單級頁表必須連續存放佔據連續記憶體空間的問題。當頁表項需要佔用很多很多頁面的時候,先查頁面在查頁面內的頁表項,這就是兩級頁表。

假設頁面大小為4KB,32位地址,每個頁表項大小為4B。

一個程序最多有多少個頁面?——————————————————————————————-

2^{20}

每個頁面都要有一個頁表項,最多有多少頁表項?————————————————————

2^{20}

每個頁表項的大小是多少?————————————————————————————————-

4B

每個頁面存放多少頁表項?————————————————————————————————-

2^{10}

一共需要多少個頁面來存放這些頁表項?————————————————————————-

2^{10}

多少個頁面對應一級頁號,頁面記憶體放對應二級頁號,頁面大小就是頁內偏移量。因此設計如下:

31————————————————-22

21————————————————-12

11————————————————-0

一級頁號

二級頁號

頁內偏移量

例1.

請求分頁管理系統中,假設某程序的頁表內容如下表所示。

頁號

頁框號

有效位

0

101H

1

1

-

0

2

254H

1

頁面大小為4KB,一次記憶體訪問的時間是100ns,一次快表TLB的訪問時間為10ns,處理一次缺頁中斷的時間是

10^{8}

ns(包含更新TLB和頁表的時間),程序的駐留集大小固定為2,採用最近最少使用的置換演算法和區域性淘汰策略。假設:1。TLB初始為空;2。地址轉換時先訪問TLB,若TLB未命中,再訪問頁表;3。有效位為0代表頁面不在記憶體,產生缺頁中斷,缺頁中斷處理後,返回到產生缺頁中斷的指令處重新執行。設有虛地址訪問序列為:2362H、1565H、25A5H,請問:

1.一次訪問上述三個虛擬地址,各需要多少時間,給出計算過程;

a。2362H:10ns+100ns+100ns b。1565H:缺頁中斷10ns+100ns+10^8ns+100ns c。25A5H:10+100ns

2.基於以上訪問序列,虛地址為1565H的物理地址是多少,請說明理由。

發生缺頁中斷進行了替換,物理地址是101565H

分段式儲存管理

基本概念

將地址空間按照程式自身的邏輯關係或分為若干個端,每段從0開始編址;每個段佔據連續的地址空間,各段之間可以不相鄰。分段可以解決內部碎片的問題,但會造成外部碎片。

地址轉換

已知邏輯地址,求物理地址。

算出邏輯地址對應的段號,段內地址

檢查段號是否發生越界

根據段號和段表始址找到段表項

檢查段內地址是否越界

物理地址=基址+段內地址

段頁式儲存管理

每個段對應一個段表項,每個段表項由段號,頁表長度,頁表存放塊號組成,每個段表項的長度相等,因此段號可以隱藏。同樣頁號也可以隱藏。

段號

頁號

頁內偏移量

地址轉換

已知邏輯地址,求物理地址。

算出段號,頁號,頁內偏移地址

查詢段表,找到對應的段表項,檢查頁號是否越界

段表項得到頁表存放塊號

根據頁號找到頁表項

找到記憶體塊號,和頁內偏移地址結合

注意:三次訪問記憶體(訪問段表找到頁表,再訪問頁表,第三次訪問實際的物理地址)

標簽: 地址  頁表  索引  物理地址  檔案