操作系统基础之文件管理

文件管理

背景以及意义

在使用计算机的过程中,需要大量的程序以及数据,而内存的容量有限,并且不能长期保存数据,于是便将数据以文件的形式保存在外存中。随着而来就又出现了新的问题了,如果直接将数据保存在外存中,用户直接面向磁盘进行操作,就会带来很多的问题,比如:要求用户熟悉磁盘的结构,了解各种文件的属性,在磁盘上的具体位置,在多用户环境下还必须保持数据的安全性以及一致性,这是非常麻烦的事情,于是,就在操作系统中引入了文件管理的概念,也就是构建一个文件系统,专门用于文件的管理、组织工作,并且提供简单、方便的操作给用户。

文件以及文件系统

文件

文件可以通俗地理解为就是一堆数据的集合,可以分为有结构文件以及无结构文件(流式文件),文件自身具有一些属性,如:文件类型、文件长度、文件的物理位置、建立时间等。

文件类型

划分文件类型的目的是为了更好地管理文件,按照不同的分类,可以将文件类型进行不同的划分

  • 按照用途划分
    • 系统文件
    • 用户文件
    • 库文件
  • 按照文件中数据的形式划分
    • 源文件
    • 目标文件
    • 可执行文件
  • 按照存取控制权限划分
    • 只执行文件
    • 只读文件
    • 读写文件
  • 按照组织形式和处理方式划分
    • 普通文件
    • 二进制文件
    • 特殊文件

文件系统模型

文件系统一般划分为三个层次:从上到下分别是:文件系统接口 - 对对象操作和管理的软件集合 - 对象(文件、目录、磁盘)及属性

文件操作

创建文件、删除文件、读文件、写文件、打开文件、关闭文件、对文件属性的操作、对目录的操作等

文件的逻辑结构

所谓的文件的逻辑结构,是指从用户的观点出发所看到的文件的组织形式,是用户可以直接处理的数据及结构,跟具体的物理存储结构没有关系,也称为文件的组织,分为有结构文件(记录式文件)、无结构文件(流式文件)

对于文件的逻辑结构,有一些基本的要求

  • 能提高检索速度:在大文件中检索数据
  • 便于修改:在文件中增加、删除、修改记录
  • 降低文件的存储费用:减少文件占用的磁盘空间、不要求大片的连续存储空间

有结构文件

有结构文件根据用于和系统管理的需要,根据组织形式的不同,可以分为一下几种

  • 顺序文件:文件中的记录按照某种顺序排列而成,记录一般是指定长的记录,能用较快的速度查找文件中的记录
  • 索引文件:为变长记录建立索引表,并且为每个记录设置一个表项,用于加快检索速度
  • 索引顺序文件:为文件建立索引表,为每一组记录中的第一个记录设置一个表项

顺序文件

两种不同的排序方式:串结构(基本按照时间排序)、顺序结构(按照关键字进行排序)

顺序文件中,如果是定长记录,则访问可以按照头指针加偏移即可;如果是不定长记录,则每个记录需要保存多一个指针,用于保存当前文件的长度

优点:读取效率高,尤其是在大文件的情况下

缺点:文件比较大是,查找某几个记录速度慢,增加、删除操作比较困难。可以设置一个记录日志/事务文件,将具体操作记录下来,在一定时间内统一处理(延迟操作)

索引文件

为文件中的记录建立索引表,每个表项用于记录:记录的长度、指向该记录的指针。检索时,先根据关键字检索索引表,然后再根据索引表中的指针读取对应的文件

优点:检索速度快

缺点:增加了一个索引项,所以增加了费用

索引顺序文件

克服了变长记录文件的不便于存取的缺点,而且付出的代价也不算大

将顺序文件的所有记录进行分组:为顺序文件建立一张索引表,索引表中为每组的第一个记录建立一个索引项,含有该记录的键值和指向该记录的指针。在检索时,先利用关键字在索引表中进行检索,然后找到该记录所在记录组中第一个记录的表项,从而得到该记录组的地址,然后再用顺序索查找方式在主文件中进行查找,对于大文件,更是可以建立多级索引从而提高检索速度

外存分配方式

常见用外存分配方式有连续分配、链接分配、索引分配

连续分配

连续分配即为每个文件分配一组连续/相邻接的磁盘块,保证了逻辑文件中的记录顺序与存储中所占用的盘块顺序一致

优点:顺序访问容易、访问速度快

缺点:要求有连续的存储空间、必须事先知道文件的大小

链接分配

链接分配采用离散的分配方式,消除了碎片问题,提高了利用率,同时也适应文件的动态增长、删除、修改等

隐式链接

在文件目录的每个目录项中,都含有链接文件第一个盘块以及最后一个盘块,而且每个盘块都含有指向下一个盘块的指针

缺点:只适合顺序访问,每次读写都必须从起始盘块开始、仅通过一个链接指针将盘块链接起来,如果其中一个链接出错,整个链就断开

显式链接

把链接各个物理盘块的指针,显示地存放在内存中的一个链接表(FAT File Allocation Table)上,将链首指针所对应的盘块存放在FCB中

缺点:FAT需要占用比较大的内存空间

索引分配

索引分配为每个文件分配一个索引块,再把分配给该文件的所有盘块号都记录在该索引块中,在建立一个文件时,只需要为之建立的目录项中填入指向该索引块的指针

缺点:对于小文件来说,索引块的利用率比较低

常见分配方式:单级索引、多级索引、混合索引(多种索引分配方式混合而成)

目录管理

对目录的要求

  • 实现按名存取:提供名字即可快速找到文件所在磁盘
  • 提高对目录的检索速度
  • 文件共享
  • 允许文件重命名

文件控制块和索引节点

文件控制块中的信息

  • 基本信息:文件名、文件物理位置、文件逻辑结构、文件的物理结构
  • 存取控制信息:文件主的权限、核准用户的权限以及一般用户的权限
  • 使用信息:文件的建立时间、修改时间等

一个文件控制块就是一个目录项,文件控制块的集合就是一个目录

索引节点:将文件描述信息与文件名分离,使文件描述信息单独形成一个数据结构

文件系统中每个目录项仅由文件名和指向文件所对应的inode节点的指针

文件目录结构

单级结构、两级结构、多级结构

文件存储空间的管理

用于记录磁盘空间的使用情况,便于更好地进行分配

空闲表法以及空闲链表法

空闲表法

空闲表法属于连续分配,系统为外存上的所有空间建立一张空闲表,每个空闲区对应一个空闲表项

分配时采用首次适应算法、循环首次适应算法等

空闲链表法

将空闲链分为:空闲盘块链、空闲盘区链

位图法

通过位图(二进制的一个位)来表示磁盘使用情况

成组链接法

文件共享与保护

  • 基于索引节点的共享方式
  • 利用符号链实现文件共享
  • 磁盘容错技术
    • 第一级容错技术
      • 双份目录和双份文件分配表
      • 热修复重定向和后读写校验
    • 第二级容错技术
      • 磁盘镜像
      • 磁盘双工
    • 基于集群技术的容错能力
      • 双机热备份模式
      • 双机互为备份模式
      • 公用磁盘模式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容