操作系统| 磁盘存储器的管理(索引分配设计的文件大小的计算位示图的管理分配和回收外存的三种分配方式空闲表法和空闲链表法)

Posted 有理想、有本领、有担当的有志青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统| 磁盘存储器的管理(索引分配设计的文件大小的计算位示图的管理分配和回收外存的三种分配方式空闲表法和空闲链表法)相关的知识,希望对你有一定的参考价值。

文章目录

外存的三种分配方式

连续分配

  • 要求为每一个文件分配一组相邻盘块
  • 过程中会产生外存碎片,可用紧凑方法消除
  • 优点:顺序访问容易,顺序访问速度快
  • 缺点:要求有连续的存储空间,且必须事先知道文件长度

链接分配

  • 分为隐式链接和显示链接
  • 采取离散分配方式,消除了外存碎片
    优点
  • 可动态为文件分配盘块,无需已知文件大小
  • 方便对文件增删改
    缺点
  • 不能支持高效的直接存取

索引分配

  • 分为单级、多级、混合索引方式
  • 相当于不断套娃的过程,下图为混合索引方式

索引分配涉及的文件大小的计算

某磁盘的文件系统采用混合索引分配方式,其FCB中共有13个地址项,第0~9地址项为直接地址,第10个地址为一次间接地址,第11个地址为二次间接地址,第12个地址为三次间接地址。若盘块大小为512B,每个盘块号用3B描述,为方便计算设每个盘块最多存170个盘块地址。问:

1)该文件系统允许文件的最大长度是多少?

2)将文件的字节偏移量150000转换为物理块号和块内地址

3)设某个文件的FCB已在内存,但其他信息均在外存,为了访问该文件中某个位置的内容,最少和最多需几次访问磁盘?

(1)
(直接地址个数+间接地址个数×次数)×盘块大小
(10+170+170×170+170×170×170)×521B = 2471040B

(2)

  • 150000/512 = 292496
  • 10+170<292<10+170+170×170
  • 292- (10+170)=112
  • 112/170 = 0…112
  • 可从FCB的第11个地址项得到二次间址块的地址,并从二次间址块的第0项一次间址地址,再从该一次间址的第112项中获得对应的物理块号,块内地址为 496

(3)

  • 最少需1次访问磁盘(可通过直接地址直接读文件块)
  • 最多需4次访问磁盘(第1次为读3次间址,第2次为读2次间址,第3次为读1次间址,第4次为读文件盘块)。

空闲表法和空闲链表法

空闲表法

  • 属于连续分配方式。
  • 为每个文件分配一块连续的存储空间。系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应于一个空闲表项,再将所有空闲区按其起始盘块号递增的次序排列

空闲链表法

  • 将磁盘上的所有空闲盘区拉成一条链
  • 在每个盘区上含有指示下一个空闲盘区的指针和指明本盘区大小的信息。
  • 分配盘区的方法通常采用首次适应算法。为提高对空闲盘区的检索速度,可以采用显式链接方法,在内存中为空闲盘区建立一张链表。
  • 在回收盘区时,将回收区与相邻的空闲盘区合并。

位示图的管理(分配和回收)


首先注意这个是需要分配连续连续连续连续连续盘块哦

位示图很简单,图中为1表示占用,为0表示空闲。分配就是找到那个位置,改成1,回收就是改成0
(1)
从图中找到连续值为0的位置,第一个是4行0列,第二个是4行1列。对应的盘块号分别为48,49,(就是在图中第几个,算也行,数数也行)将位示图中两个位置分别修改为1,并将对应块48,49分配出去

(2)
300在位示图对应的位置是18行11列,将该位置修改为0,表示该块为空闲块

以上是关于操作系统| 磁盘存储器的管理(索引分配设计的文件大小的计算位示图的管理分配和回收外存的三种分配方式空闲表法和空闲链表法)的主要内容,如果未能解决你的问题,请参考以下文章

操作系统——磁盘存储器管理

文件管理-第一节4:文件物理结构(文件分配方式)

Linux 磁盘

20952磁盘存储器的管理

Kafka高效文件存储设计特点

:文件管理 -- 文件目录(目录结构)文件的物理结构(文件块,磁盘块 & 连续分配 & 链接分配 & 索引分配)