当前位置: 首页 > news >正文

【从零开始学习计算机科学】操作系统(七)文件管理

【从零开始学习计算机科学】操作系统(七)文件管理

  • 文件管理
    • 文件的逻辑结构
    • 文件的读写方式
    • 文件的物理结构与组织
    • 文件目录
    • 空闲块管理
    • 文件的共享
    • 文件的权限控制与保护
    • 文件系统的其他功能

文件管理

文件管理主要涉及文件的逻辑组织和物理组织,目录的结构和管理。所谓文件管理,就是操作系统中实现文件统一管理的一组软件、被管理的文件以及为实施文件管理所需要的一些数据结构的总称(是操作系统中负责存取和管理文件信息的机构)从系统角度来看,文件系统是对文件存储器的存储空间进行组织,分配和回收,负责文件的存储,检索,共享和保护。从用户角度来看,文件系统主要是实现"按名取存",文件系统的用户只要知道所需文件的文件名,就可存取文件中的信息,而无需知道这些文件究竟存放在什么地方。

文件管理的核心对象是文件。文件有多种定义,我们可以自底向上来分析文件结构组成:

(1)数据项。数据项是文件系统中最低级的数据组织形式,可分为以下两种类型:基本数据项和组合数据项。

(2)记录。记录是一个具有特定意义的信息单位,它由该记录在文件中的逻辑地址(相对位置)与记录名所对应的一组键、属性及其属性值所组成。

(3)文件。文件是指由创建者所定义的一组相关信息的集合,可分为有结构文件和无结构文件两种。在有结构文件中,文件由一组相似记录组成。文件有一定的属性,这根据系统的不同而有所不同,但是通常都包括如下属性。

  • 名称。用户为文件指定的名称,便于用户按名存取文件。
  • 标识符。标识文件系统内文件的唯一标签,通常为数字,用户无法直接使用该标识符。
  • 文件类型。支持不同类型文件的系统需要这种信息。
  • 位置。指向存储设备和设备上文件位置的指针。
  • 大小。文件当前大小(用字节、字或块表示),也可包含文件允许的最大值。
  • 保护。对文件进行保护的访问控制信息。
  • 时间、日期和用户标识。文件创建、上次修改和上次访问的相关信息,用于保护、安全和跟踪文件的使用。

有些较新的文件系统还支持扩展文件属性,包括文件的字符编码和安全功能等属性。

文件的逻辑结构

文件不仅仅是一个集合,其内部也有相应的逻辑结构。文件的逻辑结构是用户可见的结构,逻辑文件从结构上分成二种形式:
无结构的流式文件,是指对文件内信息不再划分单位,它是依次的一串字符流构成的文件。有结构的记录式文件,是用户把文件内的信息按逻辑上独立的含义划分信息单位,每个单位称为一个逻辑记录(简称记录)。

文件的逻辑结构应遵循下述原则:

  1. 当用户对文件信息进行修改操作时,逻辑结构应能尽量减少对已存储好的文件信息的变动。
  2. 当用户需要对文件信息进行读取操作时,逻辑结构应使文件系统在尽可能短的时间内查找到需要查找的记录或基本信息单位。
  3. 尽可能减少文件信息存储空间的占用。

文件有许多不同的逻辑结构。

  1. 堆结构。堆结构是最简单的文件组织形式。文件中的记录可以长短不一,每条记录可以拥有不同的属性。这些记录的组织方式是按照生成的先后顺序排列而成。也就是说,记录的排列顺序与记录内容是无关的。堆结构的文件有利于记录的追加,能够较好地用于穷举查找。但是如果需要按照关键字查找某条记录时,只能搜索文件的全部内容,效率会很差。因此这种组织方式对于大部分文件都是不适用的。

  2. 顺序结构。顺序结构是一种最常见的文

相关文章:

  • Vue3 Pinia 符合直觉的Vue.js状态管理库
  • Trae AI 辅助修复uniapp 微信小程序的Bug
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_02带边框和斑马纹的固定表头表格
  • Linux第0节:Linux环境的搭建
  • ES C++客户端安装及使用
  • vue3如何配置环境和打包
  • el-table中slot=“header“和#header的区别
  • Vue 组件通信 - 子传父
  • C#程序结构及基本组成说明
  • Deeplabv3+改进3:在主干网络中添加NAMAttention|助力涨点!
  • 不仅可以用AI辅助学习,更可以让AI制定学习计划
  • 微服务——网关、网关登录校验、OpenFeign传递共享信息、Nacos共享配置以及热更新、动态路由
  • 基于开源AI大模型的精准零售模式创新——融合AI智能名片与S2B2C商城小程序源码的“人工智能 + 线下零售”路径探索
  • SEO长尾关键词增效策略
  • Nuxt.js 全栈开发指南:构建现代 Web 应用的终极解决方案
  • 【2025力扣打卡系列】0-1背包 完全背包
  • UI-APP---基于HBuilder X的微信小程序
  • 学习笔记10——并发编程2线程安全问题与同步机制
  • C++ 编程基础:注释、字符串、输入输出、日期处理、修饰符
  • LeetCode 2269.找到一个数字的 K 美丽值:字符串数字转换(模拟)
  • 西域都护府博物馆今日在新疆轮台县开馆
  • 墨西哥海军一载两百余人帆船撞上纽约布鲁克林大桥,多人落水
  • 特朗普:将于19日分别与普京和泽连斯基通话
  • 淮安市车桥中学党总支书记王习元逝世,终年51岁
  • 广西百色“致富果”:高品质芒果直供香港,带动近五千户增收
  • 龚正会见哥伦比亚总统佩特罗