操作系统
目录
介绍
- 使用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许可证