操作系统理论 第七章(文件管理)—第一节(文件和文件系统)

本文围绕计算机操作系统中的文件管理展开,介绍了数据项、记录、文件的概念,详细阐述了文件名、类型、系统结构以及基本操作,包括创建、删除、读写和权限控制。同时涵盖了文件系统的层次结构和接口,以及常用的文件操作和系统调用。
摘要由CSDN通过智能技术生成

写在前面:

  1. 本系列笔记主要以《计算机操作系统(汤小丹…)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
  2. 视频链接:操作系统(汤小丹等第四版)_哔哩哔哩_bilibili

一、概述

        在现代计算机系统中,要用到大量的程序和数据,由于内存容量有限,且不能长期保存,故而平时总是把他们以文件的形式存放在外存中,需要时调入内存,但用户不能够胜任管理文件的工作,于是在OS中又增加了文件管理功能,构成一个文件系统,负责管理在外存上的文件,把文件的存取、共享和保护等手段提供给用户,方便了用户,保证了文件的安全,提高了系统资源的利用率。

        文件系统的管理功能是将其管理的程序和数据通过组织为一系列文件的方式实现的,而文件则是指具有文件名的若干相关元素的集合,元素通常是记录,而记录又是一组有意义的数据项的集合。

二、数据项、记录和文件

1、数据项

(1)在文件系统中,数据项是最低级的数据组织形式,可把它分成以下两种类型:

①基本数据项。这是用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位(原子数据),又称为字段,例如用于描述一个学生的基本数据项有学号、姓名、年龄、所在班级等。

②组合数据项。由若干个基本数据项组成,简称组项。

(2)基本数据项除了数据名外,还应有数据类型,因为基本项仅描述某个对象的属性。根据属性的不同,需要用不同的数据类型来描述,例如在描述学生的学号时应使用整数,描述学生的姓名则应使用字符串(含汉字),描述性别时可用逻辑变量或汉字。

2、记录

(1)记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。一个记录应包含哪些数据项,取决于需要描述对象的哪个方面。

(2)在诸多记录中,为了能唯一地标识一个记录,必须在一个记录的各个数据项中确定出一个或几个数据项,把它们的集合称为关键字(key),或者说,关键字是唯一能标识一个记录的数据项。通常只需用一个数据项作为关键字。

3、文件

(1)文件是指由创建者所定义的、具有文件名的、以计算机硬盘为载体存储在计算机上的一组相关元素的集合,在文件系统中是一个最大的数据单位。

(2)文件可分为有结构文件和无结构文件两种,在有结构的文件中,文件由若干个相关记录组成,而无结构文件则被看成是一个字符流。

(3)文件属性可以包括:

①文件类型。可以从不同的角度来规定文件的类型,如源文件、目标文件及可执行文件等。

②文件长度。文件长度指文件的当前长度,长度的单位可以是字节、字或块,也可能是最大允许的长度。

③文件的物理位置。该项属性通常用于指示文件所在的设备及所在设备中地址的指针。

④文件的建立时间。这是指最后一次的修改时间等。

三、文件名和类型

1、文件名和扩展名

(1)文件名。在不同的系统之间,对文件名的规定是不同的。

(2)扩展名。扩展名是添加在文件名后面的若干个附加字符,又称为后缀名,用于指示文件的类型,它可以方便系统和用户了解文件的类型,是文件名中的重要组成部分。

(3)在大多数系统中,用圆点“.”将文件名和扩展名分开。

2、文件类型

(1)根据文件的性质和用途的不同,可将文件分为三类:

①系统文件,这是指由系统软件构成的文件。大多数的系统文件只允许用户调用但不允许用户去读,更不允许修改,有的系统文件甚至不直接对用户开放。

②用户文件,指由用户的源代码、目标文件、可执行文件或数据等所构成的文件,用户将这些文件委托给系统保管。

③库文件,这是由标准子例程及常用的例程等所构成的文件,这类文件允许用户调用,但不允许修改。

(2)按文件中数据的形式分类:

①源文件,这是指由源程序和数据构成的文件,通常由终端或输入设备输入的源程序和数据所形成的文件都属于源文件,它通常是由ASCII码或汉字所组成的。

②目标文件,这是指把源程序经过编译程序编译过,但尚未经过链接程序链接的目标代码所构成的文件,所使用的后缀名是“.obj”。

③可执行文件,这是指把编译后所产生的目标代码经过链接程序链接后所形成的文件,其后缀名是“.exe”。

(3)系统管理员或用户所规定的存取控制属性,可将文件分为三类:

①只执行文件,该类文件只允许被核准的用户调用执行,不允许读和写。

②只读文件,该类文件只允许文件主及被核准的用户去读,不允许写。

③读写文件,这是指允许文件主和被核准的用户去读或写的文件。

(4)根据文件的组织形式和系统对其处理方式的不同,可将文件分为三类:

①普通文件,是由ASCII码或二进制码组成的字符文件,一般用户建立的源程序文件、数据文件以及操作系统自身代码文件、实用程序等都是普通文件。

②目录文件,是由文件目录组成的文件,通过目录文件可以对其下属文件的信息进行检索,对其可执行的文件进行操作,与普通文件一样。

③特殊文件,特指系统中的各类I/O设备。为了便于统一管理,系统将所有的I/O设备都视为文件,并按文件方式提供给用户使用,如目录的检索、权限的验证等都与普通文件相似,只是对这些文件的操作将由设备驱动程序来完成。

四、文件系统的层次结构(简略版)

1、对象及其属性

(1)文件。在文件系统中有着各种不同类型的文件,它们都作为文件管理的直接对象。

(2)目录。为了方便用户对文件的存取和检索,在文件系统中必须配置目录,在目录的每个目录项中必须含有文件名、对文件属性的说明,以及该文件所在的物理地址(或指针)。对目录的组织和管理,是方便用户和提高对文件存取速度的关键。

(3)磁盘(磁带)存储空间。文件和目录必定占用存储空间,对这部分空间的有效管理不仅能提高外存的利用率,而且能提高对文件的存取速度。

2、对对象操纵和管理的软件集合

(1)该层是文件管理系统的核心部分,文件系统的功能大多是在这一层实现的,其中包括有:对文件存储空间的管理、对文件目录的管理、用于将文件的逻辑地址转换为物理地址的机制、对文件读和写的管理、对文件的共享与保护等功能。

(2)一般地,把与文件系统有关的软件分为四个层次,分别为:I/O控制层、基本文件系统层、基本I/O管理程序、逻辑文件系统。

3、文件系统的接口

(1)命令接口,是指作为用户与文件系统直接交互的接口,用户可通过键盘终端键入命令取得文件系统的服务。

(2)程序接口,是指作为用户程序与文件系统的接口,用户程序可通过系统调用取得文件系统的服务。

五、文件系统的层次结构(详细版)

1、层次模型图

2、各部分的功能

(1)用户接口:文件系统为用户提供与文件及目录有关的调用,如新建、打开、读写、关闭、删除文件,建立、删除目录等。此层由若干程序模块组成,每一模块对应一条系统调用,用户发出系统调用时,控制即转入相应的模块。

(2)文件目录系统:文件目录系统的主要功能是管理文件目录,其任务有管理活跃文件目录表、管理读写状态信息表、管理用户进程的打开文件表、管理与组织在存储设备上的文件目录结构、调用下一级存取控制模块。

(3)存储控制模块:实现文件保护主要由该级软件完成,它把用户的访问要求与FCB中指示的访问控制权限进行比较,以确认访问的合法性。

(4)逻辑文件系统与文件信息缓冲区:逻辑文件系统与文件信息缓冲区的主要功能是根据文件的逻辑结构将用户要读写的逻辑记录转换成文件逻辑结构内的相应块号。

(5)物理文件系统:物理文件系统的主要功能是把逻辑记录所在的相对块号转换成实际的物理地址。

(6)设备管理模块:设备管理模块的主要功能是分配设备、分配设备读写用缓冲区、磁盘调度、启动设备、处理设备中断、释放设备读写缓冲区、释放设备等。

3、举例

(1)用户要查看文件F中的内容,对操作系统发出命令(操作系统有面向用户的接口),于是就经过了第一层的用户调用接口。

(2)操作系统得到命令后,需要查找目录以查找文件F的索引信息,可能是FCB,也可能是索引结点,经过了第二层文件目录系统。

(2)通过目录找到文件FCB后,需要查看文件FCB上的信息,看看那个用户有没有访问该文件的权限,于是经过了存取控制验证层。

(3)用户通过验证后开始寻址,操作系统的寻址往往要先得到逻辑地址,再得到物理地址,于是,在开始寻址的时候,操作系统经过了逻辑文件系统与文件信息缓冲区得到了相应文件的内容的逻辑地址。

(4)把逻辑地址转换为物理地址,是在物理文件系统中完成的,至此为止,寻址就完成了。

(5)寻址完成以后,如果要释放这块空间,那么任务就交给辅助分配模块,如果要把这块空间分配给设备用于输入输出,那么就把任务交给设备管理程序模块。

六、文件操作

1、最基本的文件操作

(1)创建文件。在创建一个新文件时,要为新文件分配必要的外存空间,并在文件目录中为之建立一个目录项,目录项中应记录新文件的文件名及其在外存的地址等属性。

(2)删除文件。在删除时,应先从目录中找到要删除文件的目录项,使之成为空项然后回收该文件所占用的存储空间。

(3)读文件。在读文件时,根据用户给出的文件名去查找目录,从中得到被读文件在外存中的位置;在目录项中,还有一个指针用于对文件的读/写。

(4)写文件。在写文件时,根据文件名查找目录,找到指定文件的目录项,再利用目录中的写指针进行写操作。

(5)设置文件的读/写位置。前面所述的文件读/写操作,都只提供了对文件顺序存取的手段,即每次都是从文件的始端进行读或写;设置文件读/写位置的操作,通过设置文件读/写指针的位置,以便读/写文件时不再每次都从其始端,而是从所设置的位置开始操作,因此可以改顺序存取为随机存取。

2、文件的“打开”和“关闭”操作

(1)每个进程都有自己的打开文件表用来记录打开的文件,另外系统中也有一张总的打开文件表。

(2)所谓“打开”是指系统将指名文件的属性(包括该文件在外存上的物理位置)从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(或称为索引号)返回给用户,此后,用户可通过该连接直接得到文件信息,从面避免了再次通过目录检索文件,即当用户再次向系统发出文件操作请求时,系统根据用户提供的索引号可以直接在打开文件表中查找到文件信息,这样不仅节省了大量的检索开销,也显著地提高了对文件的操作速度。

(3)如果用户已不再需要对该文件实施相应的操作。可利用“关闭”系统调用来关闭此文件,即断开此连接,OS将会把该文件从打开文件表中的表目上删除掉。

3、其它文件操作

        OS为用户都提供了一系列文件操作的系统调用,其中最常用的一类是有关对文件属性的操作,即允许用户直接设置和获得文件的属性,如改变已存文件的文件名、改变文件的拥有者(文件主)、改变对文件的访问权,以及查询文件的状态(包括文件类型、大小和拥有者以及对文件的访问权等);另一类是有关目录的操作,如创建一个目录,删除一个目录,改变当前目录和工作目录等。此外,还有用于实现文件共享的系统调用,以及用于对文件系统进行操作的系统调用等。

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zevalin爱灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值