IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 操作系统---第四章文件管理---文件系统实现---选择题 -> 正文阅读

[数据结构与算法]操作系统---第四章文件管理---文件系统实现---选择题

1文件的物理结构有哪些?分别有什么特点。

(1)连续分配支持顺序访问和直接访问。

其优点是实现简单,存取速度快。缺点是文件长度不宜动态增长,因为一个文件末尾后的盘块可能已分配给其他文件,一旦需要增加,就需要大量移动盘块。
此外,反复增删文件后会产生外部碎片(与内存管理分配方式中的碎片相似),且很难确定一个文件需要的空间大小,因而只适用于长度固定的文件。

(2)链式分配消除了外部碎片

链式分配是基于连续分配基础上做的改进。连续分配因为要求每个文件在磁盘上占有一组连续的块而容易产生外部碎片,链式分配就干脆采用离散分配的方式,消除外部碎片,显著提高磁盘空间的利用率。
此外,当文件动态增长时,可以动态地再为它分配盘块,因此无须事先知道文件的大小,增删改查也是十分方便。

(3)索引分配实现了随机访问。

链式分配虽然解决了连续分配的碎片问题和文件大小管理问题,链式分配是一级一级的,没有办法实现随机访问。
为了解决这个缺点,大家又发明了索引分配。
索引分配把每个文件的所有盘块号都集中放在一起构成索引块。
常言道,鱼和熊掌不可兼得,索引分配既消除了外部碎片,又实现了随机访问,那开销自然要大,不然没天理了。

2设文件索引结点中有7个地址项,其中4个地址项是直接地址索引,2个地址项是一级间接地址项索引,1个地址项是二级间接地址项索引,每个地址项大小为4B,若磁盘索引块和磁盘数据块大小均为256B,可表示的单个文件最大长度是?

256/4=64
4256+264256+6464*256=1024+32768+1048576=1082368B=1057KB

3一个文件系统中,其FCB占64B,一个盘块大小为1KB,采用一级目录。假定文件目录中有3200个目录项。则查找一个文件平均需要?次访问磁盘。

我需要提醒自己一件事,一个目录项就代表一个文件,就需要一个FCB。
3200个目录项就需要3200个个CB,其大小就是320064B,一个盘块是1KB,那么这些目录项需要320064/1KB=200个盘块,问的是平均访问次数,因此为100个。

4文件的存储空间管理实质上是对外存空闲区的组织和管理。

文件分配方式有3种,文件存储空间管理方式也有三种,分别是空闲表法,空闲链表法和位示图法。

(1)空闲表法

空闲表法属于连续分配方式,它与内存的动态分配方式类似,为每个文件分配一块连续的存储空间。系统为外存的所有空闲区建立一张空闲盘块表,每个空闲区对应于一个空闲表项,其中包括表项序号,该空闲区第一个盘块号,该区的空闲盘块数等信息。再将所有空闲区按其起始盘块号递增的次序排列。

(3)位示图法

位示图利用二进制的一位来表示磁盘中一个盘块的使用情况,磁盘上所有的盘块都有一个二进制位与之对应。当其值为“0”时,表示对应的盘块空闲;当其值为“1”时,表示对应的盘块已分配。

5若用8个字(字长32位)组成的位示图管理内存,假定用户归还一个块号为100的内存块时,它对应位示图的位置为?

位示图求行号列号公式:
n代表每行的位数。
i=(b-1)DIVn+1,那就是i=99DIV32+1=4
j=(b-1)MODn+1,那就是99mod32+1=4

6设有一个记录文件,采用链接分配方式,逻辑记录的固定长度为100B,在磁盘上存储时采用记录成组分解技术。盘块长度为512B。若该文件的目录项已经读入内存,则对第22个逻辑记录完成修改后,共启动了磁盘?次?

2200/512=4余152
第22个逻辑地址意味着依次读取第4块才得到第5块的物理地址,共启动期盼5次。修改还需协会操作,由于写回时已获得该块的物理地址,只需1次访问磁盘,因此共需启动磁盘6次。

7索引文件

索引文件中,索引表的每个表项中含有相应记录的逻辑地址。
顺序文件进行检索时,首先从FCB中读出文件的第一个盘块号;而对索引文件进行检索时,应先从FCB中读出文件索引块的开始地址。
对于一个拥有三级索引的文件,存取一条记录通常要访问4次磁盘。
文件较大时,采用随机存取时,索引文件速度快;
顺序存取时,顺序存取文件速度快。

8文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32-127号块中,每个盘块占1024B,盘块和块内字节均从0开始编号。假设要释放的盘块号为409612,则位图中要修改的位所在的盘块号和块内字节序号分别是?

409612/1024=400.01,400/8=50
磁盘块从32开始计算,32+50其实应该是51,因为50个存不下
32+51,这里应该是需要减1的,毕竟32号块本身也有1024B
因此盘块号为32+51-1=82。
块内字节序号呢?
10248=8192。
8192
50=409600。409612-409600=12,块内字节是从0开始,因此对应的块内字节是1。

9为什么索引结点不能管理空闲空间呢?

索引节点是操作系统为了实现文件名与文件信息分开而设计的数据结构,存储了文件描述信息,索引结点属于文件目录管理部份的内容。

10某文件系统的目录项由文件名和索引节点号构成。若每个目录项长度为64字节,其中4字节存放索引节点号,60字节存放文件名。文件名由小写英文字母构成,则该文件系统能创建的文件数量的上限为?

不同目录下的文件名可以相同,所以在考虑系统创建最多文件数量时,只需考虑索引节点的个数,即创建文件数量上限=索引结点数量上限。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:59:06  更:2022-05-09 13:01:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:45:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码