扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
8.1 外存的组织方式主要任务:
有效利用存储空间,提高磁盘的I/O速度,提高磁盘系统的可靠性
如何为一个文件分配磁盘空间,磁盘最小空间是盘块(扇区),即文件的盘块是如何组织的
为每个文件分配一组相邻的连续盘块
目录上:存放每个文件名,开始盘块号,长度
优点:顺序访问容易,访问速度快;
缺点:
每个文件分配的盘块是可以离散的
链接方式
①隐式链接
目录上:存放每个文件名,开始盘块号,截至盘块号
隐式:盘块上有指向下一盘块的指针
②显式链接
目录上:存放每个文件名,开始盘块号
显式:用一个FAT文件分配表记录记录所有的物理块号,以及每一个物理盘块链接的下一个盘块
利用显式链接的组织方式组织文件系统
FAT代数
以簇为单位分配和回收的基本单位,一簇是一组邻接的盘块
所支持的文件系统容量大小=一簇的大小 * 2的FAT位数的次方 * 分区数
以簇为单位的好处
能适应磁盘容量不断增大的情况,还可以减少FAT表中的项数,使FAT表占用更少的存储空间,并减少访问FAT表的存取开销
从FAT12->FAT16->FAT32
8.1.4 NTFS的文件组织方式FAT表项有限制,最多允许4096个,随着磁盘容量的增加,必然会引起簇内碎片和簇的大小增加
FAT16表的长度只有65356项,随着磁盘容量的增加,簇的大小也必然会随之增加,为了减少簇内碎片,也就应当增加FAT表的长度,为此需要再增加FAT表的宽度,这样也就由FAT16演变为FAT32。
FAT32 是FAT系列文件系统最后产物,FAT32每个簇固定4KB,每簇8个盘块,FAT32可以管理大磁盘空间大到2TB。
FAT32不向下兼容,运行速度比FAT16慢,有最小管理空间限制,FAT32卷至少有65537个簇
NTFS(New Technology File System)是一个专门为Windows NT开发的、全新的文件系统,并适用于Windows 2000/XP及后续的Windows OS。
磁盘组织
NTFS是以簇作为磁盘空间分配和回收的基本单位的。
一个文件占用若干个簇,一个簇只属于一个文件
这样,在为文件分配磁盘空间时,就无须知道盘块的大小,只要根据不同的磁盘容量,选择相应大小的簇,即使NTFS具有了与磁盘物理块大小无关的独立性。
文件组织
在NTFS中,以卷为单位,将一个卷中的所有文件信息、目录信息以及可用的未分配空间信息,都以文件记录的方式记录在一张主控文件表MFT(Master File Table)中。
该表是NTFS卷结构的中心,从逻辑上讲,卷中的每个文件作为一条记录,在MFT表中占有一行,其中还包括MFT自己的这一行。每行大小固定为1 B,每行称为该行所对应文件的元数据(metadata),也称为文件控制字。
特征:64位磁盘地址,具有数据一致性检查等功能
8.1.5 索引组织方式链接组织方式解决了连续组织的问题(不便于随机访问),出现新问题:
- 不支持高效直接存取
- FAT需占用较大的内存空间,盘块号随机分布在FAT中,查找一个文件所有盘块号,需将整个FAT放入内存空间
所以我们只需将打开文件的盘块号调入内存,没必要将整个FAT调入内存
为每个文件分配一个索引表
索引表都分配在一个盘块中,称为索引盘块
目录上:保存每个文件的文件名和索引盘块号
优点:大大加快了大型文件的查找速度
缺点:小型文件多,那个索引盘块就多,且索引盘块利用率不高
单级索引组织方式
多级索引组织方式
在为一个大文件分配磁盘空间时,如果所分配出去的盘块的盘块号已经装满一个索引块时,OS须再为该文件分配另一个索引块,用于将以后继续为之分配的盘块号记录于其中。依此类推,再通过链指针将各索引块按序链接起来。
增量式索引方式
8.2 文件存储空间的管理混合式的,大,中,小文件都能照顾到
8.2.1 空闲表法和空闲链表法对文件存储空间的管理:主要是哪些盘块已被使用,哪些未被使用,其次还要提供分配和回收操作
空闲表法(连续)
记录连续的空闲盘块的第一盘块号与空闲盘块数
- 分配与回收:每次分配都可以采用FCFS等分配一个连续的空闲盘块
优点:较高分配速度,减少磁盘I/O频率
缺点:分配空间必须是连续的
空闲链表法(离散)
8.2.2 位示图法空闲盘块拉成一个空闲盘块链
- 分配与回收:离散分配盘块
优点:分配和回收过程非常简单
缺点:分配盘块,可能要重复操作多次,分配和回收效率低
8.2.3 成组链接法利用二进制1或0表示是否使用,所有盘块对应的位构成一个集合
- 分配与回收:查找状态位空闲的未分配盘块,转换出对应盘块的物理地址,修改位示图
8.3 提高I/O速度的途径UNIX采用将空闲表和空闲链表法结合起来的方式
8.3.1 磁盘高速缓存高速缓存,提前读,延迟写,优化物理块分布,虚拟盘,廉价磁盘冗余阵列
在内存中为磁盘盘块,指定一个缓冲区,缓冲区里保存的是某些盘块副本
如何将磁盘高速缓存的数据传输给请求进程?
① 数据交付:把数据交付给该请求进程的内存工作区中
②指针交付:将指向该缓冲数据的指针交付给请求进程
采取什么置换策略?
使用置换算法考虑因素:访问频率,可预见性,数据的一致性
已修改的数据如何从缓冲重新写入磁盘?
周期性写回磁盘
RAID0 (并行交叉存取)
每个盘块数据分为若干子盘块,把每个子盘块数据存储到不同磁盘的相同位置,将整个盘块数据传送到内存时,采用并行传输方式,将各个子盘块数据同时向内存传输
RAID1(磁盘镜像功能)
RAID2(并行传输功能)
RAID5(具有独立传送功能)
优点: 并行传输提高I/O速度,(除RAID0)有备份可靠性高,利用小磁盘组成价格优惠
低级磁盘
作用:
防止磁盘因表面缺陷而造成数据丢失
措施:
8.4.2 第二级容错技术 STF-II双份目录和双份文件分配表(备份)
热修复重定向和写后读校验
中级磁盘
作用
防止磁盘驱动器和磁盘控制器故障所导致系统不能正常工作
措施:
8.4.3 基于集群技术的容错功能磁盘镜像:在同一个磁盘控制器下再建立一个完全相同的磁盘驱动器(备份)
磁盘双工:在主机下再增设一个相同磁盘控制器(备份)
集群:多主机组成的一个统一的计算机系统
措施
8.4.4 后备系统双机热设备模式:一台主机工作,一台主机备份
双机互为备份模式:双机同时工作,各自工作各自任务,每个服务器都配有两个磁盘,一个用于使用,一个用于接受对方备份数据
公用磁盘:双机模式共有一个磁盘,一个磁盘分为两个卷来使用
防止自然因素破坏
8.5.1 事务数据一致性:数据在不同文件下,在任何时候都是相同的
事务是用于访问和修改各种数据项的一个程序单位。 可被看作一系列读和写的操作
托付操作:指事务对所有文件的读,写操作全部完成
关系操作:指事务对多个文件的任何一个操作失败都会导致夭折
对一批数据进行修改,要么全部完成,要么一个也不修改
事务记录是一种数据结构,能够记录事务运行时的数据项修改的全部信息
8.5.2 检查点①undo:事务记录只有开始操作,没有托付操作,就将所有数据还原
②redo:事务有开始和托付操作:就将所有数据更新
记录事务随着时间的增加,记录的数据会越来越多
完成事务表的清理工作
各个事务执行是顺序的,只有一个事务执行后,才允许另外一个事务开始执行,如何保证顺序性
8.5.4 重复数据的数据一致性问题并发控制:
- 利用互斥锁:只有获得对象的互斥锁才能对对象进行操作(效率不高)
- 共享文件只允许一个事务去写,却允许多个文件去读;引入共享锁
- 区别:互斥锁一个只允许一个事务读写,共享锁允许多个事务读,但不可写
信号量机制
重复文件一致性
对于UNIX文件目录,其每个目录项中含有一个ASCII码的文件名和一个索引结点号,后者指向一个索引结点。
当有重复文件,一个目录项由一个文件名和若干索引结点号组成,索引结点号对应各自索引结点
链接数一致性
在UNIX的文件目录中,其每个目录项内都含有一个索引结点号,用于指向该文件的索引结点。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流