作業系統磁碟空間管理的實驗報告

2021-08-13 14:00:10 字數 1955 閱讀 1507

實驗五磁碟儲存空間的管理

一、實驗目的

磁碟格式化時,系統把磁碟儲存空間分成許多磁軌。每個磁軌又分成若干個扇區(又叫做磁碟塊)。之後用fdisk命令對硬碟進行分割槽,即使只有乙個分割槽,也必須用fdisk命令進行分割槽。

分割槽的目的,就是製作檔案卷,形成檔案系統。乙個檔案卷一般都被劃分成引導扇區、檔案系統管理區和檔案資料區。其中,檔案資料區用來存放系統檔案和使用者檔案。

使用者可以通過檔案系統提供的api,建立、開啟、關閉和對檔案進行讀寫。當使用者的檔案不再需要時,就應該刪除。把乙個檔案放到磁碟上時,可以組織成連續檔案、鏈結檔案或索引檔案等。

因此,磁碟空間的分配方法也有兩種,一種是連續空間的分配,一種是不連續空間的分配(又叫動態分配)。如何充分有效地利用磁碟空間,是作業系統應解決的重要課題之一。

本實驗模擬實現磁碟空間的分配與**,使學生對磁碟空間的管理有乙個較深入的理解。

二、實驗要求

書寫實驗報告,應該包括以下幾項內容:

(1)實驗題目;

(2)程式中使用的資料結構及主要符號說明;

(3)程式流程圖和帶有詳細注釋的源程式;

(4)執行程式名,並列印程式執行時的初值和執行結果;

(5)通過實驗後的收穫與體驗及對實驗的改進意見和見解

三、實驗內容

(1)假定現有乙個磁碟組,共有40個柱面。每個柱面4個磁軌,每個磁軌又劃分成4個物理記錄。磁碟的空間使用情況用位示圖表示。

位示圖用若干個字構成,每一位對應乙個磁碟道。「1」表示占用,「0」表示空閒。為了簡單,假定字長為16位,乙個字可用來模擬磁碟的乙個柱面,其位示圖如圖5—1所示。

系統設定乙個變數s記錄當前的空閒磁碟塊個數。位示圖的初始狀態由戶自己設定。

圖5-1 位示圖

(2)申請乙個磁碟塊時,由磁碟塊分配程式查位示圖,找出乙個為0的位,並計算磁碟的實體地址(即求出它的柱面號、磁軌號和扇區號)。

①由位示圖計算磁碟的相對塊號的公式如下:

相對塊號=字型大小*16+位號

②再將相對塊號轉換成磁碟的實體地址:

柱面號=(相對塊號/16)的商,也即柱面號=字型大小

磁軌號=((相對塊號/16的餘數)/4)的商,也即(位號/4)的商

物理塊號=(((相對塊號/16)的餘數)/4)的餘數,也即(位號/4)的餘數

(3)當釋放乙個相對物理塊時,執行**程式,計算該塊在位示圖中的位置,再把相應由「1」改為「0」。計算公式如下:

先由磁碟的三維位址柱面號、磁軌號和扇區號計算相對塊號:

相對塊號=柱面號*16+磁軌號*4+物理塊號

再計算字型大小和位號:

字型大小=相對塊號/16的商,也即字型大小=柱面號

位號=磁軌號*(物理塊數/每磁軌)+物理塊號

(4)分配演算法和**演算法流程分別如圖5—2和5—3所示。

圖5-2 磁碟空間分配的流程

圖5-3 磁碟空間**的流程

四、源程式

#include

#include

void initbitmap(int map[8][8])

}void allocate(int map[8][8])

if(flag==1) break;

}if(flag==1)

cylinder=i;

track=j/4;

sector=j%4;

printf("分配到的柱面號、磁軌號、物理記錄數");

printf("%d\t%d\t%d",cylinder,track,sector);

printf("\n");

}else printf("空間不足,分配失敗!");

}void reclaim(int map[8][8])

else

}void main()

}五、結果圖

由結果圖可以看出函式可實現磁碟空間的分配與**。

六、實驗心得

這個實驗模擬實現磁碟空間的分配與**,使我對磁碟空間的管理有乙個較深入的理解,使我學會了磁碟空間的分配與**。

作業系統實驗6 磁碟儲存空間管理

磁碟儲存空間的分配和 演算法類似於主儲存器的可變分割槽方式的分配和 同學們可參考實驗四的第一題。為了減少移臂次數,磁碟上的資訊按柱面上各磁軌順序存放。現假定乙個盤組共有200個柱面,編號0 199 每個柱面有20個磁軌 編號0 19,同一柱面上的各磁軌分布在各盤面上,故磁軌號即盤面號。每個磁軌被分成...

作業系統實驗報告

電腦科學與應用系 課程設計報告 作業系統原理 目錄1 題目簡述 2 2 需求分析 2 2.1設計思想 2 2.2要求 2 2.3任務 3 2.4執行環境 3 2.5開發工具 3 3 概要設計與詳細設計 3 3.1系統流程圖 3 3.2演算法流程圖 5 4 編碼與實現 10 4.1資料結構和演算法設計...

作業系統實驗報告

2014 2015 學年第 2 學期 系別計算機學院 專業電腦科學與技術 班級 2014級專公升本 姓名蔡圓圓 學號 1410211014 授課老師趙群禮 實驗一 熟悉linux基本命令及程式設計環境 實驗總結 編寫程式 gedit編輯器 編寫程式 c 存放 gcc linux c程式編譯工具 當前...