当前位置:文档之家› 操作系统原理-第六章文件系统

操作系统原理-第六章文件系统

第六章文件系统** 知识点汇总1、文件、文件系统的概念⑴文件:是被命名的数据的集合体。

⑵文件系统:就是操作系统中负责操纵和管理文件的一整套设施,它实现文件的共享和保护,方便用户“按名存取”。

2、外存管理和文件系统概述(1)、外存是负责长期保存数据的所有存储部件的总称,如磁盘,磁带,光盘等。

操作系统的外存管理功能是操作系统中负责管理外存使用的那些功能的总称,负责管理和顽尘国外存使用中所有硬件相关和应用无关的工作,为用户使用外存提供方便服务,高校和安全管理。

(2)、外存硬件接口特性外存的作用:✧用来永久或长期存放数据。

✧作为盘交换区——作为内存后备存放当前运行程序和数据。

外存的种类:✧联机外存:硬盘✧脱机外存:光盘,软盘,磁带,U盘外存的主要涉及标准和性能指标:密度,速度,容量,体积,成本,便携性,可重写性和可重用性等。

存储容量分为非格式化容量和格式化容量。

一般格式化容量是非格式化容量的80%格式化分为:高级格式化(仅删除数据),低级格式化。

✧高级格式化,清除硬盘上的数据、生成引导区信息、初始化FAT表、标注逻辑坏道等✧低级格式化,就是将空白的磁盘划分出柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识部分ID、间隔区GAP和数据区DATA等。

硬盘的低级格式化是高级格式化之前的一件工作,目前所有硬盘厂商在产品出厂前,已经对硬盘进行了低格化的处理,因此我们新购买的硬盘在装系统时只需要进行高级格化的过程,来初始化FAT表,进行分区操作。

硬盘的低级格式化过程是一种损耗性操作,对硬盘的使用寿命会产生一定的负面作用。

外存设备都由驱动控制部分和存储介质两部分组成。

✧存储介质与驱动器都固定:硬盘✧驱动器固定但存储介质不固定:光盘,软盘✧驱动器和存储介质都不固定:移动硬盘,U盘等大多数系统将设备驱动控制部件中的大部分电子控制部分分离出来构成设备控制器,而设备驱动器只剩下机械驱动部分和简单的电子控制电路。

设备控制器决定设备与计算机间的逻辑联系,一个设备控制其可以同时控制多个设备驱动器。

硬盘的结构硬盘内由设备驱动器及存储介质组成。

其存储介质是磁盘。

磁盘表面被划分为若干个同心圆,每个同心圆成为一个磁道。

每一磁道划分为几个扇区(通常每个扇区存放512B)。

每个扇区间都留出一定的空间用来记录扇区标记。

用扇区作为最小寻址单位和存取单位。

寻址时磁盘转动,磁头移动到目标磁道,磁头通过读取并判断扇区标记,来确定和等待指定扇区,当目标扇区从磁头下顺序经过,读取相应扇区内的内容。

通过增加磁盘数,及每个磁盘都正反两面都涂以磁性材料,来增加容量。

所有盘面中处于同一磁道号上的所有磁道组成一个柱面。

读写同一个柱面的数据,不需要移动磁头,故通常将同一文件内容分配在同一柱面上,以节省访盘时间。

对主机提供的接口是:“读/写,磁盘地址(设备号,柱面号,磁面号,扇区号),内存地址”。

当接收到一个访盘请求时,由以下三个步骤:✧寻道,磁头移动到指定磁道(寻道时间)✧等待扇区从磁头下经过(延迟时间)✧数据在磁盘与内存间传送(传送时间)访盘时间=寻道时间+延迟时间+大胆地硬盘分为固定磁头和移动磁头两种。

固定磁头同一盘面上每个磁道设置一个磁头,所以节省了寻道时间,但成本昂贵。

移动磁头,每个盘面仅一个磁头,成本低。

(3)用户对外存的使用要求✧在存取外存上的数据是,不希望解除和涉及外存物理空间地址和存取单位,外存设备接口地址,等物理硬件细节。

而是采用符合用户习惯的逻辑地址于逻辑操作。

✧外存上存放的信息安全可靠,防止来自硬件的故障和来自他人的侵权。

✧可以方便地共享,动态伸缩,拆卸携带,了解存取请款共和使用情况等。

✧以最小代价完成上述任务。

(4 )文件定义及文件系统的工作界面文件系统提供了:文件子系统,目录,文件,文件内字节,这4个层次上的操作。

文件是操作系统提供的,是用户观点中期内容具有连续顺序关系的最大外存逻辑数据空间。

3、文件系统用户界面(1)文件级界面:文件属性和文件操作每个文件都拥有文件名。

操作系统为每个文件名与该文件在外存中存放位置间建立对应关系。

在多用户环境下,操作系统还需为每个文件建立和维护文件主和访问权限等信息。

文件属性信息包括文件名,文件主,访问权限以及文件类型,文件长度等。

这些信息不属于文件本身的内容,但是用户需要由操作系统来保存这些属性。

并提供查询这些属性的操作。

对文件本身内容的读写。

操作系统在操作级和编程级都提供了相应的操作。

编程级:提供读写文件的系统调用,内存映像文件方式的读写操作。

文件的打开:int open( const char * pathname, int flags);参数pathname 指向欲打开的文件路径字符串。

参数flags 所使用的用宏定义的值:O_RDONL Y 以只读方式打开文件O_WRONL Y 以只写方式打开文件O_RDWR 以可读写方式打开文件上述三种是互斥的,也就是不可同时使用,下列的可以利用OR(|)运算符组合O_CREAT 若欲打开的文件不存在则自动建立该文件。

O_EXCL 如果O_CREAT 也被设置,此指令会去检查文件是否存在。

文件若不存在则建立该文件,否则将导致打开文件错误。

此外,若O_CREAT与O_EXCL同时设置,并且欲打开的文件为符号连接,则会打开文件失败。

O_NOCTTY 如果欲打开的文件为终端机设备时,则不会将该终端机当成进程控制终端机。

O_TRUNC 若文件存在并且以可写的方式打开时,令文件长度清为0,而原来存于该文件的资料也会消失。

O_APPEND 当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到文件后面。

该函数返回值称为文件句柄或文件描述字(file descriptor),之后文件的读写,用该文件句柄来指定该文件,而不再使用文件的文件名。

文件的打开,可以理解为一种权限许可。

即检查文件是否存在,用户对该文件是否具备相应操作的权限,以及检查文件共享的许可。

操作系统在读写文件的系统调用中,提供文件当前读写指针机制。

文件打开时,该指针指向文件首字节,在执行读写系统调用后,指针指向港读写过的最后一个字符的下一个字符。

同时还提供了改变当前读写指针的系统调用。

off_t lseek(int fildes,off_t offset ,int whence);每一个已打开的文件都有一个读写位置,当打开文件时通常其读写位置是指向文件开头,若是以附加的方式打开文件(如O_APPEND),则读写位置会指向文件尾。

当read()或write()时,读写位置会随之增加,lseek()便是用来控制该文件的读写位置。

参数fildes 为已打开的文件描述词,参数offset 为根据参数whence来移动读写位置的位移数。

whence为下列其中一种:SEEK_SET 参数offset即为新的读写位置。

SEEK_CUR 以目前的读写位置往后增加offset个位移量。

SEEK_END 将读写位置指向文件尾后再增加offset个位移量。

当whence 值为SEEK_CUR 或SEEK_END时,参数offet允许负值的出现。

1) 欲将读写位置移到文件开头时:lseek(int fildes,0,SEEK_SET);2) 欲将读写位置移到文件尾时:lseek(int fildes,0,SEEK_END);3) 想要取得目前文件位置时:lseek(int fildes,0,SEEK_CUR);当调用成功时则返回目前的读写位置,也就是距离文件开头多少个字节。

若有错误则返回-1。

操作系统通常还提供了通配符机制,以便于利用文件命名共性对文件分类分组,对一组文件同时进行操作。

(2)目录级界面:目录(树)和链接。

用户需要一个清单,列出在外存中存放着哪些文件,操作系统自动建立和维护这个清单,这个清单称之为目录。

若外存中所有的文件用一个目录来表示,则该目录是单级目录。

当外存上同时存放的文件数量越来越多,单级目录查找起来就十分麻烦,为此操作系统引入多级目录机制。

反映了文件的分类关系。

采用树状结构来表示这种多级分类机制。

提供了一组相应的目录操作,目录建立,目录删除,设置当前目录等。

有的操作系统允许一个文件同时属于多个目录,但实际上该文件只有一处物理存储。

这种在一处存储,多处出现的文件和目录间的关系,称为链接(Link)避免了重复存储冗余浪费和数据不一致性。

不用每次使用共享文件都要写出路径名。

用户可以按照自己的需要,习惯,来给文件命名。

为用户程序中对共享文件的使用提供了灵活性,适应性,兼容性。

还可以使一个用户程序能够根据本次运行时的调用名来决定本次运行的工作方式。

链接分为:硬链接和符号链接(软链接)。

两者在实现机制上不相同。

(3)文件子系统级用户界面文件子系统,通常称为卷,是满足以下特性的一个外存区域。

该区域的空闲空间信息也存放在该区域内。

该区域中所存放的文件和目录的属性信息业存放在该区域内。

该区域可能是一个外存介质,也可能是一个外存介质的一部分外存区域。

为什么需要多个文件子系统?不同访问权限的区域划分在不同的分区中。

需要不同的分区,来存放不同的操作系统及其管理文件。

便于移动存储文件子系统的建立(格式化)硬盘格式化过程低格,运行fdisk命令,在每个磁面上划分与标记磁道和扇区,标出坏扇区,划分和建立分区。

高格,运行format命令,对指定分区进一步划分成几个区域,有的存放文件内容,有的存放文件属性信息,有的存放目录信息,有的存放总信息。

4 文件的实现(1)连续分配背景下的讨论最简单背景下(单介质,单级目录,文件连续分配)的文件系统实现机制。

连续分配(continuous allocation)策略是指每个文件在存储介质上是无力连续存放的,即每个文件在存储介质上占据连续的物理块号,并在其中连续顺序存放。

1)、最简单背景下文件操作流程和所需管理信息最基本的操作:读文件(文件名,文件内起始读位置,要读的长度,目标地址)写文件(文件名,文件内起始下位置,要写的长度,目标地址)建立文件(文件名)删除文件(文件名)所需的管理信息:文件名,文件主,全县,文件在外存上的物理位置(称为文件内地址映射信息,指出文件占据的总块数和起始块号即可),文件操作时间记录等。

称为文件描述信息或文件管理信息。

平时存放在外存上,用时读入内存。

所需的管理信息:写文件时文件按长度可能发生增减,因此需要申请或释放空闲盘块,故操作系统需要建立和维护盘空闲空间信息。

效率上的初步考虑:盘空闲空间信息等盘卷总信息,是被频繁访问修改的,所以通常在开机后马上进入内存,并常驻内存。

用户程序在使用一个文件时,通常要对该文件进行多次读写,每次读写都要用到该文件的文件描述信息,故通常在用户使用一个文件期间,该文件的文件描述信息一直驻留内存,直到用不再使用该文件。

相关主题