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

目录

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

相关推荐
大拇指的约定4 分钟前
数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(三),单表查询
数据库·mysql·oracle
阳光阿盖尔19 分钟前
redis——哨兵机制
数据库·redis·缓存·主从复制·哨兵
小小娥子19 分钟前
【Redis】Hash类型的常用命令
数据库·spring boot·redis
盒马盒马20 分钟前
Redis:cpp.redis++通用接口
数据库·c++·redis
barbyQAQ36 分钟前
Qt源码阅读——事件循环
开发语言·数据库·qt
银氨溶液39 分钟前
MySql数据引擎InnoDB引起的锁问题
数据库·mysql·面试·求职
IvorySQL1 小时前
济南站活动回顾|IvorySQL中的Oracle XML函数使用示例及技术实现原理
xml·数据库·sql·postgresql·oracle·开源
Data 3172 小时前
Hive数仓操作(十)
大数据·数据库·数据仓库·hive·hadoop
ON.LIN2 小时前
Hadoop大数据入门——Hive-SQL语法大全
大数据·数据库·hive·hadoop·分布式·sql
Elastic 中国社区官方博客2 小时前
Elasticsearch 开放推理 API 增加了对 Google AI Studio 的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎