首页 > 其他分享 >第六章 文件及文件系统 6.3 文件的物理结构

第六章 文件及文件系统 6.3 文件的物理结构

时间:2023-05-17 11:37:03浏览次数:41  
标签:文件 链接 文件系统 FAT 盘块 索引 6.3 分配

  • 为文件分配外存空间时所要考虑的主要问题是: 怎样才能有效地利用外存空间和如何提高对文件的访问速度。
  • 目前,常用的外存分配方法有: 连续分配,链接分配,索引分配 

一、连续分配

  1.要求为每一个文件分配一组相邻接的盘块。

  2.把逻辑文件中的数据顺序地存储到物理上邻接的各个数据块中,这样形成的物理文件可以进行顺序存取。(这样的物理文件称为顺序文件)

  3.文件分配表中为每个文件建立一个表项,其中记载文件的第一个数据块地址及文件长度。 

二、链接分配

  1.不要求为整个文件分配一块连续的空间,而是可以将文件装到多个离散的盘块中。

  2.将同属于一个文件的多个离散的盘块链接成一个链表(把这样形成的物理文件称为链接文件)

  3.隐式链接与显式链接

  • 隐式链接
    • 在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针。
    • 在每个盘块中,都含有指向下一个盘块的指针。
    • 它只适合于顺序访问,它对随机访问是极其低效的。(如果要访问文件所在的第i个盘块,则必须先读出文件的第一个盘块……,就这样顺序地查找直至第i块)

  • 显式链接
    • 把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中。
    • 整个磁盘仅设置一张文件分配表FAT (File Allocation Table)。 
    • 每个文件的第一个盘块号,作为文件地址被填入相应文件FCB 的“物理地址”字段中。
    • 查找记录的过程是在内存中进行的,因而不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数。 

  4.问题:

  • 不能支持高效的直接存取。要对一个较大的文件进行直接存取,须首先在FAT中顺序地查找许多盘块号。
  • FAT需占用较大的内存空间。由于一个文件所占用盘块的盘块号是随机地分布在FAT中的,因而只有将整个FAT 调入内存,才能保证在FAT中找到一个文件的所有盘块号。

三、索引分配

  1.单级索引分配 

  • 为每个文件分配一个索引块(表),用于记录分配给该文件的所有盘块号(索引块也视为数据块的一种,占用一定的磁盘空间)
  • 在建立一个文件时,只需在为之建立的目录项中填上指向该索引块的指针 

  • 索引分配方式支持直接访问,当要读文件的第i个盘块时,可直接从索引块中找到第i个盘块的盘块号; 不会产生外部碎片。
  • 可能要花费较多的外存空间。每当建立一个文件时,便须为之分配一个索引块。对于小文件,索引块的利用率低。

  2.两级索引分配(利于长作业)

  3.增量式索引分配(混合索引方式)

  • 索引结点中设有13个地址项:i.addr(0)~i.addr(12) 。 
  • 三种寻址方式:直接地址,一次间接地址,多次间接地址

 

标签:文件,链接,文件系统,FAT,盘块,索引,6.3,分配
From: https://www.cnblogs.com/05-ReFrain-19/p/17402858.html

相关文章

  • Linux 文件系统inode号
    目录一、inodeinode只有一个,唯一的,一个文件必须占用一个inode号,但是至少占用一个数据块(数据不足一个数据块,也是占用一个数据块)inode记录:元信息,权限,字节数,所有组,所有组,时间 二、时间类型atime:使用都会修改时间mtime:修改数据内容,空文件修改内容并且保存内容......
  • 如何在pypi上找whl文件
    1找到适合解释器版本的包 2 然后点击Downloadfiles,右侧即可找见whl文件区域 ......
  • linux 定时任务只保留7天内的文件和目录
    shell脚本#!/bin/bash##########################删除7天之前的文件##########################tmp_path=/tmp/test/*find${tmp_path}-maxdepth0-typed-ctime+7|xargsrm-rvf定时任务:crontab-e[root@test~]#crontab-e10***/root/test/......
  • linux grep 查找文件中关键字
    grep[选项]{关键字}文件名选项:-i:忽略大小写-n:输出关键字行号-v:取反,不输出包含关键字内容-r:递归查找,用于查找多个文件是否包含某个关键字-E:使用正则表达式查找file.txt文件中匹配关键字的-所有行grep"关键字1"file.txt查找file.txt文件中匹配多个关键字......
  • 【开发者指南】如何在MyEclipse中编辑HTML或JSP文件?(一)
    MyEclipsev2022.1.0正式版下载MyEclipse技术交流群:742336981欢迎一起进群讨论如果您有HTML或JSP文件要编辑,这里将介绍如何编辑。查找以下信息:编辑源代码大纲和属性视图参数页面该功能在MyEclipse中是可用的。一、HTML/JSP编辑器要编辑HTML或JSP文件,请执行以下操作当......
  • 使用exe4j将jar包转为exe可执行文件
    1.在idea中使用maven生成jar包进入项目中,找到pom.xml文件 进入文件后,点击idea右侧栏中的maven按钮,进入maven页面 进入页面后,执行clean与package 执行完package打包后会生成一个目录,jar包就在里面了 根据目录进入页面就能看到生成的jar包了2.使用exe4j将生成的jar包......
  • 用excel打开csv文件,中文显示乱码
    1.情景展示用dbeaver导出数据,生成了csv格式数据。用微软自带的excel工具打开,中文显示乱码。如何解决?2.具体分析用notepad++打开该文件。可以正常显示,并且,该文件是utf-8编码。默认情况下,Windows平台上的UTF-8编码是带有BOM(ByteOrderMark)的。所以,使用Windows上......
  • 面向对象程序设计 之 文件输入输出流
    石家庄铁道大学实验报告课程名称面向对象程序设计班级 姓名 学号 实验日期2023.5.16评分100 实验项目名称:输入输出流一、实验目的掌握文本文件和二进制文件的基本访问方法;了解一般I/O流和文件流的关系;了解文件与......
  • vscode中vue项目中修改.vue文件名后报错
    报错误信息:Alreadyincludedfilename'.../xxx.vue'differsfromfilename'.../xxx.vue'onlyincasing.Thefileisintheprogrambecause:Importedvia'…/xxx.vue'fromfile'.../xxx.vue'Rootfilespecifiedforcompi......
  • Oracle版面本的MySQL8.0的配置文件 my.cnf
    ##############################创建用户和用户组:groupaddworkuseraddwork  准备目录:mkdir-p/home/work/mysql_3306mkdir-p/home/work/mysql_3306/datamkdir-p/home/work/mysql_3306/etcmkdir-p/home/work/mysql_3306/tmpmkdir-p/home/work/mysql_3306/logmkd......