【操作系统学习笔记】文件管理2.1

【操作系统学习笔记】文件管理2.1

参考书籍: 王道考研
视频地址: Bilibili

文件系统的层次结构

  1. 用户/应用程序
  2. 用户接口: 文件系统需要向上层的用户提供一些简单易用的功能接口。这层就是用于处理用户发出的系统调用请求
  3. 文件目录系统: 用户是通过文件路径来访问文件的,因此这一层需要根据用户给出的文件路径找到相应的 FCB 或索引节点。所有和目录、目录项相关的管理工作都在本层完成
  4. 存取控制模块: 为了保证文件数据的安全,还需要验证用户是否有访问权限
  5. 逻辑文件系统与文件信息缓冲区区: 用户指明想要访问的文件记录号,这一层需要将记录号转换为对应的逻辑地址
  6. 物理文件系统: 这一层需要把逻辑地址转换成实际的物理地址
  7. 辅助分配模块 | 设备管理模块: 负责文件存储空间的管理,即负责分配和回收存储空间

假设某用户请求删除文件"D:/学生信息/6班.xlsx"的最后 100 条记录

  1. 用户需要通过操作系统提供的接口发出上述请求 -> 用户接口
  2. 由于用户提供的是文件的存放路径,因此操作系统需要一层层地查找目录,找到对应的目录项 -> 文件目录系统
  3. 不同的用户对文件有不用的操作权限,因此为了保证安全,需要检查用户是否有访问权限 -> 存取控制模块
  4. 验证了用户的访问权限后,需要把用户提供的记录号转变为对应的逻辑地址 -> 逻辑文件系统与文件信息缓冲区
  5. 知道了目标记录对应的逻辑地址后,还需要转换成实际的物理地址 -> 物理文件系统
  6. 要删除这条记录,必定要对磁盘设备发出请求 -> 设备管理模块
  7. 删除这些记录后,会有一些空闲盘块,因此要将这些盘块回收 -> 辅助分配模块

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

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

相关文章

在职场上,如何提升影响力

在职场上提升影响力是一个持续且多方面的过程,涉及个人技能、人际关系、领导能力以及个人品牌的建立等多个方面。以下是一些建议,帮助你提升在职场上的影响力: 提升专业技能: 深入学习和掌握所在领域的专业知识,保持对…

Linux服务器安装jdk

背景: 安装JDK是我们java程序在服务器运行的必要条件,下面描述几个简单的命令就可再服务器上成功安装jdk 命令总览: yum update -y yum list | grep jdk yum -y install java-1.8.0-openjdk java -version 1.查看可安装版本 yum list | grep jdk 2.如果查不到可先进行 yum upd…

leetcode 热题 100_缺失的第一个正数

题解一: 正负模拟哈希:偏技巧类的题目,在无法使用额外空间的情况下,只能在原数组中做出类似哈希表的模拟。除去数值,我们还可以用正负来表示下标值的出现情况。首先,数组中存在正负数和0,而负数…

猫头虎分享已解决Bug || 数据中心断电:PowerLoss, DataCenterBlackout

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

通过Annotation将用户操作记录到数据库表功能实现

一、背景 在用户对我们所开发的系统访问的时候,需要我们的系统具有强大的健壮性,使得给与用户的体验感十足。在业务开发的过程中,我们通过将几个相关的操作绑定成一个事件,使得安全性以及数据的前后一致性得到提高。但是在溯源方面…

未来城市:探索数字孪生在智慧城市中的实际应用与价值

目录 一、引言 二、数字孪生与智慧城市的融合 三、数字孪生在智慧城市中的实际应用 1、智慧交通管理 2、智慧能源管理 3、智慧建筑管理 4、智慧城市管理 四、数字孪生在智慧城市中的价值 五、挑战与展望 六、结论 一、引言 随着科技的飞速发展,智慧城市已…

RLAIF在提升大型语言模型训练中的应用

RLAIF在提升大型语言模型训练中的应用 大型语言模型(LLMs)在理解和生成自然语言方面展示了巨大能力,但仍面临输出不可靠、推理能力有限、缺乏一致性个性或价值观对齐等挑战。为解决这些问题,研究者开发了一种名为“来自AI反馈的强…

C++模板基础知识

文章目录 模板模板的声明与定义函数模板非类型模板参数类模板类的成员函数定义构造函数的定义类的静态成员的定义类模板的实例化使用模板类型中的类型成员 默认模板参数指定显示模板实参(函数模板显示实参)引用折叠和右值引用参数可变参数模板对参数包的扩展对参数包的转发可变…

linux 日志轮转

前言: 在Linux系统中,日志轮转是一种重要的管理机制,它可以帮助管理日志文件的大小、数量以及保持系统的性能稳定。通过日志轮转,可以定期对日志文件进行归档、压缩或清理,确保系统的日志记录不会无限增长而占用过多的磁盘空间…

动态SLAM论文阅读笔记

近期阅读了许多动态SLAM相关的论文,它们基本都是基于ORB-SLAM算法,下面简单记录一下它们的主要特点: 1.DynaSLAM 采用CNN网络进行分割多视图几何辅助的方式来判断动态点,并进行了背景修复工作。 2.Detect-SLAM 实时性问题&…

TQTT X310 软件无线电设备的FLASH固件更新方法--WIN和UBUNTU环境

TQTT X310 除了PCIE口全部兼容USRP 官方的X310,并配备两块UBX160射频子板以及GPSDO。TQTT X310可以直接使用官方的固件,但是不支持官方的固件升级命令。这篇BLOG提供烧写刷新FLASH的方法。 这里分别给出WIN下和UBUNTU下升级的软件和方法 WIN环境下烧写…

Rust 语言的 async 关键字

一、Rust 的 async 关键字 Rust 语言的 async 关键字,它是 Rust 语言异步编程模型的核心组成部分。async 关键字用于标记一个函数或方法为异步的,这意味着该函数或方法内部将使用 await 关键字来等待异步操作(如 IO 操作、网络请求等&#x…

Java代码审计安全篇-常见Java SQL注入

前言: 堕落了三个月,现在因为被找实习而困扰,着实自己能力不足,从今天开始 每天沉淀一点点 ,准备秋招 加油 注意: 本文章参考qax的网络安全java代码审计,记录自己的学习过程,还希望…

R语言系列1——R语言基础:入门篇

目录 写在开头:1. R语言的基本语法1.1 变量与数据类型1.2 基本操作符与表达式 2. 数据结构简介2.1 向量(Vector)2.2 矩阵(Matrix)2.3 数组(Array)2.4 数据框(Data Frame)2.5 列表(List) 3. 基础函数与包的使用3.1 常用内置函数3.2 安装与加载R包3.2.1 安装R包3.2.2 …

rust的 || 是什么,怎么使用?

在Rust中,|| 是闭包的语法。闭包是一种可以捕获作用域中变量的匿名函数。|| 用来定义一个没有参数的闭包。 你可以使用 || 来创建一个没有参数的闭包,例如: let my_closure || {println!("This is a closure with no parameters.&quo…

使用Git将代码上传至代码托管平台GitCode

使用像GitLbi、GitHub、Gitee等代码托管平台用于版本控制非常滴方便,能够跟踪代码的变化和历史记录,方便管理和回滚,还允许多个开发者同时在一个项目上进行开发和协作,提高团队协作效率。 这些平台的代码托管和上传方式都大同小异…

Ainx的消息封装

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。 📗本文收录于Ainx系列,大家有兴趣的可以看一看 📘相关专栏Rust初阶教程、go语言基础系列…

186基于matlab的信号盲源分离算法

基于matlab的信号盲源分离算法,包括变步长盲源分离(EASI),RLS(自然梯度和普通梯度),并将三种方法分离结果进行对比。程序已调通,可直接运行。 186 信号盲源分离算法 变步长盲源分离 (xiaohongshu.com)

智能革新:2024年AI辅助研发的挑战、机遇与未来展望

引言 在进入2024年的门槛时,我们站在了一个科技飞速发展的新纪元,其中,人工智能(AI)的持续进步和应用扩展无疑是推动这一变革的强大动力。AI辅助研发,作为将人工智能技术应用于科研和产品开发过程的一种模…

第三百九十一回

文章目录 1. 概念介绍2. 方法与细节2.1 实现方法2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何混合选择多个图片和视频文件"相关的内容,本章回中将介绍如何通过相机获取视频文件.闲话休提,让我们一起Talk Flutter吧。 1. …