操作系统原理,文件系统的概念与实现,概念,需求,文件分类,逻辑结构,数据结构,文件控制块和文件目录,基本文件操作,多级目录,文件物理结构,Unix的文件多级索引结构

基本概念

一、文件概念:
1、文件是对磁盘的抽象
2、是一组带有标识(文件名),在逻辑上有完整意义的信息项的序列
3、信息项是构成文件内容的基本单位(单个或多个字节),各个信息项之间有顺序关系
4、文件内容的意义由文件建立者和使用者决定
5、文件有读写指针

二、文件系统的设计需求:
操作系统角度:组织管理文件的方法
1、文件的描述,分类
2、文件目录的实现
3、存储空间的管理
4、文件的物理地址
5、磁盘实际运作方式,与设备管理的接口
6、文件系统的性能

用户角度:文件系统如何呈现在用户面前
1、一个文件的组织
2、对文件的命名和保护
3、对文件可以实施的操作

三、文件系统概念:
操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供可靠安全的共享和保护手段,并且方便用户使用,具体有:
1、统一管理磁盘空间,实施磁盘空间的分配与回收
2、实现文件的按名存取,使文件的名字空间映射到磁盘空间
3、实现文件信息的共享,并提供文件的保护,保密手段
4、向用户提供一个方便使用、易于维护的接口,并向用户提供有关统计信息
5、提高文件系统的性能
6、提供与IO系统的统一接口

四、文件的分类,以Unix为例
Unix中文件的性质和用途:普通文件,目录文件,特殊文件(设备文件),管道文件,套接字
1、普通文件regular:包含了用户的信息,一般为ASCII或二进制文件
2、目录文件directory:管理文件系统的系统文件
3、特殊文件special:字符设备文件:与输入输出有关,用于模仿串行IO设备如打印机,终端,网卡等;块设备文件:磁盘
4、管道文件:进程间通信
5、套接字:网络通信

五、文件的逻辑结构:用户的角度看文件,由用户的访问方式确定
分为流式文件和记录是文件,结构如下图左(流式)右(记录式)

还有树形结构

还可以组织成堆,顺序,索引,索引顺序,散列等结构

六、典型的文件逻辑结构和文件存取
1、流式文件:构成文件的基本单位是字符,文件本身使有逻辑意义、无结构的一串字符的集合
2、记录式文件:文件由若干个记录组成,可以按照记录进行读写查找等操作,每条记录都有内部结构。

3、对文件的存取有两种方式:
3.1、顺序存取访问:打开文件时文件指针指向第一个字符,访问一个往后移一个字节
3.2、随机存取访问:提供读写位置和接口,例如Unix的seek操作

存储介质和物理块

典型的存储介质:磁盘(包括固态硬盘ssd),磁带,光盘,U盘等
物理块(Unix/Linux下的块block,Windows下的簇cluster)
1、物理块使存储、传输、分配的独立单位
2、存储设备划分为大小相等的物理快,统一编号

管理磁盘空间的数据结构

一、位图:
1、用一串二进制位反映磁盘空间中分配使用情况,每个物理快对应一位,已分配的物理快为0,否则为1
2、申请物理块时,可以在位图中查找为1的为,返回其对应的物理块号
3、归还时,将对应物理块的位置为1
二、空闲块表
1、将所有空闲块记录在一个表中,即为空闲块表
2、表中的内容主要有两项:起始块号,块数
三、空闲块链表
1、把所有空闲物理块链成一个链
2、扩展:将物理快空间合并成组,然后链接物理块组(Unix)

数据结构中的块数通过特定计算得到磁盘中的物理地址

文件结构、属性,基本操作,文件目录和目录文件

一、文件控制块和文件目录
文件控制块file control block,FCB,
1、是操作系统为了方便管理文件呢设置的数据结构,保存管理文件所有的有关信息。
2、又叫文件属性或元数据。
3、元数据:数据的数据,为了方便管理文件需要一些相应的信息,这些信息同样以文件的方式存储在磁盘上,所以又叫元数据

二、文件常用属性:
文件名,文件号,文件大小,文件地址,创建时间,最后修改时间,最后访问时间。保护,口令,创建者,当前拥有者,文件类型,共享计数,标志(只读,隐藏,系统,归档,ASCII/二进制,顺序/随机访问,临时文件,锁)

三、基本文件操作:
Create创建
Delete删除
Open打开
Close关闭
Read读
Write写
Append追加内容
Seek定位文件指针
Get attributes获取属性
Set attributes设置属性
Rename重命名

1、使用基本文件操作实现其他文件操作:
例如拷贝的实现思路:
1.1、打开源文件,读取所有内容
1.2、创建宿文件,写入内容
1.3、关闭源文件,宿文件

四、文件目录,目录项,目录文件
1、文件目录
1.1、统一管理里每个文件的元数据,以支持文件名到文件物理地址的转换
1.2、将所有文件的管理信息组织在一起,构成文件目录
2、目录文件
2.1、将文件目录以文件的形式存放在磁盘上
3、目录项
3.1、构成文件目录的基本单元
3.2、目录项可以是FCB,目录是文件控制块的有序集合

五、文件目录结构的演化:
1、从一级目录到二级目录到树形目录,
2、一级目录下所有文件都在根目录下,
3、二级目录下根目录按照用户进行划分,每个用户的所有文件都在自己的用户目录下,而不是直接的根目录下
4、树形目录就是现在常用的多级目录结构,每个目录下都可以新建目录

六、和目录相关的概念:
路径名(文件名)
1、绝对路径名:从根目录开始
2、相对路径名:从当前目录开始,当前目录又叫工作目录
可以对目录进行的操作:
1、创建删除
2、读写,改名复制

目录文件之间的联系

文件的物理结构

一、文件在存储介质上的存放方式,主要解决两个问题:
1、若一个文件被划分成N块,这N块在磁盘上是怎么存放的
2、其地址(块号和簇号)在FCB中式怎样记录的

二、文件连续(顺序)存储
1、文件的信息存放在若干连续的物理块中

2、FCB中记录文件的第一个物理块的地址,然后记录文件的长度,可以记录文件占用物理块的个数,或者式字节长度换算成物理块,就可以找到顺序存放的文件在物理存储介质中的位置。

3、连续存储结构的优缺点
优点:
a、实现简单
b、支持顺序或随机存放
c、所需的磁盘寻道次数和寻道时间最少
d、可以同时读入多个快,检索一个块也很容易
缺点:
a、文件不能动态增长,只能预留空间或重新分配和移动
b、不利于文件插入删除
c、会产生磁盘碎片,需要使用特定的紧缩技术减少或消除磁盘碎片

三、链接结构:
1、一个文件的信息存放在若干个不连续的物理块中,各块之间通过指针链接,前一个物理块指向下一个物理块,位于链条最后一位的物理块的指针指向0(null)

2、链接结构的文件在FCB中只需要存放第一个物理块的地址就可以了,后续内容可以通过链条中每个节点的指针获取到。

3、链条结构的优缺点:
优点:
a、提高了磁盘空间利用率,不存在外部碎片问题
b、有利于文件插入和删除
c、有利于文件动态扩充
缺点:
a、存取速度慢,不适于随机存取
b、可靠性问题,例如指针可能出错
c、寻道次数更多,寻道耗时更长
d、链接指针占用一定的空间

4、对链接结构的一个变形,引入文件分配表FAT(Windows)
4.1、文件分配表,不使用物理块中的空间存放指针信息,而是将所有物理块的指针集中存放在一张表中,这张表就是文件分配表,文件分配表中的每一行对应了一个物理块

四、索引结构
1、一个文件的信息存放在若干不连续的物理块中
2、系统为每一个文件建立一个专用数据结构:索引表,并将这些物理快的块号存放在该索引表中
3、索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块
4、索引表大小不固定,不宜直接放在FCB中,而是在FCB中扩展一个字段存放索引表的物理块的地址

例如文件A顺序占用了物理块1,3,5,9,34,文件A的索引表中的内容就是{1,3,5,9,34},将这个索引表存放在物理块35中,文件A的FCB中的索引表字段就是35,标识索引表存放在物理块35中。

5、索引结构的优缺点:
优点:
a、保持了链接结构的优点,解决了链接结构的缺点
b、支持顺序存取和随机存取
c、满足了文件动态增长、插入删除的要求
d、能充分利用磁盘空间
缺点:
a、较多的寻道次数和寻道时间
b、索引表本身带来了系统开销,如内存,磁盘空间和存取时间

6、当索引表很大,需要多个物理块存放时的方案:
6.1、链接方式:一个盘块存一个索引表,多个索引表链接起来
6.2、多级索引方式:将文件的索引表地址存放在另一个索引表中
6.3、综合模式:直接索引和间接索引方式结合

五、Unix文件系统采用的是多级索引结构,就是综合模式
1、每个文件的主要索引有15个索引项,位于FCB中,每项2个字节
2、前12项直接存放文件的物理块号,用于直接寻址
3、如果文件大于12块,则利用第13项指向一个物理块,该物理块中存放的是一级索引表,就是次级索引表
4、假设磁盘扇区大小为512字节,物理块大小等于扇区块大小,存放在物理块中一级索引表最大可以存放256个物理块号,一级索引表只存放物理块,
5、对于更大的文件还可以利用第14和15项作为二级和三级索引表
6、第14项的二级索引表中的每一项都指向一个一级索引表,第15项的三级索引表中的每一项都指向一个二级索引表。
7、计算得出,Unix中一个文件最大可以达到:12+256+2562+2563个块

操作系统原理,文件系统的概念与实现,概念,需求,文件分类,逻辑结构,数据结构,文件控制块和文件目录,基本文件操作,多级目录,文件物理结构,Unix的文件多级索引结构相关推荐

  1. Linux 操作系统原理 — 文件系统 —文件

    目录 文章目录 目录 文件的类型 常规文件 ASCII 码文件 二进制文件 设备文件 字符设备文件 块设备文件 目录文件 其他文件 文件的构造方式 文件的属性 文件的操作 目录的操作 文件的类型 常规 ...

  2. Linux 操作系统原理 — 文件系统 — 虚拟文件系统

    目录 文章目录 目录 为什么需要文件系统? Linux 的虚拟文件系统 创建 Linux 文件系统 为什么需要文件系统? 程序 = 数据结构 + 算法,所有的应用程序都需要存储和检索信息,进程运行时它 ...

  3. Linux 操作系统原理 — 文件系统 — 管理与优化

    目录 文章目录 目录 磁盘空间管理 磁盘配额 文件系统备份 文件系统的一致性 文件系统性能 高速缓存 块提前读 减少磁盘臂运动 磁盘碎片整理 磁盘空间管理 文件通常存在磁盘中,所以如何管理磁盘空间是一 ...

  4. Linux 操作系统原理 — 文件系统 — 存储布局

    目录 文章目录 目录 磁盘分区 MBR 与分区表 创建 MBR 分区 创建 GPT 分区 分区的格式化 分区的特性 引导块 空闲空间块 inode 区块.data block 区块与超级块 LVM 与 ...

  5. Linux操作系统原理与应用04:内存管理

    目录 1. Linux内存管理概述 1.1 内存的层次结构 1.2 虚拟内存概述 1.2.1 虚拟内存基本思想 1.2.2 进程虚拟地址空间 1.3 内核空间到物理空间的映射 1.3.1 内核空间的线 ...

  6. 计算机操作系统原理--Linux实例分析

    本书是结合Linux介绍操作系统的原理的书,是一本理论的书. 本书从计算机硬件的分类来叙述如何高效利用计算机资源,及我们使用的操作系统. 首先计算机硬件资源有CPU.内存.IO设备,其次还有软件资源: ...

  7. Linux 操作系统原理 — 系统结构

    目录 文章目录 目录 Linux 系统架构 Linux 内核 内存管理 进程管理 文件系统 设备驱动程序 网络接口 Shell Linux 系统架构 Linux 系统一般有 4 个主要部分:内核.Sh ...

  8. 计算机操作系统-文件(1)文件管理、文件的逻辑结构、文件目录

    文件管理 文件也属于系统资源,其就是一组有意义的信息.数据集合. 计算机中存放了各种各样的文件: 一个文件具有哪些属性? 文件内部的数据应该被怎样组织起来? 文件之间又应该怎么组织起来? 从下往上看O ...

  9. 操作系统原理学习笔记(基础概念与进程)

    学习视频 王道的操作系统原理,我在网上搜了一下,没有那个视频像湖科大那种推荐的人那么多,感觉这个还可以,就看这个了. 随看随记 进程运行前需要将需要执行的程序放置到内存中,内存再到CPU中执行程序. ...

最新文章

  1. CTF入门--请输入密码
  2. 记了老是忘记那就写下来吧宏任务微任务
  3. eclipse html页面校验,当我在Eclipse浏览器中运行url时,HTML表单未通过验证
  4. 中国风吉祥纹样底纹背景,艾草绿和天青色趋势色彩
  5. 《代码大全》学习摘要(五)软件构建中的设计(下)
  6. 樽海鞘算法(SSA)
  7. python 包之 Pygame 游戏开发教程
  8. 综合练习:热点事件排行榜(页面使用的是thymeleaf)
  9. 软件验证码显示服务器连接错误,验证码总是提示错误,验证码错误的解决办法 专家详解...
  10. 【转载】Java并发编程:volatile关键字解析 by 海子
  11. P2676 [USACO07DEC]Bookshelf B
  12. 解决catkin_make时出现make[2]: *** No rule to make target ‘/usr/lib/libOpenNI2.so‘, needed by ‘*******‘。
  13. 阿里云短信一条价格包含验证码短信/短信通知/推广短信
  14. 史蒂夫·乔布斯(简介)
  15. 如何在cmd命令行窗口打开QQ
  16. 【我与云表的故事】我用云表做工作日历
  17. ROS学习(18)机器人SLAM功能包——cartographer的安装与测试
  18. 网易企业邮箱用Python发邮件
  19. flowable,199boge,进阶
  20. 谷歌浏览器无法选select_去除谷歌浏览器表单边框特效和select下拉菜单背景

热门文章

  1. 回波损耗 VSWR S参数 总结
  2. firewalld 命令大全
  3. 小米手机解BL锁教程
  4. 网络协议学习:等价多路径路由ECMP
  5. 从零使用强化学习训练AI玩儿游戏(1)——安装环境
  6. 鹤壁高中2021年高考成绩查询,2021鹤壁市地区高考成绩排名查询,鹤壁市高考各高中成绩喜报榜单...
  7. 中国基金业将迎来第三次浪潮[ZT]
  8. Java为什么要用pojo,java – POJO有什么优势?
  9. vue页面内容保存为PDF
  10. 快递代领平台–需求分析