二十Summer

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

4.1.1 初识文件管理

文件---就是一组有意义的信息/数据集合。

一个文件有哪些属性:

  • 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件;
  • 标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称;
  • 类型:指明文件的类型;
  • 位置:文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见);
  • 保护信息:对文件进行保护的访问控制信息;
  • 大小;创建时间;上次修改时间;文件所有者信息等。

无结构文件(如文本文件)---由一些二进制或字符流组成,又称“流式文件”。

有结构文件(如数据库表)---由一组相似的记录组成,又称“记录式文件”,记录是一组相关数据项的集合。

操作系统向上(用户/应用程序)提供哪些功能? 创建文件(create系统调用),删除文件(delete系统调用),读文件(read系统调用),写文件(write系统调用),打开文件(open系统调用),关闭文件(close系统调用)。

读/写文件之前,需要“打开文件”;读/写文件结束之后,需要“关闭文件”。

可用几个基本操作完成更复杂的操作,比如:“复制文件”,先创建一个空的新文件,再把源文件读入内存,再将内存中的数据写到新文件中。

与内存一样,外存也是由一个个存储单元组成的,每个存储单元可以存储一定量的数据(如1B)。每个存储单元对应一个物理地址。类似于内存分为一个个“内存块”,外存会分为一个个“块/磁盘块/物理块”。每个磁盘块的大小是相等的,每块一般包含2的整数幂个地址(如本例中,一块包含2^10个地址,即1KB)。同样类似的是,文件的逻辑地址也可以分为(逻辑块号,块内地址),操作系统同样需要将逻辑地址转换为外存的物理地址(物理块号,块内地址)的形式。块内地址的位数取决于磁盘块的大小。

操作系统以“块”为单位为文件分配存储空间,因此即使一个文件大小只有10B,但它也可能占用1KB的磁盘块。外存中的数据读入内存时同样以块为单位。

 

 


 

4.1.2 文件的逻辑结构

所谓的“逻辑结构”,就是指在用户看来,文件内部的数据应该是如何组织起来的;而“物理结构”指的是在操作系统看来,文件的数据是如何存放在外存中的。

有结构文件:由一组相似的记录组成,又称“记录式文件”。每条记录由若干个数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项可作为关键字(作为识别不同记录的ID)。根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种。

顺序文件:文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存储。

一般来说,考试题目中所说的“顺序文件”指的是物理上顺序存储的顺序文件。

可见,顺序文件的缺点是增加/删除一个记录比较困难(如果是串结构则相对简单)。

索引文件

索引文件的索引表是用户自己建立的,从关键字到记录存放的逻辑地址的映射;

之后会讲到操作系统的索引分配,索引分配的索引表是操作系统建立的,从逻辑块号到物理块号的映射;

索引顺序文件

 

 


 

4.1.3 文件目录

目录本身就是一种有结构文件,由一条条记录组成。每条记录对应一个放在该目录下的文件。

目录文件中的一条记录就是一个“文件控制块(FCB)”,FCB的有序集合称为“文件目录”,一个FCB就是一个文件目录项。FCB中包含了文件的基本信息(文件名、物理地址、逻辑结构、物理结构等),存取控制信息(是否可读/可写、禁止访问的用户名单等),使用信息(如文件的建立时间、修改时间等)。

FCB实现了文件名和文件之间的映射。使用户(用户程序)可以实现“按名存取”。

 

 


 

4.1.4 文件的物理结构(上)

类似于内存分页,磁盘中的存储单元也会被分为一个个“块/磁盘块/物理块”,很多操作系统中,磁盘块的大小与内存块、页面的大小相同。

连续分配

优点:支持顺序访问和直接访问(即随机访问);连续分配的文件在顺序访问时速度最快(考虑磁头的移动);

缺点:不方便文件拓展;存储空间利用率低,会产生磁盘碎片。

链接分配

链接分配采取离散分配的方式,可以为文件分配离散的磁盘块,分为隐式链接和显式链接两种。

隐式链接---除文件的最后一个盘块之外,每个盘块中都存有指向下一个盘块的指针。文件目录包括文件第一块的指针和最后一块的指针。

优点:很方便文件拓展,不会有碎片问题,外存利用率高;

缺点:只支持顺序访问,不支持随机访问,查找效率低,指向下一个盘块的指针也需要耗费少量的存储空间。

显式连接---把用于链式文件各物理块的指针显式地存放在一张表中,即文件分配表(FAT, File Allocation Table)。一个磁盘只会建立一张文件分配表,开机时FAT放入内存,并常驻内存。

优点:很方便文件拓展,不会有碎片问题,外存利用率高,并且支持随机访问。相比于隐式链接来说,地址转换时不需要访问磁盘,因此文件的访问效率更高。

缺点:文件分配表需要占用一定的存储空间。

(如果题目中未指明隐式/显式链接,默认是隐式的)

 

 


 4.1.4 文件的物理结构(下) 

索引分配

(总结)

 

 


 

4.1.5 逻辑结构 VS 物理结构

 

 

 


 

4.1.6 文件的基本操作

(磁盘块的相关内容好像没学过诶。。。)

打开文件时不会把文件数据直接读入内存,而是将打开文件的索引号返回给用户,“索引号”也称文件描述符。

 

 


4.1.7 文件共享

 即使软链接指向的共享文件已被删除,link型文件依然存在,只是通过link型文件中的路径去查找共享文件会失败(找不到对应目录项)。

 

 

 

 


4.1.8 文件保护

优点:保密性强,不需要在系统中存储“密码”;

缺点:编码/译码,或者说加密/解密需要花费一定时间。

优点:实现灵活,可以实现复杂的文件保护功能。

 

 


 4.3.1 文件系统的层次结构

 

 


 

4.3.2 文件系统的全局结构(布局)

物理格式化,即低级格式化---划分扇区,检测坏扇区,并用备用扇区来替换坏扇区。

 

 


 

4.3.3 虚拟文件系统

虚拟文件系统的特点:

  ①向上层用户进程提供统一标准的系统调用接口,屏蔽底层具体文件系统的实现差异;

  ②虚拟实现接口要求下层的文件系统必须实现某些规定的函数功能,如:open/read/write。一个新的文件系统想要在某操作系统上被使用,就必须满足该操作系统虚拟文件系统的要求;

  ③没打开一个文件,虚拟文件系统就在主存中新建一个vnode,用统一的数据结构表示文件,无论该文件存储在哪个文件系统;(vnode只存在于主存中,而inode既会被调入主存,也会在外存中存储)

 

 


 

5.3.1 磁盘的结构

盘片可更换的称为可换盘磁盘,不可更换的称为固定盘磁盘。

 

 


 

5.3.2 磁盘调度算法

延迟时间和传输时间都与磁盘转速相关,且为线性相关。而转速是硬件的固有属性,因此操作系统也无法优化延迟时间和传输时间。但是操作系统的磁盘调度算法会直接影响寻道时间。

先来先服务算法(FCFS)

最短寻找时间优先(SSTF)

扫描算法(SCAN)

LOOK调度算法

循环扫描算法(C-SCAN)

C-LOOK调度算法

 

 


 

5.3.3 减少磁盘延迟时间的方法

所以为什么柱面号要在盘面号之前?这样的地址结构可以减少磁头移动消耗的时间。

 

 


5.3.4 磁盘的管理

 

 


 

5.3.5 固态硬盘SSD

U盘也是基于闪存技术。

固态硬盘的读写单位是页,页相当于磁盘的扇区,块相当于磁盘的磁道。

那如果只想改一个页怎么办呢?会再找个芯片,在新芯片的块中对应位置写新页内容,其余位置写旧页的内容,最后改变映射,原逻辑地址会映射到新物理地址。(该映射关系是可以改变的)

若发现某个块被擦除的次数太多了,下次又要写这个块,那么可以把这个逻辑地址的映射修改一下,把这个块的原本内容迁移到其他块。

 

posted on 2023-05-23 18:53  naiveSummer  阅读(35)  评论(0编辑  收藏  举报