动态分区的位图

动态分区的主要关注点是跟踪所有可用分区和已分配分区。但是, 操作系统为此任务使用以下数据结构。

  1. 位图
  2. 链表
位图是用于存储详细信息的最不著名的数据结构。在该方案中, 主存储器被分为分配单元的集合。可以根据该线程的需要将一个或多个分配单元分配给该线程。但是, 分配单元的大小是固定的, 由操作系统定义, 并且永远不会更改。尽管分区大小可能有所不同, 但是分配大小是固定的。
操作系统的主要任务是跟踪分区是空闲还是已满。为此, 操作系统还管理另一个称为位图的数据结构。
分配单位中的线程或漏洞由位图的标志位表示。在下面显示的图像中, 为分配单元的每个位定义了一个标志位。但是, 这不是一般情况, 而是要取决于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。这种搜索需要花费大量时间, 这在一定程度上使系统效率低下。

    推荐阅读