2024-05-19
藏龙卧虎
00
请注意,本文编写于 205 天前,最后修改于 163 天前,其中某些信息可能已经过时。

目录

简介
IO管理软件
用户层
设备独立性层
设备驱动程序层
中断处理层
硬件层
文件管理
文件的概念
树形结构
位示图
索引文件
多级索引
例题:计算多级索引表的数量

简介

今天主要介绍一下IO管理软件和文件管理相关知识,因为IO管理软件这个知识点很小,所以在这里一并介绍。

文件管理相关的知识考点较为分散,一般都是概念理解型题目,注意理解即可,主要考点有:

  1. 文件概念;
  2. 树形结构(相对路径、绝对路径);
  3. 位示图;
  4. 索引文件。

关注公众号“月上老狗”,发送“软件设计师”,获取历年软件设计师软考真题。

image

IO管理软件

IO管理软件是操作系统的重要组成部分,主要负责管理计算机系统中的输入输出设备。常见的考点包括IO管理的基本概念、分层结构及每个层次的具体作用。以下是IO管理软件的分层结构及每个层次的作用:

  • 用户层(User Level
  • 设备独立性层(Device-Independent Software Layer
  • 设备驱动程序层(Device Drivers Layer
  • 中断处理层(Interrupt Handlers Layer
  • 硬件层(Hardware Layer

用户层

用户层是应用程序和操作系统交互的层次。应用程序通过系统调用来请求IO操作,向操作系统提交IO请求,并接收IO操作完成后的数据。用户层的主要工作:

  1. 提供用户接口,使用户程序能够请求IO操作。
  2. 处理高层次的IO操作,如文件读写、网络通信等。

设备独立性层

设备独立性层提供设备无关的IO操作接口,使应用程序无需关心具体的设备细节。负责实现设备独立的功能,如缓冲区管理、错误处理和设备分配。设备独立性层的主要工作:

  1. 设备分配:管理设备的分配和释放,确保设备的合理使用。
  2. 缓冲区管理:管理IO缓冲区,确保数据在设备和内存之间的有效传输。
  3. 错误处理:处理IO操作中的错误,提供统一的错误报告机制。

设备驱动程序层

设备驱动程序是设备无关性层和硬件层之间的桥梁,负责实现设备特定的操作。直接与硬件设备进行交互,执行具体的IO操作。设备驱动程序层的主要工作:

  1. 初始化设备:在系统启动时对设备进行初始化,使其进入可用状态。
  2. 执行IO操作:实现设备特定的读写操作,将高层次的IO请求转换为设备特定的命令。
  3. 中断处理:处理设备发出的中断信号,通知操作系统IO操作的完成情况。

中断处理层

中断处理层负责处理来自硬件设备的中断请求,确保系统及时响应设备的状态变化。中断处理程序在设备操作完成后被触发,负责处理和清理中断。中断处理层的主要工作:

  1. 保存上下文:在处理中断时保存当前的CPU状态,以便中断处理完成后恢复。
  2. 处理中断:根据中断类型执行相应的处理操作,如读取数据、更新状态等。
  3. 恢复上下文:中断处理完成后恢复CPU状态,继续执行被中断的程序。

硬件层

硬件层是物理设备本身,负责实际的数据传输和控制操作。包括各种输入输出设备,如磁盘、打印机、网络接口等。硬件层的主要工作:

  1. 设备控制:硬件层执行具体的控制操作,如读写磁盘、发送网络数据等。
  2. 数据传输:实现数据在设备和系统之间的物理传输。

文件管理

文件的概念

文件是数据集合的逻辑单元,是计算机存储信息的基本单位。每个文件都有一个文件名和文件属性,属性包括文件类型、大小、创建时间、修改时间、权限等。

拓展:文件可以类比现实世界的书籍、纸张、文件等信息集合,这些信息在计算机中,可以统称为“文件”。

树形结构

文件系统通常采用树形目录结构,以根目录为起点,向下扩展为多个子目录和文件。树形结构的文件地址表示方式,一般有两种:

  • 相对路径:从当前工作目录出发,指向目标文件或目录的路径。
  • 绝对路径:从根目录出发,完整地描述文件或目录的路径。

例题:以Linux系统为例,在当前目录为 /home/user 的情况下,文件 docs/report.txt 的相对路径为 docs/report.txt,绝对路径为 /home/user/docs/report.txt

拓展:在Linux系统中,一个系统一般只有一个根目录:/,但Windows系统略有不同,因为Windows系统中的文件管理默认是分区的,也就是常见的 C / D / E 这些盘符,根目录也就有了多个,即 C / D / E 等。

位示图

位示图是一种空间管理方法,利用位图来记录磁盘块的使用情况,其中“位”可以认为是“比特位”。每个磁盘块对应位图中的一位,1 表示已使用,0 表示空闲。

位示图中还有一个“字”的概念,假设一个字有8个比特位,即一个字可以表示8个磁盘块是否可以使用。

注意:“字”一般默认从 1 开始编号,而“位”一般默认从 0 开始编号。

考试中,可能会告诉你一个“字”的位长,然后给出一些磁盘块序号,从而求取其位置在第几个字的第几位,总而言之也是简单的数学计算,注意审题即可。

索引文件

索引文件通过索引表来管理文件,索引表记录文件中每个逻辑块对应的物理块位置。索引表可以是单级索引、多级索引或组合索引。

多级索引

多级索引(Multilevel Indexing)是一种分层次管理文件数据块的方法。一级索引表记录指向二级索引表的指针,二级索引表记录指向三级索引表的指针,依此类推,直到最后一级索引表记录指向实际数据块的指针。

假设一个文件系统采用多级索引方式来存储文件,索引表的结构如下:

  1. 一级索引表(一级指针):包含指向二级索引表的指针,每个指针指向一个完整的二级索引表。一级索引表的大小决定了可以有多少个二级索引表。
  2. 二级索引表(二级指针):包含指向三级索引表的指针,每个指针指向一个完整的三级索引表。二级索引表的大小决定了可以有多少个三级索引表。
  3. 三级索引表(三级指针):包含指向实际数据块的指针,每个指针指向一个完整的数据块。三级索引表的大小决定了可以管理多少个数据块。

示例:假设每个索引表最多可以包含 256 个指针,一个数据块的大小是 4 KB。我们有一个大文件需要多级索引来存储。 由以上数据,我们可以得到如下几个结论:

  1. 文件大小和数据块数量:假设文件大小为 4 MB。每个数据块为 4 KB,因此文件需要 4MB / 4KB = 1024 个数据块。
  2. 一级索引表:假设一个一级索引表可以包含 256 个指针,因此它可以指向 256 个二级索引表。
  3. 二级索引表:每个二级索引表也可以包含 256 个指针,因此它可以指向 256 个三级索引表。
  4. 三级索引表:每个三级索引表可以包含 256 个指针,因此它可以指向 256 个数据块。

多级索引的优缺点

  • 优点:扩展性好:适用于非常大的文件,因为可以通过增加索引级别来管理更多的数据块。灵活性高:可以根据文件的大小动态调整索引级别。
  • 缺点:索引表占用空间:多级索引需要额外的索引表存储空间。查找时间增加:需要多次访问索引表才能找到实际的数据块,增加了查找时间。

例题:计算多级索引表的数量

题目:一个文件系统采用三级索引来管理文件。假设每个索引表最多包含 256 个指针,每个数据块的大小是 4 KB。现在有一个大小为 100 MB 的文件。请计算该文件需要的多级索引表的数量。

解答步骤:

  1. 计算数据块数量:

已知:文件大小为 100 MB,数据块大小为 4 KB。
计算文件需要的数据块数量:
数据块数量 = 100MB / 4KB = 100 × 1024KB / 4 KB = 25600 个数据块

  1. 计算三级索引表的数量:

已知:每个三级索引表可以包含 256 个指向数据块的指针。
需要的三级索引表数量:
三级索引表数量 = 25600 / 256 = 100 个三级索引表

  1. 计算二级索引表的数量:

已知:每个二级索引表可以包含 256 个指向三级索引表的指针。
需要的二级索引表数量:
二级索引表数量 = 100 / 256 = 0.39 = 1 个二级索引表

  1. 计算一级索引表的数量:

已知:每个一级索引表可以包含 256 个指向二级索引表的指针。
需要的一级索引表数量:
一级索引表数量 = 1 / 256 = 0.004 = 1 个一级索引表

答案:该文件需要的多级索引表数量为:100 个三级索引表;1 个二级索引表;1 个一级索引表

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!