外存管理与文件系统(1)

  前几天把文件系统这章给看了,想着还是总结一下吧,省得以后忘了还得从新再看。

  先说一些基本的外存知识。寻址和存取的单位是扇区。外存设备都由驱动控制部分和存储介质两部分组成。信息存在存储介质上,而驱动控制部分则负责实施对存储介质的读写操作及相关控制和测试动作。

  因此,将外存设备分为3类。1)驱动器和存储介质都固定。例如硬盘。2)驱动器固定但存储介质不固定。例如光盘、软盘、磁盘。3)介质固定但驱动器不固定,即可移动外存设备。例如活动硬盘、优盘等,存储介质固定在驱动器内部,但驱动器不固定在计算机内部,在计算机之外从串口或专用口与计算机相连。

  大多数系统将设备驱动控制部件中的大部分电子控制部分分离出来成为设备控制器,而设备驱动器只剩下机械驱动部分和简单的电子控制电路。

  一个设备控制器可同时控制多个设备驱动器,可节省成本,这也是分离设备控制器与驱动器的原因。

  一个完整的磁盘系统由磁盘片本身(存储介质)、磁盘驱动器和磁盘控制器组成(磁盘控制器同时还控制其他设备驱动器)。

  硬盘的磁头利用空气浮力悬浮或“飞行”在盘表面(但又尽可能接近,仅以微米计算),故硬盘快,但成本高,易发生滑道故障(磁头接触盘面)而致硬盘内容丢失;软盘磁头则直接接触盘面,故软盘慢,但成本低。

  硬盘与软盘的根本区别是磁头与盘面的接触方式及其与介质可移动性间的互决定关系。

  文件基本操作

  大部分文件系统都只提供删除文件的系统调用,而不提供删除文件中间部分内容的系统调用,这是由文件内部实现机制决定的,用户若要删除文件中间部分内容,只能以“写文件”系统调用,以一种低效的前挪覆盖方式达到删除效果。

  fd是文件描述字(file descriptor)的缩写,它又称为文件句柄。文件描述字实际是文件描述信息(属性信息、管理信息)在内存地址的索引。用我们老师的话说,fd实际是个指针,是打开文件在系统 打开文件表(这个会在后面讲到,进程的pcb中也有一块称为进程打开文件表的区域)的位置。

  目录是linux中的概念,在windows中叫文件夹。操作系统通常提供当前目录机制,在windows个人系列或dos这样的单用户下,每卷有一个当前目录,而在unix和linux这样的多用户系统下,每个用户有一个当前目录(称为工作目录)。

  链接:有的操作系统允许一个文件同时属于多个目录,但实际上该文件只有一处物理存储,这种一处存储前提下从文件到目录的一对多关系称为链接。链接就是指一个文件(或目录)属于多个目录。链接分为硬链接和软链接(下面会详细阐述区别)。

  文件子系统(file subsystem),通常又称为卷(volume)

  用一句话说,文件子系统就是一个外存区域:该区域内的所有空闲空间信息、所有文件和目录及其属性信息的一个闭体。

  分区是硬盘上的一个连续区域,一个硬盘上可能有多个分区,格式化的分区就是卷(文件子系统)。通常,一个分区对应一卷,但有些系统中可以几个分区组成一卷,这几个分区也可能不相邻,可能在同一盘上,也可能不在同一盘上。可以说,分区是物理概念,而卷(文件子系统)是逻辑概念。

  文件子系统的建立(格式化盘)   一张盘必须格式化(即在盘上建立文件子系统)后,才能使用(往盘上放文件等)。

 

  驱符和卷标

  卷标才真正是文件子系统的名字。

  驱符的概念有些含糊,它既非物理驱动器的名字(例如一个硬驱在多个分区时会有多个驱符),也非文件子系统的名字(同一个软驱中的文件子系统都用同一驱符)。但是驱符能清楚地标识每个正在使用的文件子系统。因此,就有了大家容易把驱符叫作盘标这个看起来不合理可能会造成歧义的习惯。

  文件的实现(这才是重点)以后再总结

原文地址:https://www.cnblogs.com/wangaohui/p/2840895.html