3、文件物理结构

  • 思维导图
  • 文件块、磁盘块
  • 文件分配方式
    • 1、连续分配
    • 2、链接分配
      • 隐式链接
      • 显式链接
    • 3、索引分配
      • 如果一个文件的大小超过一个磁盘块怎么办?
        • 1、链接方案
        • 2、多层索引
        • 3、混合索引
  • 总结
  • 注:逻辑结构VS物理结构
    • 什么是逻辑结构,什么是物理结构?
    • 顺序文件采用顺序存储/链式存储
    • 索引文件采用索引分配

思维导图

文件块、磁盘块


其实和程序与内存的分块类似

文件分配方式

1、连续分配

1、逻辑分配方式:最大的特点就是物理存储上连续
2、由于是连续存储,所以进行地址映射时,只需要块号的映射关系,而块内地址不需要进行映射
3、用户要访问一个位置:首先要找到目录文件中与之对应的文件目录项中的起始块号,然后物理块号=起始块号+逻辑块号,最后通过快内地址找到所要访问的位置。

连续分配优缺点:

优点:
1、

缺点:
1、

2、

2、链接分配

隐式链接

该种方式不支持随机读取,效率低

该种方式由于是链式存储,所以方便拓展,只需要将FCB中的结束块号修改即可

总结

显式链接

区别与隐式链接,显式链接多加了一块文件分配表(FAT),用于记录块与块之间的关系

逻辑地址与物理地址的转化:
1、用户给出逻辑块号,操作系统从文件目录表找到对应FCB
2、从FCB中找到起始地址块号算出物理块号,然后查找FAT
3、直接找到物理块(随机存取)
由于FAT常驻内存,所以逻辑地址到物理地址的转化不需要进行I/O读写。

总结

3、索引分配

1、在索引分配方式中,文件目录表中的FCB需要新加一个索引块的字段:用于存放该文件索引表存放的位置
2、在显式链接的链式分配方式中,文件分配表FAT 是一个磁盘对应一张。而索引分配方式中,索引表是一个文件对应一张。
3、文件的逻辑块号到物理块号的转换:首先,用户给出要访问的逻辑块号 i,操作系统找到该文件对应的目录项(FCB);其次,从目录项中可知索引表存放位置,将索引表从外存读入内存,并查找索引表即可只 i 号逻辑块在外存中的存放位置。因此,索引分配方式可以支持随机访问文件拓展也很容易实现(只需要给文件分配一个空闲块,并增加一个索引表项即可)但是索引表需要占用一定的存储空间
4、问题:若每个磁盘块1KB,一个索引表项4B,则一个磁盘块只能存放 256 个索引项。如果一个文件的大小超过了256块,那么一个磁盘块是装不下文件的整张索引表的,如何解决这个问题?

如果一个文件的大小超过一个磁盘块怎么办?

1、链接方案

1、解决方法:用多个索引块链接存储,FCB中存储第一个索引块的位置即可
2、问题:当有很多索引块时,必须先将前面所有的索引块读入内存才可以找到你要的索引块,因此,其效率很低。从而产生了多级索引。

2、多层索引

问题:当你只有很小的数据时,假如只有1KB,本来可以只读入索引表就可以查询到该文件位置,但是采用二级索引表却要读入一级索引表和二级索引表,得不偿失,为解决该问题,引入混合索引

3、混合索引

就是将索引表和多级索引表混合使用,当数据很小时,就可以用直接索引,当数据很大时,就可以使用多级索引。

总结


注:逻辑结构VS物理结构

什么是逻辑结构,什么是物理结构?

物理结构:本质上来看是当我们在进行数据的存储时,操作系统会将数据保存到硬盘中,但是他会以什么样的方式存储就是所谓的物理结构,例如操作系统可能会以顺序或者链式的方式存储数据。对于用户而言,操作系统对数据的存储是不可见的。用户并不关心。
逻辑结构:本质上来看是用户在编写程序时,用何种方式来组织数据,文件的逻辑结构是用户来定义的,只是表示一个数据和一个数据的前后逻辑关系是什么样的。操作系统并不关心。

顺序文件采用顺序存储/链式存储


蓝色的部分:就是用户对于文件采用的逻辑结构的定义
橙色的部分:在操作系统看来,整个文件就是一堆二进制代码,操作系统按照物理块大小将这堆二进制文件拆分后;采用顺序的方式存储到硬盘上就是物理结构的顺序存储。采用链式的方式存储到硬盘上就是物理结构的链式存储

索引文件采用索引分配

操作系统之文件管理:5、文件物理结构(连续分配、链式(显式、隐式)分配、索引分配(链接、多层索引、混合索引))相关推荐

  1. 操作系统作业 - 文件管理 - 模拟文件管理系统

    操作系统作业-模拟文件管理系统 文末有源码 文章目录 操作系统作业-模拟文件管理系统 1. 项目需求 1.1 基本任务 1.2 功能描述 1.3 项目目的 2. 开发环境 3. 项目结构 4. 系统分 ...

  2. Android服务显式启动、隐式启动、绑定服务、本地客户端调用远程服务器音乐文件

    工程目录: app-MainActivity package com.example.myapplication;import androidx.appcompat.app.AppCompatActi ...

  3. 操作系统:第四章 文件管理1 - 文件逻辑结构,物理结构,文件目录,软硬连接,文件系统

    本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...

  4. 【操作系统】文件管理

    文章目录 一.文件系统概述 二.文件系统的实现 2.1 连续分配 2.2 链接分配 2.3 索引分配 三.文件存储空间管理 3.1 位示图法 一.文件系统概述 FCB 就是文件目录项,文件控制块. 对 ...

  5. 无人值守的 Windows 安装程序隐式应答文件搜索顺序

    无人值守的 Windows 安装程序 Windows 安装程序使用无人参与的安装应答文件来自动化 Windows 的在线安装和自定义.此方法对于大规模部署以及在每台计算机的配置中实现一致性和精确性非常 ...

  6. scala当中的文件操作、网络请求和隐式转换

    scala当中的文件操作.网络请求和隐式转换 文件操作和网络请求 读取文件当中每一行的数据 读取词法单元和数字 读取网络资源.文件写入.控制台操作 读取网络资源 文件写入操作 控制台交互操作 scal ...

  7. 4.1.4 OS之文件的物理结构(连续分配、链接分配[隐式-显式]、索引分配[链接方案-多层索引-混合索引])

    文章目录 0.思维导图 1.文件块.磁盘块 2.连续分配 3.链接分配 隐式链接 显式链接 链接分配总结 4.索引分配 链接方案 多层索引 混合索引 索引分配总结 5.文件物理结构分配总结 0.思维导 ...

  8. (王道408考研操作系统)第四章文件管理-第一节4:文件物理结构(文件分配方式)

    文章目录 一:连续分配 二:链接分配 A:隐式链接 B:显式链接 三:索引分配 (1)基本概念 (2)一个问题 A:链接方案 B:多层索引 C:混合索引 文件分配方式大总结 文件的物理结构是指如何为文 ...

  9. 操作系统之文件管理:7、文件的系统层次

    7.文件的系统层次 思维导图 思维导图 1.用户接口:见操作系统之文件管理:6.文件的基本操作 2.文件目录系统:见操作系统之文件管理:3.文件目录 3.存取控制模块:见操作系统之文件管理:7.文件共 ...

最新文章

  1. 如何写出漂亮的代码:七个法则
  2. 洛谷 P1985 翻转棋
  3. 裕民银行 x mPaaS | 移动应用“适老化”改造,可不止是字体变大
  4. SD-WAN的C级视图
  5. 【Xamarin挖墙脚系列:最重要的布局ListView】
  6. 磁带最优存储问题java实现_磁带的最优存储问题(贪心选择)
  7. idea出现找不到实体类
  8. kax格式怎么导入不了pr_pr如何导入.mogrt文件 pr模板导入教程
  9. hibernate fetch属性
  10. linux什么命令查设备型号,在Linux命令行中查看系统硬件制造商、型号与序列号的六种方法...
  11. 通过iMazing将Safari浏览器的书签导出至电脑
  12. AttributeError lxml.etree Element object has no attribute get_attribute
  13. angular4与高德地图的结合
  14. 见微知著:语义分割中的弱监督学习
  15. ipod nano 无法添加mp4视频 电影失败解决方法
  16. 给SAP初学者的建议!
  17. Android 获取gateway网关地址
  18. wordpress批量导入html文章,wordpress文章采集发布批量上传教程(火车头)
  19. 古人教你怎样识人不走眼
  20. ggplot2画histogram(坐标轴刻度值字体大小,坐标轴标题字体大小,柱形宽度,大标题字体大小、居中)...

热门文章

  1. VS Code:高效前端程序员的秘密武器
  2. 第十节:实现vue组件之间的通信
  3. img 固定在父容器底部_容器苗容器怎么选?六种容器特点详解!
  4. python多图合并成一张图_python使用PIL实现多张图片垂直合并
  5. 这个处理不同基因组区域关系的工具集很不错!
  6. 基因共表达聚类分析及可视化
  7. ae多线程渲染工具:BG Renderer MAX for Mac(AE插件)
  8. mysql批量查询并替换或者更新某个字段
  9. oracle 审计数据大,oracle审计AUD$过大导致的数据库登录异常
  10. php 当地时间,PHP UTC到当地时间