文件系统


文件的分类

  • 普通文件:包含了用户的信息,一般为ASCII或二进制文件
  • 目录文件:管理文件系统的系统文件
  • 特殊文件(设备文件)

文件的逻辑结构

逻辑结构是从用户观点出发看到的文件的组织形式。分为以下两类:

  • 流式文件:无结构,对文件内信息不再划分单位,它是依次的一串字符流构成的文件。
  • 记录式文件:有结构,文件由若干个记录组成,可以按记 录进行读、写、查找等操作。

存储介质与物理块

典型的存储介质

磁盘(包括固态盘SSD)、磁带、光盘、U盘等等,以下为典型的磁盘结构:

物理块

  • 信息存储、传输、分配的独立单位
  • 存储设备划分为大小相等的物理块,统一编号

磁盘访问

  • 寻道:磁头移动定位到指定磁道
  • 旋转延迟:等待指定扇区从磁头下旋转经过
  • 数据传输:数据在磁盘与内存之间的实际传输

文件控制块(FCB)

为管理文件而设置的数据结构,保存管理文件所需的所有有关信息(文件属性或元数据)。

文件控制块一般包含下列常用属性:

  • 文件名
  • 文件号
  • 文件大小
  • 文件地址
  • 创建时间
  • 最后修改时间
  • 最后访问时间
  • 各种标志(只读、隐藏、系统、归档等)

文件目录

  • 文件目录:文件目录由目录项构成,统一管理每个文件的元数据,以支持文件名到文件物理地址的转换。
  • 目录文件:将文件目录以文件的形式存放在磁盘上。
  • 目录项:可以看成是FCB。

文件目录

文件的物理结构

文件的物理结构指的是文件在存储介质上的存放方式。

连续结构

文件的信息存放在若干连续的物理块中。

连续结构

连续结构实现简单,且所需的磁盘寻道次数和寻道时间最少,支持顺序存取和随机存取,但文件不能动态增长,且会产生许多外部碎片。

链接结构

一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一 个物理块。

lianjie

使用链接结构不存在外部碎片的问题,提高了磁盘空间利用率,有利于文件的动态扩充,但是比起连续结构需要更多的寻道次数和寻道时间,且存取速度慢,不适于随机存取。

索引结构

一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个专用数据结构索引表,并将这些物理块的块号存放在该索引表中。

索引结构

索引结构保持了链接结构的优点,也解决了其缺点:既能顺序存取又能随机存取,满足了文件动态增长的要求,能充分利用磁盘空间。但是索引结构依然有较多的寻道次数和寻道时间,而索引表本身也带来了额外系统开销。

多级索引结构(综合模式)

多级索引

UNIX文件系统采用的便是这种多级索引结构(综合模式):每个文件的索引表有15个索引项,每项2个字节,前12项直接存放文件的物理块号,如果文件大于12块,则利用第13项指向一个物理块作为一级索引表。假设扇区大小为512字节,物理块等于扇区块大小,那么一级索引表可以存放256个物理块号。对于更大的文件还可利用第14和第15项作为二级和三级索引表。

unix多级索引

文件目录检索

用户给出文件名,按文件名查找到目录项/FCB,根据目录项/FCB中文件物理地址等信息,计算出文件中任意记录或字符在存储介质上的地址。

文件目录检索

目录项分解法

通过目录项分解法可以加快文件目录的检索速度。

目录项分解法即把FCB分解成两部分:符号目录项(文件名,文件号)、基本目录项(除文件名外的所有字段)。目录文件改进后减少了访盘次数,提高了文件检索速度。

磁盘调度算法

当有多个访盘请求等待时,采用一定的策略,对这些请求的服务顺序调整安排,以降低平均磁盘服务时间,达到公平、高效。

先来先服务(FCFS)

按访问请求到达的先后次序服务。

优点是简单公平,但效率不高,相临两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。

FCFS

最短寻道时间优先(Shortest Seek Time First)

优先选择距当前磁头最近的访问请求进行服务。

虽然改善了磁盘平均服务时间,但是造成某些访问请求长期等待得不到服务,也就是饥饿现象。

SSTF

扫描算法(SCAN)

扫描算法又称为电梯算法,当设备无访问请求时,磁头不动;当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复。

scan

单向扫描算法(CSCAN)

扫描调度算法(SCAN)存在这样的问题:当磁头刚从里向外移动过某一磁道时,恰有一进程请求访问此磁道,这时该进程必须等待,待磁头从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求,致使该进程的请求被严重地推迟。

为了减少这种延迟,CSCAN算法规定磁头只做单向移动。例如,磁头只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。

旋转调度算法

旋转调度算法根据延迟时间来决定执行次序的调度,请求访问分为以下三种情况:

  • 若干等待访问者请求访问同一磁头上的不同扇区
  • 若干等待访问者请求访问不同磁头上的不同编号的扇区
  • 若干等待访问者请求访问不同磁头上具有相同的扇区

对于前两种情况总是让首先到达读写磁头位置下的扇区先进行传送操作,而对于第三种情况,这些扇区同时到达读写磁头位置下,可任意选择一个读写磁头进行传送操作。

参考资料

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 概述 文件系统操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。 本次实验我们实现了多级目录下的文件管理系统,具备文件系统的文件创建、删除、读写以及目录的创建、删除等操作,并在内存中开辟一块空间,模拟虚拟磁盘,成功地展示出文件系统的功能和属性。 2 课程设计的任务和要求 2.1 设计任务 在下列内容中任选其一: 1、多用户、多级目录结构文件系统的设计与实现; 2、WDM驱动程序开发; 3、存储管理系统的实现,主要包括虚拟存储管理调页、缺页统计等; 4、进程管理系统的实现,包括进程的创建、调度、通信、撤消等功能; 5、自选一个感兴趣的与操作系统有关的问题加以实现,要求难度相当。 2.2 设计要求 1、在深入理解操作系统基本原理的基础上,对于选定的题目,以小组为单位,先确定设计方案; 2、设计系统的数据结构和程序结构,设计每个模块的处理流程。要求设计合理; 3、编程序实现系统,要求实现可视化的运行界面,界面应清楚地反映出系统的运行结果; 4、确定测试方案,选择测试用例,对系统进行测试; 5、运行系统并要通过验收,讲解运行结果,说明系统的特色和创新之处,并回答指导教师的提问; 6、提交课程设计报告。 集体要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。 2.文件物理结构可采用显式链接或其他方法。 3.磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。 4.文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。目录组织方式可以不使用索引结点的方式,但使用索引结点,则难度系数为1.2。 5.设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作: (1)具有login (用户登录) (2)系统初始化(建文件卷、提供登录模块) (3)文件的创建: create (4)文件的打开:open (5)文件的读:read (6)文件的写:write (7)文件关闭:close (8)删除文件:delete (9)创建目录(建立子目录):mkdir (10)改变当前目录:cd (11)列出文件目录:dir (12)退出:logout ................................................
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值