【王道笔记-操作系统】第四章 文件管理

一、文件的概念

(1)文件的定义

  在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而在用户进行的输入、输出中,则以文件为基本单位,以便信息的长期存储及将来的访问。文件系统就是文件管理系统。

  可以把一个文件比作是图书馆的一本书:

  • 首先,一本书的主体一定是书中的内容,相当于文件中的数据
  • 其次,不同类别的书需要放在不同的书库,然后加上编号,再把编号登记在图书管理系统中,方便读者查阅,相当于文件的分类和查找
  • 最后,有些已经绝版或价格比较高的外文书籍,只能借给VIP会员或权限比较高的其他读者,而有些普通的书籍可供任何人借阅,这就是文件中的访问权限

  文件的结构

  • 数据项。基本数据项(最小的逻辑单位,如姓名、日期)、组合数据项(由多个基本数据项组成)。
  • 记录。一组相关的数据项的集合,用于描述一个对象在某方面的属性,如一名考生的报名记录包括考生姓名、出生日期、报考学校代号、身份证号等。
  • 文件。可分为有结构文件(由一组相似的记录组成,如所有的考生)、无结构文件(二进制文件或字符文件,流式文件)。

  实际上关于文件并无严格的定义。文件可以是数字、字母或二进制代码,基本访问单元可以是字节、行或记录。文件可以长期存储于硬盘或其他二级存储器中,允许可控制的进程间共享访问,能够被组织成复杂的结构。

(2)文件的属性

  • 名称。唯一。
  • 标识符。文件的唯一标签,通常为数字,对人不可读。
  • 类型。
  • 位置。指针。
  • 大小。文件当前大小(用字节、字或块表示),也可包含文件允许的最大值。
  • 保护。访问控制信息。
  • 时间、日期和用户标识。文件创建、上次修改和上次访问的相关信息,用于保护和跟踪文件的使用。

  所有文件的信息都保存在目录结构中,而目录结构保存在外存上。文件信息在需要时才调入内存。通常,目录条目包括文件名称及其唯一的标识符,而标识符定位其他属性的信息。

二、文件的操作

1.文件的创建和删除

  • 创建文件∶创建文件有两个必要步骤,一是在文件系统中为文件找到空间;二是在目录中为新文件创建条目,该条目记录文件名称、在文件系统中的位置及其他可能信息。
  • 删除文件∶先从目录中找到要删除文件的目录项,使之成为空项,然后回收该文件所占用的存储空间(包括文件控制块、缓冲区等)。

2.文件的打开

  许多系统要求在首次使用文件时,使用系统调用 open。操作系统维护打开文件表(open-file table),当需要一个文件操作时,可通过该表的一个索引指定文件,就省略了搜索环节。当文件不再使用时,进程可以关闭它,操作系统从打开文件表中删除这一条目。
  如果调用 open 的请求(创建、只读、读写、添加等)得到允许,进程就可以打开文件,而open通常返回一个指向打开文件表中一个条目的指针。通过使用该指针(而非文件名)进行所有I/O 操作,以简化步骤并节省资源。

3.常用的系统调用

在这里插入图片描述
在这里插入图片描述

三、目录结构

1.绝对路径与相对路径

  用户要访问某个文件时用文件路径名标识文件,文件路径名是个字符串,由从根目录出发到所找文件的通路上的所有目录名与数据文件名用分隔符"/“链接起来而成。
  绝对路径∶ 从根目录出发的路径。
  相对路径∶从用户(进程)的当前目录出发到所找文件通路上所有目录名与数据文件名用分隔符”/"链接而成。进程对各文件的访问都是相对于当前目录进行的,设置当前目录有利于加快文件的检索速度。

2.文件控制块

  文件控制块(FCB)是用来存放控制文件需要的各种信息的数据结构,以实现"按名存取"。FCB 的有序集合称为文件目录,一个FCB 就是一个文件目录项。为了创建一个新文件,系统将分配一个 FCB 并存放在文件目录中,成为目录项。

  FCB主要包含以下信息∶

  • 基本信息,如文件名、文件的物理位置、文件的逻辑结构、文件的物理结构等。
  • 存取控制信息,如文件存取权限等。
  • 使用信息,如文件建立时间、修改时间等。

3.几种目录结构

  • 单级目录结构

  在整个文件系统中只建立一张目录表,每个文件占一个目录项。
在这里插入图片描述

  单级目录结构实现了"按名存取",但是存在查找速度慢、文件不允许重名、不便于文件共享等缺点,不适用于多用户系统。

  • 两级目录结构(解决重名问题)

  两级目录结构可以解决多用户之间的文件重名问题,文件系统可以在目录上实现访问限制,保证安全性。但是两级目录结构缺乏灵活性,不能对文件分类。

在这里插入图片描述

  • 多级目录结构(UNIX系统)(层次清晰)

  树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,在树形目录中查找一个文件时,需要按路径名逐级访问中间结点,这就增加了磁盘访问次数,无疑将影响查询速度。

在这里插入图片描述

  • 无环图目录结构(实现共享)

  在多级目录结构的基础上,无环图目录结构方便地实现了文件的共享,但使得系统的管理变得更加复杂(比如共享结点的删除需要注意)。

在这里插入图片描述

四、文件共享和文件保护

1.文件共享

(1)硬链接文件共享

  硬链接共享采用索引结点方式。在树形结构的目录中只设置文件名及指向相应索引结点的指针。共享文件的用户目录中都设置指向该文件索引结点的指针。在索引结点中还应有一个链接计数 count,用于表示链接到本索引结点(也可以说是连接到本文件)上的用户目录项的数目,当 count >1 时,文件拥有者不能将文件删除,如图所示。

在这里插入图片描述

  优点∶ 实现了异名共享。
  缺点∶文件拥有者不能删除与他人共享的文件。

(2)软链接(符号链接)文件共享

  在利用符号链实现文件共享时,只有文件的拥有者才拥有指向其索引结点的指针。当用户B要共享用户A的一个文件F时,可以由系统在用户B的目录下创建一个只包含被共享文件F 的路径名的 LINK 类型的新文件。称这样的链接方法为符号链接。
  优点∶ 文件拥有者可以删除被他人共享的文件。
  缺点∶当其他用户读共享文件时,需要根据路径名的各个分量逐个查找,访问开销大。

2.文件保护

  文件保护通过口令保护、加密保护和访问控制等方式实现。其中,口令保护和加密保护是为了防止用户文件被他人存取或窃取,而访问控制则用于控制用户对文件的访问方式。

五、文件的实现

1.磁盘非空闲块的管理:文件分配方式

在这里插入图片描述

在这里插入图片描述

2.磁盘空闲块的管理:文件存储空间管理

先略过。

六、磁盘组织与管理

1.磁盘的结构

在这里插入图片描述

2.磁盘读写时间

  一次磁盘读写操作时间=寻道时间+延迟时间+传输时间。

  • 寻道时间 (影响最大):将磁头移动到磁道所需要的时间。Ts=m*n+s。一共n条磁道,每条道需要的时间为m,s是启动磁臂的时间。
  • 延迟时间:磁头定位到某一磁道的扇区所需要的时间,一般来说需要半圈。Tr=1/r/2。r为磁盘转速。
  • 传输时间:从磁盘读出或向磁盘写入所需要的时间,由字节数b和转速r决定。Tt=b/(rN)。N是一个磁道的字节数。扇区数据的处理时间影响较大。
    在这里插入图片描述

3.磁盘调度算法

  常见几种调度算法如下:

在这里插入图片描述
在这里插入图片描述

4.减少延迟时间的措施:盘区交替编号

在这里插入图片描述

  磁盘是连续自转设备,磁头读/写一个物理块后,需要经过短暂的处理时间才能开始读/写下一块,交替编号能有效减少连续存取的延迟时间。
  传输时间是磁盘本身决定的,寻道时间和延迟时间是操作系统通过算法调度可优化的。


附:王道选择题笔记

1.UNIX操作系统中,输入/输出设备视为(特殊文件)。

2.文件的逻辑结构是为了方便用户而设计的,物理结构是为了方便存储介质特性、操作系统的管理方式而设计的。

3.若一个用户进程通过 read系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是(AB)。
A.若该文件的数据不在内存,则该进程进入睡眠等待状态(阻塞)
B.请求 read系统调用会导致CPU从用户态切换到核心态
C. read系统调用的参数应包含文件的名称(open中的参数包含文件的路径名与文件名,而 read只需使用 open返回的文件描述符)

4.UNIX操作系统中,文件的索引结构放在(索引结点)。
UNIX系统采用树形目录结构。

5.设文件F1的当前引用计数值为1,先建立文件F1的符号链接(软链接)文件F2,再建立文件F1的硬链接文件F3,然后删除文件F1。此时,文件F2和文件F3的引用计数值分别是(1,1)。
建立符号链接时,引用计数值直接复制;建立硬链接时,引用计数值加1。删除文件时,删除操作对于符号链接是不可见的,这并不影响文件系统,当以后再通过符号链接访问时,发现文件不存在,直接删除符号链接;但对于硬链接则不可直接删除,引用计数值减 1,若值不为0,则不能删除此文件,因为还有其他硬链接指向此文件。
当建立F2时,F1和F2的引用计数值都为1。当再建立F3时,F1和F3的引用计数值就都变成了2。当后来删除F1时,F3的引用计数值为2-1=1,F2的引用计数值不变。

6.若文件f1的硬链接为2,两个进程分别打开fl和f2,获得对应的文件描述符为fd1和fd2,则下列叙述中正确的是(BC)。
A. f1和f2的读写指针位置保持相同
B.f1和f2共享同一个内存索引结点
C.fd1和fd2分别指向各自的用户打开文件表中的一项

7.对一个文件的访问,由(用户访问权限和文件属性)共同限制。

8.系统级安全管理包括注册和登录。

9.某文件系统中,针对每个文件,用户类别分为4类∶安全管理员、文件主、文件主的伙伴、其他用户;访问权限分为5种∶完全控制、执行、修改、读取、写入。若文件控制块中用 二进制位串表示文件权限,为表示不同类别用户对一个文件的访问权限,则描述文件权限的位数至少应为(20)。

10.设文件索引结点中有7个地址项,其中4个地址项是直接地址索引,2 个地址项是一级间接地址索引,1个地址项是二级间接地址索引,每个地址项大小为4B,若磁盘索引块和磁盘数据块大小均为256B,则可表示的单个文件最大长度是(1057KB)。
每个磁盘索引块和磁盘数据块大小均为256B,每个磁盘索引块有256/4=64个地址项。因此,4个直接地址索引指向的数据块大小为4×256B;2个一级间接索引包含的直接地址索引数为2×(256/4),即其指向的数据块大小为2×(256/4)×256B。1个二级间接索引所包含的直接地址索引数为(256/4)x(256/4),即其所指向的数据块大小为(256/4)x(256/4)×256B。因此,7个地址项所指向的数据块总大小为4×256+2×(256/4))x256+(256/4)×(256/4)×256=1082368B=1057KB。

11.一个文件系统中,其FCB占64B,一个盘块大小为1KB,采用一级目录。假定文件目录中有3200个目录项。则查找一个文件平均需要(100)次访问磁盘。
3200个目录项占用的盘块数为3200×64B/1KB= 200个。因为一级目录平均访盘次数为1/2 盘块数(顺序查找目录表中的所有目录项,每个目录项为一个FCB),所以平均的访问磁盘次数为200/2=100次。

12.利用顺序检索法查找完成后,即可得到文件的逻辑地址。

13.设有一个记录文件,采用链接分配方式,逻辑记录的固定长度为100B,在磁盘上存储时采用记录成组分解技术。盘块长度为 512B。若该文件的目录项已经读入内存,则对第 22个逻辑记录完成修改后,共启动了磁盘(6)次。
第22个逻辑记录对应4(22×100/512=4,余152)个物理块,即读入第5个物理块,由于文件采用的物理结构是链接文件,因此需要从目录项所指的第一个物理块开始读取,依次读到第4块才得到第5块的物理地址,共启动磁盘5次。修改还需要写回操作,由于写回时已获得该块的物理地址,只需1次访问磁盘,因此共需要启动磁盘6次。

14.在文件的索引结点中存放直接索引指针10个,一级和二级索引指针各1个。磁盘块大小为1KB,每个索引指针占4B。若某文件的索引结点已在内存中,则把该文件偏移量(按字节编址)为1234和307400处所在的磁盘块读入内存,需访问的磁盘块个数分别是(1,3)。
10个直接索引指针指向的数据块大小为10×1KB=10KB。每个索引指针占4B,则每个磁盘块可存放1KB/4B=256个索引指针,一级索引指针指向的数据块大小为256×1KB=256KB,二级索引指针指向的数据块大小为256×256×1KB=2KB=64MB。
按字节编址,偏移量为1234时,因 1234B<10KB,由直接索引指针可得到其所在的磁盘块地址。文件的索引结点已在内存中,因此地址可直接得到,因此仅需1次访盘即可。
偏移量为307400时,因10KB+256KB<307400B<64MB,可知该偏移量的内容在二级索引指针所指向的某个磁盘块中,索引结点已在内存中,因此先访盘2次得到文件所在的磁盘块地址,再访盘1次即可读出内容,共需3次访盘。

15.文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127号块中,每个盘块占1024B,盘块和块内字节均从0开始编号。假设要释放的盘块号为409612,则位图中要修改的位所在的盘块号和块内字节序号分别是(82,1)。
盘块号= 起始块号+[盘块号/(1024×8)]=32+[409612/(1024×8)]=32+50=82,这里问的是块内字节号而不是位号,因此还需除以8(1B=8位),块内字节号=[(盘块号%(1024×8))/8]=1。

16.下列选项中,可用于文件系统管理空闲磁盘块的数据结构是(ACD)。
A.位图 B.索引结点 C.空闲磁盘块链 D.文件分配表(FAT)

17.磁盘是分时共享的设备,但在每个时刻最多能有一个作业启动它。

18.光盘、U盘、磁盘既能顺序访问,又能随机访问。
磁带只能顺序访问。

19.磁盘上的文件以块为单位,读写也以块为单位。

20.系统总是访问磁盘的某个磁道而不响应对其他磁道的访问请求,这种现象称为磁臂黏着。下列磁盘调度算法中,不会导致磁臂黏着的是(A)。
A.先来先服务(FCFS)
B.最短寻道时间优先(SSTF)
C.扫描算法(SCAN)
D.循环扫描算法(CSCAN)
当系统总是持续出现某个磁道的访问请求时,均持续满足最短寻道时间优先、扫描算法和循环扫描算法的访问条件,会一直服务该访问请求。而先来先服务按照请求次序进行调度,比较公平,因此选A。

21.某文件系统的簇和磁盘扇区大小分别为1KB和512B。若一个文件的大小为1026B,则系统分配给该文件的磁盘空间大小是(2048B)。
绝大多数操作系统为改善磁盘访问时间,以簇为单位进行空间分配,因此答案选D。

猜你喜欢

转载自blog.csdn.net/Tracycoder/article/details/109393972