您现在的位置是:首页 >技术教程 >操作系统——文件管理网站首页技术教程
操作系统——文件管理
0.关注博主有更多知识
目录
9.1文件系统概念
文件的定义:
文件是计算机信息存取的一种重要组织形式,文件由若干信息项有序构成,信息项可以是一个字节,也可以是结构化的数据(多字节)。用户通过读写指针来存取文件的信息项;文件具有文件名,用户通过文件名存取文件
文件的分类:
1.按用途分类:
1)系统文件:包括操作系统的可执行程序和数据文件,这种文件对用户不开放,仅供操作系统使用
2)库文件:操作系统为用户提供的各种标准函数库和实用程序等,用户只能使用这些文件,而无权对其进行修改
3)用户文件:由用户创建的文件,例如用户创建的可执行文件、源文件、数据文件等等,这种文件的使用和修改权均属于用户
2.按操作权限分类:
1)只读文件:只允许进行读操作的文件
2)读写文件:读写操作都允许的文件
3)不保护文件:没有任何权限限制的文件
3.按文件的性质分类:
1)普通文件:指一般的用户或操作系统文件
2)目录文件:记录目录里面文件列表的信息,例如文件名、文件存放地址、文件属性......实际上文件并不存储在目录当中,目录只负责记录文件的各项属性
3)设备文件:在一些操作系统当中,把设备作为文件管理和使用,例如Linux
文件的属性:
在Windows中,我们可以通过可以随时查看文件的属性:
文件属性指定文件的类型、操作特性和存取保护等一组信息;文件属性存放在所在目录的目录文件中,也就是说,文件本身并不存储任何有关于自己本身属性的信息,所有的属性信息都存放在了所在目录的目录文件中。在MS-DOS操作系统当中,文件属性占目录项的一个字节(目录也是一个文件,所以目录也有信息项),例如[00000001]表示只读只读,[00000010]表示隐藏属性......
如何证明文件本身不存储自己的属性信息呢?在Windows中,我们创建一个空文件,即没有任何内容的文件,其大小为0:
文件系统:
1.定义:负责管理文件的机构称为文件系统
2.功能:负责文件的创建、删除、读写、修改、复制和存取控制等行为,并管理存放文件的存储设备(即管理磁盘、硬盘......)
3.目的:文件系统的目的就是让用户以文件名来存储文件
文件的结构:
1.记录式文件:文件的信息项是结构化的数据。例如学生花名册文件包含若干个学生记录,每条记录记录有学生的姓名、学号、性别等等,每条记录都对应一个信息项,文件的头部需要保存文件的长度和数量等说明信息。记录式文件的缺点就在于浪费存储空间
2.流式文件:文件的信息项是字节,文件的长度就是字节的数量。其优点在于无需额外的说明信息和控制信息并且节省存储空间
3.现代操作系统当中的文件都是流式文件,由应用程序解释和处理文件。例如".cpp"源文件,记事本也可以打开它,Visual Studio编译器也可以打开它,但是这两款应用程序对该源文件的解释不同,以至于给用户呈现不同的效果:
文件的存取方法:
1.顺序存取:按文件信息项排列顺序依次存取。文件打开时,读写指针指向第一个信息项,每存取一个信息项,读写指针自动向后跳转一个信息项,即存取下一个位置的信息项
2.随机存取:存取操作时指定存取的位置。对流式文件或定长的记录式文件的存取位置比较容易确定;而不定长记录式文件定位存取位置比较麻烦
思考题:
1.计算机中还有哪些重要的信息存储方式?
除了文件以外,还有数据库、寄存器、高速缓存、U盘等等。
9.2文件的物理结构
文件物理结构指的是存储设备上的存储方式,强调合理利用存储空间,并缩短I/O的存取时间。文件的存储方式分为连续文件、索引结构、串联文件。
连续文件:
1.概念:文件按逻辑块的顺序存放在硬盘连续的物理存储块中,文件目录记录了文件长度(块数)和第一个存储块的块号:
2.优点:简单、支持顺序存取和随机存取;顺序存取速度快,其所需磁盘寻道次数和寻道时间最少
3.缺点:文件不易于动态增长,如果预留空间则会造成浪费,不预留就可能导致存储空间重新分配和移动;不利于文件插入和删除(不利于动态增长);外部碎片问题
索引文件:
1.概念:文件存放在不连续的存储块中,建立索引表记录文件逻辑块和物理存储块的对应关系,目录中的索引块就是索引表,并且是单独存储的。
2.特点:文件=索引区+数据区;先访问索引,再访问数据;支持顺序存取和随机存取;支持文件的动态增长、插入、删除。
串联文件:
1.概念:文件存放在不连续的存储块中,每个存储块有一个指针(next),指向文件的下一个存储块;文件目录指明文件名和第一个存储块的块号。串联文件就类似于带头链表,文件目录为头
2.特点:适用于顺序存取,随机存取较为困难;提高了磁盘空间利用率,不存在外部碎片问题;有利于文件的动态扩充、插入和删除
3.缺点:存取速度慢、不适合随机存取;若next出错,则访问文件失败,即可靠性不强;next指针占用一定的空间
4.应用:典型的应用为FAT文件系统
思考题:
1.索引文件和串联文件有何异同?它们的优点各自是什么?
索引文件存储内容物理结构上不连续,需要索引表找到内容所在的物理地址,优点是索引所占内存空间较小,利用率较高。而串联文件利用链表数据结构将文件内容串联起来,需要增加内存用于指针上,降低内存使用效率,优点是查找较快。同:他们都是物理存储结构不连续方式。
9.3文件存储和目录
存储空间管理:
1.功能:记录磁盘使用情况,管理和分配、回收存储空间
2.记录磁盘空闲块的方法:空闲文件目录、空闲块链、位示图
3.空闲文件目录:
1)空闲文件:把连续空闲区看成一个特殊文件,这个特殊文件由多个连续的空闲块组成
2)空闲文件目录:所有空闲文件代表存储设备的全部空闲空间,为这些空闲文件建立专门的目录,即空闲文件目录,每个信息项对应一个空闲文件,包括第一个空闲块号、空闲块个数等信息
4.空闲块链:把所有空闲块以链表的形式链接在一起,当申请者需要空闲块时,链头开始搜索所需空闲块;当回收空闲块时,把释放的空闲块逐个加在链尾
5.位示图:从内存中划出若干个字节,每一比特位表示一个存储块的空闲或占用状态。1表示空闲,0表示被占用
文件目录管理:
1.文件目录:文件名址录,即记录文件名和存放地址的目录;具有将文件名转换为外存物理位置的功能;文件属性也记录在目录中
2.目录文件:文件目录以目录的形式存储在外存设备,这个文件称为目录文件
3.目录结构:不同的文件系统文件按目录的组织也不完全相同,例如DOS操作系统的文件目录就有32个字节,然后被划分成了不同的区域:
在UNIX当中,使用的是索引节点,即文件目录项的文件名和其他属性信息分开,后者单独组成一个定长数据结构,即索引节点i_node。这部分内存将在Linux系统编程中讲解
主流的目录结构为单级目录、二级目录、多级目录,其中多级目录是以树组织而成的数据结构,并且也是现代操作系统使用的目录结构。
文件全名和路径:
1.文件的全名:文件的全名包括从根目录开始到文件为止的通路上的所有子目录路径,子目录之间用"/"或""隔开,子目录名组成的部分又称为路径名。每个文件都有唯一的路径名
2.两种路径名形式:绝对路径名:从根目录到指定的文件;相对路径名:从当前目录直到指定的文件。
3.Linux文件目录:
文件的保护:对文件的访问,文件系统首先要检查访问权限:
1.仅允许执行(E)
2.仅允许读(R)
3.仅允许写(W)
4.仅允许在文件尾写(A)
5.仅允许对文件进行修改(U)
6.允许改变文件的存取权限(C)
7.允许取消文件
以上所有的文件权限可以随机组合
文件和目录的操作:目录虽然也可以看作文件,但是目录可做的操作比普通文件少:
1.文件操作:创建文件、删除文件、写文件、读文件、定位文件、截短文件、属性设置和读取
2.目录操作:目录只能创建和删除
典型的文件系统:微软公司常使用FAT16、FAT32、NTFS......而Linux常用的文件系统为EXT2、EXT3、EXT4......