从0开始回顾操作系统---系列五

简介: 文件管理1、虚拟文件系统?● 文件系统的种类众多,而操作系统希望对用户提供一个统一的接口,于是在用户层与文件系统层引入了中间层,这个中间层就称为虚拟文件系统(Virtual File System,VFS)。● VFS 定义了一组所有文件系统都支持的数据结构和标准接口,这样程序员不需要了解文件系统的工作原理,只需要了解 VFS 提供的统一接口即可。2、硬链接和软链接有什么区别?● 硬链接就是在目录下创建一个条目,记录着文件名与 inode 编号,这个 inode 就是源文件的 inode。删除任意一个条目,文件还是存在,只要引用数量不为 0。但是硬链接有限制,它不能跨越文件系统,也不

文件管理

1、虚拟文件系统?

  • 文件系统的种类众多,而操作系统希望对用户提供一个统一的接口,于是在用户层与文件系统层引入了中间层,这个中间层就称为虚拟文件系统(Virtual File System,VFS)
  • VFS 定义了一组所有文件系统都支持的数据结构和标准接口,这样程序员不需要了解文件系统的工作原理,只需要了解 VFS 提供的统一接口即可。

2、硬链接和软链接有什么区别?

  • 硬链接就是在目录下创建一个条目,记录着文件名与 inode 编号,这个 inode 就是源文件的 inode。删除任意一个条目,文件还是存在,只要引用数量不为 0。但是硬链接有限制,它不能跨越文件系统,也不能对目录 进行链接

  • 软链接相当于重新创建一个文件,这个文件有独立的 inode,但是这个文件的内容是另外一个文件的路径,所以访问软链接的时候,实际上相当于访问到了另外一个文件,所以软链接是可以跨文件系统的,甚至目标文件被删除了,链接文件还是在的,只不过打不开指向的文件了而已

3、文件系统的层次结构?

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

用一个例子来辅助记忆文件系统的层次结构:

假设某用户请求删除文件 “D:/工作目录/学生信息.xlsx” 的最后100条记录。

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


4、磁盘调度算法?

  1. 先来先服务算法(FCFS)
  • 根据进程请求访问磁盘的先后顺序进行调度
  • 假设磁头的初始位置是100号磁道,有多个进程先后陆续地请求访问 55、58、39、18、90、160、 150、38、184 号磁道。
  • 按照 FCFS 的规则,按照请求到达的顺序,磁头需要依次移动到 55、58、39、18、90、160、150、 38、184 号磁道。

  1. 最短寻找时间优先(SSTF)
  • SSTF 算法会优先处理的磁道是与当前磁头最近的磁道。可以保证每次的寻道时间最短,但是并不能保证总的寻道时间最短。(其实就是贪心算法的思想,只是选择眼前最优,但是总体未必最优)
  • 假设磁头的初始位置是100号磁道,有多个进程先后陆续地请求访问 55、58、39、18、90、160、150、38、184 号磁道。

  1. 扫描算法(SCAN)
  • SSTF 算法会产生饥饿的原因在于:磁头有可能在一个小区域内来回来去地移动。为了防止这个问题, 可以规定,只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外移动。这就是扫描算法(SCAN)的思想。由于磁头移动的方式很像电梯,因此也叫电梯算法
  • 假设某磁盘的磁道为 0~200号,磁头的初始位置是100号磁道,且此时磁头正在往磁道号增大的方向 移动,有多个进程先后陆续地请求访问 55、58、39、18、90、160、150、38、184 号磁道。

  1. 循环扫描算法(C-SCAN)
  • SCAN算法对于各个位置磁道的响应频率不平均,而 C-SCAN 算法就是为了解决这个问题。规定只有 磁头朝某个特定方向移动时才处理磁道访问请求,而返回时直接快速移动至起始端而不处理任何请 求
  • 假设某磁盘的磁道为 0~200号,磁头的初始位置是100号磁道,且此时磁头正在往磁道号增大的方向 移动,有多个进程先后陆续地请求访问 55、58、39、18、90、160、150、38、184 号磁道。


相关文章
|
存储 JSON Prometheus
Kubernetes 监控 Harbor
Kubernetes 监控 Harbor
2833 1
|
存储 SQL 缓存
带你全面了解MySQL性能调优、错误代码总结和全局参数配置
本文主要介绍当前MySQL性能优化+原理+实战,包括以下方面: MySQL遇到的的错误及解决方法 全局参数文件配置详解。
1250 0
|
网络协议 Java
【工具】Mermaid + 大模型画流程图
最近看面试文章关于TCP三次握手和四次挥手的文章,时常会看到有类似的图去描述这样的过程。当然觉得这样的图还是蛮规范的,属于流程图的一种,是否有工具可以自动生成呢?但没有细想,昨天刷V2EX看到也有老哥发出了这样的问题。于是顺着评论区大佬的回答,我GET到了一个工具Mermaid 这里三次握手的图取自小林coding的文章
2229 0
|
3月前
|
人工智能 JavaScript Linux
AI龙虾OpenClaw赚钱实战:普通人用AI工具变现方法+阿里云/本地部署+大模型API配置及避坑指南
2026年的AI风口下,真正能让普通人赚到钱的并非动辄融资千万的创业项目,而是像OpenClaw(昵称“龙虾”)这样的开源AI工具。当无数人还在追着AI热点喊口号时,已有一批普通人靠着OpenClaw,在自己熟悉的领域里把技能变成了现金流,把重复劳动换成了高效收益,甚至靠帮别人搭建工具工作流实现了月入上万美金。这些赚钱的人并非技术大神,他们只是找对了工具的使用方式,而OpenClaw的核心价值,从来都不是炫技,而是解决实际问题。
1907 0
|
11月前
|
人工智能 iOS开发 Windows
装了就舍不得卸载的一款电脑截图软件!
这是一款免费且功能强大的截图工具,支持Windows和Mac系统。它不仅界面简洁无广告,还提供带壳截图、文字提取、内容翻译与AI解释等实用功能,极大提升工作与学习效率。下载地址:https://tool.nineya.com/s/1j06j6dmj
1231 0
|
消息中间件 存储 监控
如何修改 Kafka 消息保留时长:经验总结
如何修改 Kafka 消息保留时长:经验总结
3440 4
|
数据可视化
团队协作方法:世界咖啡法实操指南
世界咖啡法(World Café) 是一种让团队通过轻松对话激发创意、共享智慧的协作工具。
883 9
团队协作方法:世界咖啡法实操指南
|
存储 Java 索引
JAVA中的哈希表实现与应用
JAVA中的哈希表实现与应用
443 1
均值回归策略在A股ETF市场获利的可能性
【9月更文挑战第24天】均值回归策略是一种量化交易方法,依据资产价格与平均价格的关系预测价格变动。在A股ETF市场中,该策略可能带来收益,但需考虑市场复杂性和不确定性。历史数据显示某些ETF具有均值回归特征,但未来表现不确定,投资者应结合技术与基本面分析,合理决策并控制风险。
571 2
|
前端开发 JavaScript 架构师
Webpack模块联邦:微前端架构的新选择
Webpack的模块联邦是Webpack 5引入的革命性特性,革新了微前端架构。它允许独立的Web应用在运行时动态共享代码,无需传统打包过程。基本概念包括容器应用(负责加载协调)和远程应用(独立应用,可暴露模块)。实现步骤涉及容器和远程应用的`ModuleFederationPlugin`配置,以及在应用间导入和使用远程模块。模块联邦的优势在于独立开发、按需加载、版本管理和易于维护。通过实战案例展示了如何构建微前端应用,包括创建容器和远程应用,以及消费远程组件。高级用法涉及动态加载、路由集成、状态管理和错误处理。
589 3

热门文章

最新文章