软件工程概论------文件管理

目录

1.文件的相关概念

2.文件目录

3.位示图

4.索引文件

5.例题


1.文件的相关概念

文件:具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。

逻辑结构:有结构的记录式文件、无结构的流式文件。

物理结构: 连续结构、链接结构、索引结构、多个物理块的索引表。

2.文件目录

文件目录包含:文件目录项,文件的说明以及文件控制块FCB

基本信息类:文件名、文件的物理地址、文件长度和文件块数等

**存储控制信息类:**文件的存储权限:读写、执行权限等

(文件属性: 只执行、隐含、只读、读/写、共享、系统)

使用信息类:文件建立日期、最后一次修改/访问日期、当前使用的信息、打开文件的进程数以及在文件上的等待队列等

目录结构

一级目录结构: 线性结构,查找速度慢,不允许重名和实现文件共享等

二级目录结构: 主文件目录 (MFD) +用户目录 (UFD)

三级目录结构: 树型目录结构 (多级目录结构)

注:多级目录结构允许不同用户的文件可以具有相同的文件名

绝对路径:是从盘符开始的路径

相对路径:是从当前目录开始的路径

举例:若当前路径为D1,要求写出F2路径:

绝对路径:/D1/W2/F2

相对路径:W2/F2

全文件名:绝对路径+文件名(包括文件的拓展名)

3.位示图

位示图是对空闲存储空间进行管理的一种方法,通常用于跟踪磁盘块或存储区域的使用情况。每个块或区域都被表示为位示图中的一个位(通常是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

4.索引文件

直接索引

在直接索引中,每个文件数据块都分配了一个唯一的物理块地址,这些地址存储在文件的索引块中。直接索引可以直接访问数据块。

一级间接索引

在一级间接索引中,每个文件数据块的地址都不直接存储在文件的索引区域中,而是存储在一个专门的一级索引块中。例如10号索引结点中放置的是索引表,若索引表为1kb,每个索引的大小是3b,那么这里可以放置1024/3=341个索引,其余剩余的bit位不能放置索引了。一级间接索引的逻辑页该怎么求呢,以最后一个索引为例,即第341个索引

x-10+1=341个索引,x=350号地址项

对于一级间接索引,要找到索引对应的数据块,需要查一次磁盘找索引,再查一次磁盘才找数据。

二级间接索引:

二级间接索引同理,若2级间接索引表中有341个索引结点,那么每个节点又对应了341个一级索引节点,所以二级间接索引,能够索引的地址项为:341*341。三级间接索引以此类推为341^3

注:逻辑页号是连续的,而物理块号是分散的

5.例题

例题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

相关推荐
Elastic 中国社区官方博客2 小时前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
2301_816660212 小时前
PHP怎么处理Eloquent Attribute Inference属性推断_Laravel从数据自动推导类型【操作】
jvm·数据库·python
qq_372154233 小时前
Go 中自定义类型与基础类型的显式转换规则详解
jvm·数据库·python
_下雨天.4 小时前
NoSQL之Redis配置与优化
数据库·redis·nosql
LiAo_1996_Y4 小时前
CSS如何实现文字渐变效果_通过background-clip实现艺术字
jvm·数据库·python
2401_887724504 小时前
CSS如何让表单在手机端友好展示_利用Flexbox实现堆叠排版
jvm·数据库·python
数据库小组4 小时前
MySQL 删库后怎么恢复?binlog2sql 之外,NineData 还能做什么
数据库·sql·mysql·安全·数据·ninedata·删库
zhangchaoxies4 小时前
Layui轮播图(carousel)怎么设置自动播放间隔
jvm·数据库·python
切糕师学AI5 小时前
HBase:一文搞懂分布式宽列数据库(原理 + 架构 + 实战)
数据库·分布式·nosql·hbase·分布式宽列数据库·wide column db
competes5 小时前
慈善基金投资底层逻辑应用 顶层代码低代码配置平台开发结构方式数据存储模块
java·开发语言·数据库·windows·sql