作業系統
目錄
介紹
- 使用Java構建的內存分配模擬器,以更好地了解內存分配在操作系統中的工作方式。它模擬了共同的內存分配策略:
該存儲庫還包含
示範
- 歡迎使用內存分配模擬器。
- 首先,我們詢問用戶是否要輸入值,如果不是,則已經進行了一些值。
- 硬編碼值對於理解,調試和節省時間很重要。

- 在獲取內存劃分的輸入值,其當前狀態(免費/不免費)和過程編號之後,我們打印了內存分配的當前表。





演算法
使用Java構建的簡單內存分配模擬,以更好地了解操作系統中的內存分配方式。它模擬了共同的內存分配策略:
- 首先
- 在第一種擬合方法中,可以分配足夠大的自由分區或足夠大的孔,以適應該過程。
- 優勢:它在找到第一個合適的免費分區後完成。最快的算法是因為它盡可能少地搜索。
- 缺點:內部破碎- 分配後剩餘的未使用的記憶區域如果太小,則會浪費。因此,無法完成要求更大的內存要求。
- 最好的
- 最適合的交易是分配滿足要求過程需求的最小免費分區。該算法首先搜索整個免費分區列表,並認為最小的孔是足夠的。
- 優勢:然後,它試圖找到一個接近實際過程大小所需的孔。內存利用率比首先搜索最小的免費分區要好得多。
- 缺點:它較慢,甚至可能傾向於用微小的無用孔填充記憶。
- 最糟糕的
- 在最糟糕的方法中,可以找到最大的可用部分,以便剩下的部分足夠大,可以有用。這是最合適的相反。
- 優勢:降低小間隙的生產率。
- 缺點:如果需要更大內存的過程到達以後的階段,則由於最大的孔已經被拆分和占據,因此無法容納它。
在處理每個仿真之前,用戶必須輸入當前內存劃分/分配,即內存除法,狀態,過程名稱。
當前,內存分配是硬編碼,以節省時間,並輕鬆調試此示例。
當前的內存分配

如果輸入過程大小為200 kb,則:
內存分配 - 首先擬合

內存分配 - 最合適

內存分配 - 最差

本地設置
- 下載最新版本的Java -Java SE-下載| Oracle。
- 克隆存儲庫:
git clone https://github.com/tusharnankani/MemoryAllocationSimulator.git - 打開此目錄在Command Prom或Shell中。
- 使用命令:
javac MemoryAllocation.java編譯文件 - 使用命令:
java MemoryAllocation運行文件
作者
Tushar Nankani
LinkedIn |嘰嘰喳喳
執照
GPU許可證