操作系统(五)| 文件系统上 结构 存取方式 文件目录 检索

文章目录

  • 1 文件系统概述
  • 2 文件的结构与存取方式
    • 2.1 磁盘
    • 2.2 文件的物理结构
      • 2.2.1 连续结构
      • 2.2.2 链式结构
      • 2.2.3 索引结构
    • 2.3 文件的存取方式
  • 3 文件目录
    • 3.1 基本概念
    • 3.2 目录结构
      • 单级目录结构
      • 多级目录结构
    • 3.3 文件目录检索
      • 3.3.1 目录检索
      • 文件寻址
    • 3.4 文件目录的实现

1 文件系统概述

为什么引入文件系统

​ 长期保存(大量的)数据

​ 方便用户使用

文件是有名字的记录在外存中的一组有逻辑意义的数据项序列

什么是文件系统

文件系统是OS中用来管理文件的那一部分软件

文件系统功能

统一管理文件的存储空间,实施存储空间的分配与回收
实现文件信息的共享,提供文件的保护和保密措施
实现文件的按名访问
访问的透明性:用户不关心文件的物理位置和存储结构
向用户提供一个方便使用的接口,提供对文件系统操作的命令
提供与I/O的统一接口

文件分类:

Unix系统将文件分为3类:
普通文件(regular):ASCII或二进制文件
目录文件(directory)
特殊文件:设备文件,管道,套接字(socket),符号链接等

2 文件的结构与存取方式

文件是存在磁盘上的

2.1 磁盘

磁盘有扇片 磁道 扇区

扇区——磁盘最小可寻址单元

簇——存储块,固定数量的扇区

  • 平均存取时间

​ T=平均寻道时间+平均旋转等待时间+数据传输时间(有时候忽略不计)

​ 其中

​ 平均寻道时间——磁头寻找到指定磁道所需要的平均时间(大约5ms)

​ 平均旋转等待时间——指定扇区旋转到磁头下方所需要的平均时间(约4-6ms)

  • 磁盘响应时间=平均存取时间+排队时间+控制器时间
    在这里插入图片描述

注意想明白这里的0.5的来源

2.2 文件的物理结构

2.2.1 连续结构

文件的数据存放在若干连续的物理块中
在这里插入图片描述

优点:

简单,只要记住首块的地址和文件长度即可
支持顺序存取和随机存取
顺序存取速度快
所需的磁盘寻道时间最少

缺点:

不利于文件的动态增长
若预留空间:浪费,而且预先不知道文件的最大长度
否则需要重新分配和移动
不利于文件内容的插入和删除
存在外部碎片问题

2.2.2 链式结构

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

在这里插入图片描述

优点

提高了磁盘空间利用率
不存在外部碎片问题
有利于文件的插入和删除
有利于文件的动态扩充

缺点:
随机存取相当缓慢
需要更多的寻道时间
链接指针占用一定的空间

改进变形

FAT表

文件分配表FAT的一种实现:
磁盘的每个分区包含一个FAT,分区中的每个盘块在其中占有1项(以块号为索引),指出文件中下一块的块号。
在目录项中包含文件首块的块号。

在这里插入图片描述

2.2.3 索引结构

一个文件的数据存放在若干不连续的物理块中,系统为每个文件建立一个专用数据结构–索引表。
索引表存放逻辑块号与物理块号的对应关系
一个索引表就是磁盘块地址(块号)数组,其中第i个条目存放的是逻辑块号i对应的物理块号
文件目录的目录项中指出索引表的物理地址

在这里插入图片描述

优点:保持了链接结构的优点,又避免了其缺点
既能顺序存取,又能随机存取
能满足文件动态增长、插入、删除的要求
能充分利用外存空间
缺点
索引表本身带来了系统开销

UNIX文件系统采用的是多级混合索引结构。
每个文件的索引表为13个索引项
最前面10项直接登记存放文件数据的物理块号(直接寻址)
如果文件大于10块,则利用第11项指向一个物理块,该块中最多可放256个文件物理块的块号(一次间接寻址)。对于更大的文件还可利用第12和第13项作为二次和三次间接寻址
UNIX中采用了三级索引结构后,文件最大可达16M个物理块

索引表的组织方式

如果文件很大,索引表较大,超过了一个物理块,就必须考虑索引表的组织方式,即怎么去存储索引表

索引表的组织方式:
(1)连续方式
索引表占用多个连续的盘块
(2)链接方式
索引表按照链式结构组织,占用多个不连续的盘块
(3)多级索引(多重索引)
例如,二级索引:将一个大文件的所有索引表(二级索引)的地址放在另一个索引表(一级索引)中
此外,还有三级索引等。

题目

设每个盘块4kB,每个盘块号4B,则采用3次间址可表示的文件最大长度为 [4T] B。

2.3 文件的存取方式

主要有顺序存取和随机存取两种。
1 顺序存取
对文件中的数据按逻辑顺序进行读/写的存取方式
2 随机存取
对文件中的数据按任意顺序进行读/写的存取方式
3 按键(key)存取:如DBMS

还与介质有关

3 文件目录

3.1 基本概念

几个基本的概念

1 文件控制块

文件控制块是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有相关信息(文件属性)

基本信息:文件的名字、地址(起始物理块号)、长度、结构(逻辑结构、物理结构)、类型
存取控制信息:文件属主(owner)、存取权限或口令
使用信息:共享计数,文件的建立、修改日期等

2 文件目录

把所有的FCB组织在一起,就构成了文件目录
即文件控制块的有序集合

3 目录项
构成文件目录的项目(目录项就是FCB)

4 目录文件

为了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,
这个文件就叫目录文件
目录主要是为了系统快速实现“按名访问”而引入的,
查目录是文件系统最频繁的操作,因此目录的合理组织很重要

3.2 目录结构

单级目录结构

为所有文件建立一个目录文件(组成一线性表)
优点:简单,易实现

缺点:
限制了用户对文件的命名(容易出现“命名冲突”)
顺序检索文件时,平均检索时间长
不利于对文件的共享

多级目录结构

对二级目录简单扩充可得三级或三级以上的多级目录结构,
即允许每一级目录中的FCB要么指向文件,要么指向下一级子目录。
这是当今主流OS普遍采用的目录结构
优点:
层次结构清晰,便于管理和保护;有利于文件分类;
能较好地避免重名问题;提高了文件检索速度;有利于访问权限的控制

3.3 文件目录检索

访问文件时,必须首先确定读写文件的地址,需要下列2步:
(1)目录检索:根据文件名,查目录,确定文件的起始地址。
(2)文件寻址:确定所要访问文件内容的起始位置(地址)。

3.3.1 目录检索

文件的“按名存取”是通过查目录实现的,系统按照文件的路径名检索
基本的目录检索技术主要有:
线性检索法
Hash方法
为了加快目录检索,许多系统引入当前目录(工作目录)、相对路径名等。

文件寻址

根据目录项(FCB)中记录的文件物理地址等信息,
求出文件的任意记录或字节在存取介质上的地址
文件寻址与文件的物理结构和逻辑结构以及设备的物理特性有关
文件的内容是以块为单位存储的。
但存取文件时,对于记录式文件,是以逻辑记录为单位提出存取要求的,因此,
存储介质上的物理块长度与逻辑记录的长度是否匹配直接影响到对文件的寻址

3.4 文件目录的实现

当查找文件时候,需要依次将存放目录的物理块装入内存,逐一比较文件名,直到找到为止

例如:文件说明占128B,每块512B,则每块可存放4个目录项

设目录文件占用的盘块数是N个,则要找到一个目录项,
平均需要读入多少个盘块?(N+1)/2块

把文件说明信息(FCB)都放在目录项中的缺点:
查找文件缓慢,因为目录项较大
文件目录平常放在外存中,当文件很多时,可能占用大量的外存物理块

但实际上我们文件检索只需要文件名,不需要那么多其他的信息

所以我们将文件说明分成两部分 把FCB分成两部分

1 符号目录项——包括文件名,文件号

2 基本目录项——除文件名以外的所有信息

目录项分解法的典型实现

1 符号文件目录+基本文件目录

2 目录项 + | 节点

目录项分解法的典型实现:
(1)符号文件目录 + 基本文件目录
(2)目录项 + I节点
Unix/Linux采用此方法,它把符号目录项称为目录项,
而把基本目录项称为I节点(Index node,索引节点),
这样,目录项中的文件号就是I节点号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/147634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从0开始学习JavaScript--JavaScript 字符串与文本内容使用

JavaScript中的字符串和文本内容处理是前端开发中的核心技能之一。本文将深入研究字符串的创建、操作,以及文本内容的获取、修改等操作,并通过丰富的示例代码,帮助读者更全面地了解和应用这些概念。 JavaScript 字符串基础 字符串是JavaScr…

微服务实战系列之Nacos

导语 欢迎来到 “Nacos” 的世界! Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单…

Ubuntu环境下以编译源码的方式安装Vim

目录 1. Ubuntu环境 2. 下载编译vim 2.1 效果截图 3. 配置环境变量 1. Ubuntu环境 Linux chris-166 6.2.0-36-generic #37~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 9 15:34:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux 2. 下载编译vim // 源码下载 chris_166chris-16…

文件传输客户端 SecureFX mac中文版支持多种协议

SecureFX mac是一款功能强大的文件传输客户端,可在 Mac 操作系统上使用。它由 VanDyke Software 公司开发,旨在为用户提供安全、可靠、高效的文件传输服务。 SecureFX 支持多种协议,包括 SFTP、SCP、FTP、FTP over SSL/TLS 和 HTTP/S。它使用…

联想系列台式机Win11系统改Win7系统BIOS设置步骤

联想最新一代的台式机默认操作系统Win11,采用UEFIGPT启动模式,并且开启了安全启动功能,一般用户不能直接将Win11改成Win7,如果需要更改操作系统,是需要再BIOS菜单中关闭安全启动功能的,并且把启动模式设置成…

2018年五一杯数学建模C题江苏省本科教育质量综合评价解题全过程文档及程序

2019年五一杯数学建模 C题 江苏省本科教育质量综合评价 原题再现 随着中国的改革开放,国家的综合实力不断增强,中国高等教育发展整体已进入世界中上水平。作为一个教育大省,江苏省的本科教育发展在全国名列前茅,而江苏省13个地级…

Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )

文章目录 一、表查询数据准备及测试环境搭建模型层前期准备测试环境搭建代码演示 二、ORM操作相关方法三、ORM常见的查询关键字四、ORM底层SQL语句五、双下划线查询数据查询(双下划线)双下划线小训练Django ORM __双下划线细解 六、ORM外键字段创建基础表…

Linux常用命令——bye命令

在线Linux命令查询工具 bye 命令用于中断FTP连线并结束程序。。 补充说明 bye命令在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行。 语法 bye实例 bye在线Linux命令查询工具

蓝眼开源云盘部署全过程(手动安装)

环境概述: 系统-Centos7.4 数据库-MySQL8 云盘系统-Tank4.0.1 前提:操作系统已完成安装,有外部网络。 一.安装数据库 cd到合适的目录进行下载安装操作,期间不要切换出去。 wget https://dev.mysql.com/get/mysql80-community-r…

Linux使用ifconifg命令,没有显示ens33

Linux使用ifconifg命令,没有显示ens33 1.问题2.步骤2.1 查看虚拟机的组件是否启动了2.2 修改网络配置文件 ONBOOT修改为yes2.3 重启网络2.4 修改网络服务配置 3.解决 1.问题 打开虚拟机准备使用xshell连接时发现连接失败,在机器上查看ip发现ens33不现实…

C++项目案例圆和点的关系 (涉及知识点:头文件定义类,cpp文件实现类,类和作用域,linux编译运行c++项目)

一.项目描述 点与圆有三种关系&#xff1a; 点在圆外 点在圆上 点在圆内计算点到圆心的距离就能判断点在圆的哪个地方。二.项目结构 三.include文件 3.1 Circle类的声明 Circle.h // 防止头文件重复包含 #pragma once // #include<iostream> #include "Point.h&…

互联网上门预约洗衣洗鞋店小程序;

拽牛科技干洗店洗鞋店软件&#xff0c;方便快捷&#xff0c;让你轻松洗衣。只需在线预约洗衣洗鞋服务&#xff0c;附近的门店立即上门取送&#xff0c;省心省力。轻松了解品牌线下门店&#xff0c;通过列表形式展示周围门店信息&#xff0c;自动选择最近门店为你服务。简单填写…

SpringSecurity5|12.实现RememberMe 及 实现原理分析

security/day08 这个功能大家还熟悉么&#xff1f;我们在登录网站的时候&#xff0c;除了让你输入用户名和密码&#xff0c;还会有个勾选框&#xff1a; 记住我&#xff01;&#xff01;&#xff01;不是让大家记住我哈。 值得一提的是&#xff0c;Spring Security 也提供了这个…

设计模式篇---装饰模式

文章目录 概念结构实例总结 概念 装饰模式&#xff1a;动态的给一个对象增加一些额外的职责。就扩展功能而言&#xff0c;装饰模式提供了 一种比使用子类更加灵活的替代方案。 装饰模式是一种对象结构型模式&#xff0c;它以对客户透明的方式动态地给一个对象附加上更多的责任…

asp.net学生成绩评估系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 asp.net 学生成绩评估系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 系统运行视频连接&#xff1a;https://www.bilibili.com/video/BV1Wz4y1A7CG/ 二、功能介绍 本系统使用Microsof…

Mysql主从搭建

Mysql主从搭建 1.Mysql下载1.1 查看操作系统2.2 下载mysql安装包 2.Mysql安装2.1 解压2.2 目录重命名2.3 创建data&#xff0c;存储文件2.4 创建用户组2.5 授权用户2.6 配置环境变量2.7 编辑my.cnf2.8 创建相关目录和文件2.9 初始化数据库2.10 复制mysql.server到/etc/init.d/下…

要做好解决方案工程师,这些核心技能是必须要掌握的。

要做好解决方案工程师&#xff0c;以下是一些比较中肯的建议&#xff1a; 1、了解客户需求&#xff1a;解决方案工程师需要深入了解客户的需求和挑战&#xff0c;以便为他们提供定制化的解决方案。通过与客户交流、调研市场趋势等方式&#xff0c;了解客户的业务需求和目标&…

适用于 Windows 的 10 个最佳视频转换器:快速转换高清视频

您是否遇到过由于格式不兼容而无法在您的设备上播放视频或电影的情况&#xff1f;您想随意播放从您的相机、GoPro 导入的视频&#xff0c;还是以最合适的格式将它们上传到媒体网站&#xff1f;您的房间里是否有一堆 DVD 光盘&#xff0c;想将它们转换为数字格式以便于播放&…

Android 解决CameraView叠加2个以上滤镜拍照黑屏的BUG (二)

1. 前言 这段时间&#xff0c;在使用 natario1/CameraView 来实现带滤镜的预览、拍照、录像功能。 由于CameraView封装的比较到位&#xff0c;在项目前期&#xff0c;的确为我们节省了不少时间。 但随着项目持续深入&#xff0c;对于CameraView的使用进入深水区&#xff0c;逐…

【TEC100TAI-KIT】青翼科技基于复微青龙JFMQL100TAI的全国产化智能异构计算平台

板卡概述 TEC100TAI-KIT是我司自主研制的一款基于上海复旦微电子复微青龙100TAI的全国产智能异构计算平台开发套件&#xff0c;该套件包含1个复微青龙100TAI核心板和1个PCIE规格的扩展底板。 该套件的核心板集成了100TAI的最小系统&#xff0c;包含一颗JFMQL100TAI900片上系统…