先决条件 – 文件系统
文件管理和设备管理相互关联。下面给出了用于有效执行 I/O 系统所需功能的层次结构。
称为基本文件系统的最高级别模块将提供给它的信息传递给逻辑文件系统,后者又通知与设备管理器一起工作的物理文件系统。
层次结构的每一级都使用结构化和模块化编程来实现,并且信息从较高位置的模块传递到较低位置的模块。通过这种方式,他们执行所需的服务并继续沿链进行通信。其链中的最低级别与物理设备通信并与设备管理器交互。
举个例子——
示例:将文件 X 中的记录号 17 读入 Y:
X 是先前为输入而打开的直接访问文件的名称,Y 是先前在程序中定义并占用特定内存位置的数据记录的名称。
由于文件X已经被打开,所以已经搜索了文件目录来验证文件的存在。文件X的相关信息已经被带入操作系统的活动文件表中,这些信息包括文件的大小、它的第一个物理记录的地址、它的保护和访问控制信息。
此信息由基本文件系统使用,它激活访问控制验证模块以验证用户是否被允许执行此操作。如果用户被允许,则信息和控制被传递到Logical File System 。如果不允许,则拒绝访问并且不传递信息和控制。
传递到逻辑文件系统的信息用于使用以下公式将记录编号转换为其字节地址:
CBA = (RN - 1) * RL
这个结果和信息被传递到物理文件系统,它计算所需记录的物理位置。如果该块中有多个记录,它将使用以下公式计算该块中记录的偏移量:
block number = integers (byte address / physical block size)
+ address of first physical record
offset = remainder (byte address / physical block size)
此信息传递到设备接口模块,它将块号转换为从物理存储设备检索信息所需的实际圆柱/表面/记录组合。
一旦检索到,设备调度算法就开始发挥作用。信息放置在缓冲区中,控制权返回到物理文件系统,后者将信息复制到所需的内存位置。
完成后,消息“全部清除”将传递给所有模块。任何其他命令都以相同的方式处理。当控制到达设备处理程序时,分配模块被调用,因为它负责跟踪未使用的内存区域。
笔记:
在文件管理系统的每一层,都会发生检查请求是否有效的过程。当文件系统检查文件是否存在时,首先发生在目录级别。接下来发生在访问控制验证模块检查是否允许访问时。当逻辑文件系统检查请求的字节是否在文件的限制内时,接下来发生。最后,在设备接口模块检查存储设备是否存在时进行验证。
因此,每个用户命令的操作都需要文件系统各个模块的协同工作。