这一章讲的很快,我在这里不一定能弄全,希望各位能够进行补充
一、文件概念
1、操作系统提供了信息存储的统一逻辑接口
2、文件是记录在外存上的相关信息的具有名称的集合
3、操作系统对存储设备的各种属性加以抽象并且定义了逻辑存储单元(文件),再将文件映射到物理设备上。
4、通常,文件表示程序和数据
(一)、文件属性
1、名称:有些OS区分大小写(如Linux,Unix),有些不区分(如DOS, Windows)
2、类型:由OS和程序定义
3、位置:指向设备和设备上文件位置的指针
4、大小:文件当前大小(以字节、字或块来表示)
5、保护:决定谁能读、写、执行等的访问控制信息
6、时间、日期和用户标识:文件创建、上次修改和上次访问都可能有该信息。用于保护、安全和使用跟踪
7、文件的信息被保存在目录结构中,而目录结构也保存在外存上
(二)、文件操作
1、创建文件
①在文件系统中为文件找到空间
②在目录中为新文件创建一个条目
2、写文件
3、读文件,一般当前操作位置可作为每个进程当前文件位置指针
4、在文件内重定位
5、截短文件:只删除文件内容而保留其属性,而不是强制用户删除文件再创建文件。
6、删除文件:在目录中搜索给定名称的文件,找到相关目录条目后,释放所有的文件空间以便其他文件使用,并删除相应目录条目。
7、打开文件需要有如下信息:
①文件指针:系统必须跟踪上次读写操作的位置作为当前文件位置指针
②文件打开计数器:跟踪打开和关闭文件的数量,在最后关闭的时候计数器为0,此时系统可删除该条目
③文件磁盘位置:用于定位磁盘上文件位置的信息保存在内存中以避免每个操作从磁盘中读取信息
④访问权限:每个进程用一个访问模式打开文件,保存在单个进程打开的文件表中,以便操作系统能允许或拒绝以后的I/O请求
(三)、文件类型
1、如果OS识别文件类型,那么它就能按合理方式对文件进行操作。
2、实现文件类型的常用技术是在文件名称内包含类型,如:名称和扩展名
3、文件有一个创建者属性,用来包含创建它的程序名称。当用户双击表示该文件的图标来打开文件时,就会自动调用相应的程序。
4、unix系统采用幻数来表明文件类型:可执行程序、批处理文件(shell脚本)、postscript文件。但不是所有的文件都有幻数。
(四)、文件结构
1、每个应用程序必须有自己的代码对输入文件进行合适的解释。但所有的OS必须至少支持一种结构,即可执行文件结构,以便能装入和运行程序。
2、可通过在第一种表示方法中插入适当的控制字符来模拟后两种表示方法
3、文件的结构由以下两者来决定:
①OS
②程序
二、访问方法
1、顺序访问:最简单的访问方式,文件信息按顺序,一个记录接着一个记录地加以处理,编辑器和编译器通常采用这种方式访问文件,被称为磁带模型。读操作读取下一文件位置,并自动前移文件指针,写操作会像文件尾部增加内容,相应的文件指针移动到新增数据之后
2、直接访问:文件由固定长度的逻辑记录组成,以允许程序按任意顺序进行快速读与写,被称为磁盘模型,文件可作为块或记录的编号序列,数据库一般采用这种。由用户想操作系统提供的块号一般为相对块号,是相对于文件开始的索引。
3、其他访问方式:一般是建立在直接访问方式之上的,通常涉及创建文件索引,包含各块的指针。为了查找文件中的记录,先搜索索引,再根据指针直接访问文件。
三、目录结构
1、磁盘可以整体的用作一个文件系统,但有时需要分成多区或片,称为小型磁盘。可以将存储文件系统的一大块存储空间作为卷,卷可以存放多个操作系统,是系统启动和运行多个操作系统。
2、包含文件系统的每个卷还必须包含系统上文件的信息,保存在设备目录(简称目录)或卷表中。
3、目录是包含所有文件信息的节点的集合
4、设备目录包含的信息:名称、类型、地址、当前长度、最大长度、最近访问日期、最近更新日期、用户标志号、保护信息
5、目录可以看做符号表,他能将文件名称转换成目录条目,相关操作有:
①搜索文件:能够搜索目录结构以查找特定文件的条目
②创建文件:可以创建新文件并加入到目录中
③删除文件
④遍历条目:能遍历目录内所有文件以及其目录中每个文件条目的内容
⑤跟踪文件系统:访问每个目录和每个目录的每个文件
(一)、单层结构目录
1、所有文件都包含在同意目录中,便于支持和理解,但存在命名问题与分组问题
2、每个文件必须拥有唯一名称,不可重名
3、文件条目过多时,难以记住所有文件的名称
(二)、双层结构目录
1、为不同的用户建立不同的目录:
①不同用户的文件允许同名
②不支持分组
③方便查找
2、每个用户有自己的用户文件目录UFD,每个UFD有相似的结构,但只列出了单个用户的文件。当一个用户作业开始执行或一个用户注册的时候,就搜索系统的主文件目录MFD,通过用户名找到相应的位置,然后引向该用户的UFD以查找该用户的文件
(三)、树形目录
1、允许用户创建自己的子目录,相应地组织文件。
2、系统内每个文件有唯一的路径名
3、路径名有两种方式:
①绝对路径:从根目录开始给出路径上的目录名直到所指定的文件
②相对路径:从当前目录开始定义路径
4、创建文件与目录通常在当前目录中进行
5、个人理解是这样的,单层结构目录是我们写操作系统的时候,最开始的只是将所有的文件摆在一起,这个时候文件名自然不能一样;双层结构实际上也差不多,结伴上相当于我们将我们所写的文件按照不同的属性(功能也好名称也好)分成了多个文件夹,这个时候每个文件夹的文件互不干扰;而树形结构就是我们现在的操作系统对文件进行分类的情况,有多个盘,每个盘下面有多个文件夹,文件夹也可以嵌套文件夹等。
(四)、无环图目录
1、要求子目录可以进行共享,共享目录或文件可以位于文件系统的两处或者多出。
2、树形结构禁止共享文件和目录,无环图允许同一个文件或子目录可出现在两个不同目录中,是树形结构的拓展。
3、不同文件名可能表示同一文件。对于查找与统计来说可能会带来一定的问题
4、删除的时候可能出现问题
(五)、通用图目录
1、如何确保无环?
①只允许链接发生在文件,而非子目录上
②垃圾收集:自我引用的文件,其引用计数不等于0;垃圾收集涉及遍历整个文件系统,并标记所有可访问的空间。然后,第二次将所有没有标记的部分收集到空闲空间链表上。
③每当新链接建立的时候,就采用相应的算法进行检测,以避免环的出现。
四、文件系统安装
1、文件系统在访问之前必须已安装好。
2、尚未安装的文件系统必须安装到安装点上。
3、目录结构可以建立在多个卷上,这些卷必须被安装以使他们在文件系统命名空间中可用
4、操作系统需要直到设备名称和文件系统的安装位置(安装点),通常安装点为空目录和根目录。
5、个人理解:文件系统的目录是一个软件方面的东西,相当于一个数据结构,与之配套的是一套硬件设备(文件系统的硬件部分,如设备等等)。比方说一个磁盘,这个磁盘被文件系统分成了很多个卷和不同的部分分区,类似于我们进行的分盘和新建文件夹。操作系统根据这个数据结构可以对磁盘的指定位置的文件进行访问。所以,我们在安装的时候,相当于我们要将我们PC上的文件系统软件部分(目录)与我们新来的存储设备的文件系统软件部分(目录)建立连接,并且将硬件设备建立连接,才可以实现正常的访问。
五、文件共享
1、期望多用户系统上文件的共享
2、共享可以通过保护机制来实现
3、在分布式系统上,文件可以跨网络共享。
4、NFS是一种常见的分布式文件共享方法
六、保护
1、文件的拥有者/创建者应该能够控制
①能做什么?
②由谁来做?
2、访问的类型
①读
②写
③执行
④追加
⑤删除
⑥列表
3、访问的模式:读,写,执行
4、要求管理员创建一个组G,并将某些用户加入到该组中
5、访问控制列表:以给定每个用户名以及其所允许的访问类型
来源:CSDN
作者:HNU君陌
链接:https://blog.csdn.net/qq_40851744/article/details/103632355