[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
其他
> 详细
操作系统-第十一章-文件系统的实现
时间:
2020-12-11 22:37:39
阅读:
48
评论:
0
收藏:
0
[点我收藏+]
一、文件系统
在存储设备上组织文件的方法和数据结构
操作系统中负责
管理
和
存储文件信息
的模块
系统角度的
:
对存储设备的空间进行组织和分配
负责文件检索、读写等操作
目标
:存取速度和存储空间效率
用户角度
:
提供按名存取的文件访问机制
文件的组织管理,如目录等
目标
:方便的文件存取机制
1.文件系统结构
文件系统本身通常由许多不同的层组成,文件系统具有层次架构
I/O控制
:
设备驱动程序(Device Drivers)
中断
设备驱动程序
:
控制I/O设备运行
向硬件控制器发送专门控制命令
操作系统通过设备驱动程序控制设备进行文件的读写操作
基本文件系统
:
负责物理块读写
向设备驱动程序发送控制命令控制设备控制器对存储设备进行读写操作
文件组织模块
:
管理文件、逻辑块和物理块
把文件的逻辑地址转换为物理地址
管理空闲空间
为文件分配物理块
逻辑文件系统
:
管理文件系统中的元数据
除了文件数据外的所有结构数据
文件按名存取
文件目录组织管理
把文件名转换为文件ID,文件句柄
管理FCB
存储保护
2.文件系统实现
2-1:基本概念
物理块
(
簇
):一个或多个(2
n
)扇区组成,
基本文件读写单位
(
物理
)
分区
(
Partition
):磁盘分割成若干个独立的空间,每个空间称为分区
两大类分区:
主分区
和
扩展分区
主分区
:能够安装操作系统的启动分区
扩展分区
:不能直接使用,必须分成若干逻辑分区
卷
(
逻辑磁盘
)(Volume):磁盘上的逻辑分区,建立在物理分区上
一般每个卷可以建立一个文件系统:
典型文件系统
:
2-2:两种文件系统
磁盘文件系统
和
内存文件系统
磁盘文件系统
:
引导控制块
:包含了系统引导操作系统的各种信息,只有安装操作系统的分区才会有引导控制块
UFS:引导块(Boot block)
NTFS:分区引导扇区(Partition boot sector)
分区控制块
:包含分区信息
总的块数、空闲块数、块大小等信息
UFS:超级块(superblock)
NTFS:主控文件表(master file table)
目录和FCB
用户文件
磁盘结构
:
内存文件系统
包含:
分区表
:所有安装分区信息
目录缓冲结构
:保存最近访问的目录信息
系统打开文件表
进程打开文件表
文件操作需要用到内存文件系统
目的
:通过缓冲技术提高文件系统性能
引入内存文件系统的目的是为了节省外存空间
内存中文件系统结构
:
2-3:虚拟文件系统(Virtual File System)
目的
:
为了支持多个文件系统,引入虚拟文件系统VFS
把多个文件系统整合成一个目录结构
为用户屏蔽各个文件系统的差异
虚拟文件系统可以把多个文件系统整合成一个目录结构,为用户屏蔽各个文件系统的差异
虚拟文件系统
(VFS):
提供了一种面向对象的方法来实现文件系统
为不同类型的文件系统提供了接入VFS的接口
为用户提供了统一的系统调用接口(API)
文件系统接口
(File system interface):
统一的应用程序访问文件的接口
各个文件系统提供给应用程序的接口可能不同,如:open、openfile、openf、open_file等
VFS接口
(VFS interface):
为各类不同的文件系统定义VFS接口
符合该接口的文件系统都可以接入VFS
示意图
:
2-4:网络文件系统(NFS)
网络文件系统
(NFS,Network File System):用于通过LAN(或WAN)访问远程文件系统的软件系统的实现或规范
好处
:节省存储空间,实现共享
2-5:CIFS
通用Internet文件系统(Common Internet File System):在Windows主机之间进行网络文件共享
CIFS使用客户/服务器模式
2-6:常用文件系统
Windows
:
FAT(File Allocation Table)
NTFS(New Technology File System)
ReFS(Resilient File System)
Linux
:
Ext(Ext2、Ext3、Ext4)
Mac OS
:
HFS(Hierarchical File System)
CD
:
CDFS
操作系统-第十一章-文件系统的实现
原文:https://www.cnblogs.com/fangzhiyou/p/14122162.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!