操作系统文件系统详记录

介绍:
进程在运行时,可以在自己的地址空间存储一定量的信息。采用这种信息存储方式有三个问题:

  1. 这些地址空间所能存储的信息十分有限。
    2.信息可能随着进程的终止而丢失。
    3.一个进程中的信息不能并发的被多个进程同时访问。
    解决方法:
    使信息的存储独立于任何一个进程。
    那么怎么存储这些信息,解决以上三个问题呢?
    存储信息可以使用磁盘(magnetic disk)。使信息独立出来被存储。然而还有问题:
    1.怎么直接快速找到想要的信息;
    2.怎么防止一个用户访问别的用户的信息(服务器经常遇到的问题);
    3.怎么知道哪一块是空闲的。
    要解决磁盘存储带来的问题,我们建立了文件这个抽象。

一、文件
文件的定义:
文件是进程所创建的信息逻辑单元,受操作系统管理。进程可以读取已经存在的文件并且在需要的时候创建新的文件。操作系统中处理文件的部分称为文件系统。

文件的结构
文件有三种构造结构:字节序列、记录序列和树。

首先,操作系统并不关心文件是什么内容,它只在乎自己管理的字节。文件内容和含义只在用户程序中解释,操作系统只把文件看做字节序列。用户可以向文件中加入任何想要的或特殊的内容,操作系统不会提供任何帮助,但也不构成任何障碍。把文件看做字节,给操作系统提供了最大的灵活性。

文件类型
很多操作系统支持多种文件类型,只讨论普通文件。
普通文件: 包含用户信息的文件,分为二进制文件和ASCII文件。
ASCII文件:可以显示和打印,可以用任何编辑器编辑。采用这种文件作为输入输出有利于一个程序的输出作为另外一个的输入。
二进制文件:有一定的内部结构,使用该文件的程序才了解此结构。只有文件的格式正确时,操作系统才会执行这个文件。

文件访问
存储介质是磁带时,顺序访问方式是很方便的。
不按次序访问文件或目录,这种方法称为随机访问文件。

文件属性
文件的的附加信息称为文件的属性,不同的操作系统文件的属性各不相同。

二、目录
文件系统提供目录或者文件夹,用于记录文件的位置。
1.一级目录系统
最简单的形式,一级目录系统在一个目录中包含所有的文件,这个目录称为根目录。
2.层次目录系统
目录树结构的文件系统
3.路径名
用层次文件系统指定文件所在位置时,常用两种指定方法:绝对路径名和相对路径名。
绝对路径名:从根目录到文件的路径。
特点:一定从很目录开始,并且唯一。以三种操作系统为例:
Windows \usr\ast\mailbox
UNIX usr/ast/mailbox
MULYICS >usr>ast>mailbox
相对路径名:和当前工作目录一起使用。当前工作目录可以由用户指定。
所有的不从根目录开始的路径名都是相对路径名。相对路径往往更加方便,功能也和绝对路径完全相同。

那么如何选择路径名呢?
如果要访问某一个特定的文件而不考虑当前用户的目录,应采用绝对路径。反之可以选择相对路径。无论用户处在哪个目录下,绝对路径总是能很好的工作。

特殊的目录项:”.” 和”…” . 指当前目录, … 指的是父目录(根目录中指向他自己)。

三、文件系统的实现
我们关心文件和目录是怎么样存储、磁盘空间怎么样管理的,以及怎么保证系统有效持续工作。下面解决这些问题。
1.文件系统布局
文件系统存放在磁盘上。多数的磁盘被划分为一个或多个分区,每一个分区中有一个独立的文件系统。磁盘中的0号扇区被称为主引导记录(Master Boot Record , MBR)用于引导计算机。MBR的结尾是分区表。给出了每一个分区的开始和结束地址。分区表中有一个分区被标记为活动分区。计算机被引导时,BIOS读入并执行MBR。MBR首先确定这个活动分区并读入它的第一个块——引导块,并执行。引导块中的程序将装载该分区的操作系统。统一起见,每个分区都从一个引导块开始,即使这个块没有可启动的操作系统。
除了从引导块开始这个统一的特点,磁盘分区布局随着文件系统的不同而变化,但通常含有下列的项目:超级块、空闲的信息、i节点、根目录
2.文件系统的实现
实现的关键问题:记录各个文件分别用到哪个磁盘块。
(1)连续分配
把文件作为一系列的连续数据存在磁盘上。例如在块大小为1KB的磁盘上,50KB的文件要分配50个连续的块。注意每个文件都从一个新块开始,也就是说如果有一个文件占据了2.5块的空间那么将有0.5块空间被浪费。
连续分配的优势:
· 实现简单:只需要记住两个信息即可——第一块的磁盘地址和文件的块数。
· 读操作性能好。只需寻找第一个块就可以实现方便的读操作
缺点:
长时间使用磁盘空间会变得零碎。首先,我们知道有些文件占用不完一整个磁盘块,但文件的存储都是从完整的块开始的;另外如果有文件被删除,那么会留下一大块空闲块;用户向这个块中存储信息,那么信息的大小会被限制——不能超出这个空闲块的大小;如果存储可变的信息,我们不能要求用户提前告知信息的大小;反之如果信息量较小,那么仍然会存在未利用空闲区。尽管可以压缩磁盘,但是涉及到几乎所有文件的复制和再存储,成本代价高昂。

(2)链表分配
为每个文件构造磁盘块链表,每个块的第一个字作为指向下一个块的指针,块的其他部分则用来存放数据。
-----------------------------------------------2020.6.15更

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值