目录
文件:具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。
逻辑结构:有结构的记录式文件、无结构的流式文件。
物理结构: 连续结构、链接结构、索引结构、多个物理块的索引表。
文件目录包含:文件目录项,文件的说明以及文件控制块FCB
基本信息类:文件名、文件的物理地址、文件长度和文件块数等
存储控制信息类:文件的存储权限:读写、执行权限等
(文件属性: 只执行、隐含、只读、读/写、共享、系统)
使用信息类:文件建立日期、最后一次修改/访问日期、当前使用的信息、打开文件的进程数以及在文件上的等待队列等
目录结构:
一级目录结构: 线性结构,查找速度慢,不允许重名和实现文件共享等
二级目录结构: 主文件目录 (MFD) +用户目录 (UFD)
三级目录结构: 树型目录结构 (多级目录结构)
注:多级目录结构允许不同用户的文件可以具有相同的文件名
绝对路径:是从盘符开始的路径
相对路径:是从当前目录开始的路径举例:若当前路径为D1,要求写出F2路径:
绝对路径:/D1/W2/F2
相对路径:W2/F2
全文件名:绝对路径+文件名(包括文件的拓展名)
位示图是对空闲存储空间进行管理的一种方法,通常用于跟踪磁盘块或存储区域的使用情况。每个块或区域都被表示为位示图中的一个位(通常是0或1),其中0表示该块或区域是空闲的,1表示已被占用。使用位示图,系统可以快速查找可用的存储块或区域,并进行分配。当一个文件或数据需要存储时,系统可以在位示图中找到一个连续的空闲块,将其标记为已占用,并将数据写入该块中。
例题:
某字长为32位的计算机的文件管理系统采用位示图 (bitmap) 记录磁盘的使用情况。若磁盘的容量为300GB,物理块的大小为1MB,那么位示图的大小为 ( )个字。
A 1200
B 3200
C 6400
D 9600
字数=300*2^10/32位
物理块从0开始编号,某页面放置在第1023个物理块中,则如何操作:
1023/32=31....31,其中31*32=992,31个字只能放992个物理块,则还需要一个字,所以字号从0开始,编号为31,0~31就是32个字,而其在32个字中的偏移号也从0开始,就是30号,0~30号表示第31个bit位。最后将31号字中的编号为30的bit会从0写为1
直接索引
在直接索引中,每个文件数据块都分配了一个唯一的物理块地址,这些地址存储在文件的索引块中。直接索引可以直接访问数据块。
一级间接索引
在一级间接索引中,每个文件数据块的地址都不直接存储在文件的索引区域中,而是存储在一个专门的一级索引块中。例如10号索引结点中放置的是索引表,若索引表为1kb,每个索引的大小是3b,那么这里可以放置1024/3=341个索引,其余剩余的bit位不能放置索引了。一级间接索引的逻辑页该怎么求呢,以最后一个索引为例,即第341个索引
x-10+1=341个索引,x=350号地址项
对于一级间接索引,要找到索引对应的数据块,需要查一次磁盘找索引,再查一次磁盘才找数据。
?
二级间接索引:
二级间接索引同理,若2级间接索引表中有341个索引结点,那么每个节点又对应了341个一级索引节点,所以二级间接索引,能够索引的地址项为:341*341。三级间接索引以此类推为341^3
注:逻辑页号是连续的,而物理块号是分散的
例题1:
某文件系统采用索引节点管理,其磁盘索引块和磁盘数据块大小均为1KB且每个文件索引节点有8个地址项iaddr[0]~iaddr[7],每个地址项大小为4字节,其中iaddr[0]~iaddr[4]采用直接地址索引,iaddr[5]和iaddr[6]采用一级间接地址索引,iaddr[7] 采用二级间接地址索引。若用户要访问文件userA中逻辑块号为4和5的信息,则系统应分别采用 (),该文件系统可表示的单个文件最大长度是 ( )KB。
A 直接地址访问和直接地址访问
B 直接地址访问和一级间接地址访问
C 一级问接地址访问和一级间接地址访问
D 一级间接地址访问和二级间接地址访问
A.517? ? ? ? B.1029? ? ? ? C.65797? ? ? ? D.66053
直接索引的磁盘数据块为5KB
一级间接索引,因为每个地址项为4字节,1KB/4字节=256个地址项,所以有256个索引结点,每个索引结点对应1KB,所以总共为256KB
二级间接索引则有256^2*1KB=65536KB
答案为D
例题2:
设文件索引结点中有7个地址项,其中4个地址项是直接地址索引,2个地址项是一级间接地址索引,1个地址项是二级间接地址索引,每个地址项大小为4B,若磁盘索引块和磁盘数据块大小均为256B,则可表示的单个文件最大长度是()
A.33KB
B.519KB
C.1057KB
D.16516KB
直接索引:4*256
一级间接索引:64(256/4)*256
二级间接索引:64*64*256
答案为C