动态分区的主要关注点是跟踪所有可用分区和已分配分区。但是, 操作系统为此任务使用以下数据结构。
- 位图
- 链表
操作系统的主要任务是跟踪分区是空闲还是已满。为此, 操作系统还管理另一个称为位图的数据结构。
分配单位中的线程或漏洞由位图的标志位表示。在下面显示的图像中, 为分配单元的每个位定义了一个标志位。但是, 这不是一般情况, 而是要取决于OS, 要分配多少个分配单元位来存储标志位。
如果在分配单元中的相邻位上存在连续的进程, 则将标志位设置为1, 否则将其设置为0。
位图中的0字符串表示相对分配单元中有一个空洞, 而1字符串则表示相对分配单元中的线程。
文章图片
使用位图的缺点 1. OS还必须为位图分配一些内存, 因为它存储有关分配单位的详细信息。这么多的内存无法用于加载任何进程, 因此会降低多编程的程度以及吞吐量。
在上图中,
分配单位为4位, 即0.5位。在此, 位图的1位表示分配单位的1位。
Size of 1 allocation unit = 4 bits Size of bitmap = 1/(4+1) = 1/5 of total main memory.
因此, 在这种位图配置中, 浪费了总主存储器的1/5。
【动态分区的位图】2.要识别内存中的任何孔, 操作系统需要在位图中搜索字符串0。这种搜索需要花费大量时间, 这在一定程度上使系统效率低下。
推荐阅读
- 内存压缩
- 二进制信号量或互斥量
- 贝拉迪异常(Belady’s Anomaly)
- Win10系统组策略编辑器怎样打开?
- Win10系统网络连接受限怎样处理?
- Win10如何迅速显示桌面?
- Win10笔记本蓝牙怎样打开?
- Win10系统故障的有效果处理办法
- Win10笔记本无线网络禁用后怎样打开?