磁盘存储器的管理

  • 主要任务和要求
    • 有效地利用存储空间
    • 提高磁盘的I/O速度
    • 提高磁盘系统的可靠性
  • 外存的组织方式
    • 连续组织方式

      • 连续组织方式的主要优缺点
        • 主要优点如下:
          • 顺序访问容易。
          • 顺序访问速度快。
        • 主要缺点如下:
          • 要求有连续的存储空间。
          • 必须事先知道文件的长度。
          • 不能灵活地删除和插入记录。
          • 不便于动态增长的文件。
    • 隐式链接

    • 显式链接

    • FAT技术

      • 在微软公司的早期MS-DOS中,所使用的是12 位的FAT12 文件系统,后来为16 位的FAT16文件系统;在Windows 95和Windows 98操作系统中则升级为32位的FAT32;WindowsNT、Windows 2000 和Windows XP 操作系统又进一步发展为新技术文件系统NTFS(New Technology File System)。上述的几种文件系统所采用的文件分配方式基本上都是类似于前一节所介绍的显式链接方法。
      • FAT12

      • FAT16

      • FAT32

      • 缺点:
        • 文件分配表大,运行速度慢;不支持容量小于512MB的分区(仍然需使用FAT16);单个文件不能大于4GB;不保持向下兼容。
  • NTFS
    • NTFS新特征
      • 64位地址
      • 可以很好地支持长文件名
      • 具有系统容错功能
      • 能保证系统中的数据一致性
    • 磁盘组织
      • 分区称为卷
      • NTFS以族为磁盘空间分配和回收的基本单位,又称为卷因子。
    • 文件的组织
      • 以卷为单位,将一个卷中所有文件信息、目录信息以及可用的未分配空间信息,都以文件记录的方式记录在一张主控文件表MFT(MasterFile Table)中,一个文件对应一条记录(一行,大小固定为1KB),称为对应文件的元数据,也称为文件控制字。
  • 链接分配的主要优缺点
    • 链接分配的主要优点如下:
      • 采用离散分配,消除了外部碎片,提高了外存利用率。
      • 容易实现文件的动态增长,对文件的增、删、改容易。
    • 链接分配的主要缺点如下:
      • 不能支持高效的直接存取。
      • FAT占用较大的内存空间。
  • 索引组织方式
    • 单级索引分配

    • 多级索引分配

    • 混合索引方式

  • 文件存储空间的管理
    • 空闲表法和空闲链表法
      • 空闲表法

      • 空闲链表法
        • 空闲盘块链。
        • 空闲盘区链
    • 位示图法
      • 位示图

      • 盘块的分配
        • 顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位(“0”表示空闲时)。
        • 将所找到的一个或一组二进制位, 转换成与之相应的盘块号。假定找到的其值为“0”的二进制位,位于位示的第i行、第j列,则其相应的盘块号应按下式计算:b=n(i-1)+j式中, n代表每行的位数。
        • 修改位示图, 令map[i,j]=1。
      • 盘块的回收
        • (1) 将回收盘块的盘块号转换成位示图中的行号和列号。转换公式为:
          • i=(b-1)DIVn+1
          • j=(b-1)MOD n+1
        • 修改位示图。令map [i,j]=0。
    • 成组链接法

  • 提高磁盘I/O速度的途径
    • 磁盘高速缓存(Disk Cache)
      • 磁盘高速缓存的形式
        • 在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;
        • 把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。
      • 数据交付方式
        • 系统可以采取两种方式, 将数据交付给请求进程:
          • 数据交付。这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中。
          • 指针交付。只将指向高速缓存中某区域的指针, 交付给请求者进程。
    • 提高磁盘I/O速度的其它方法
      • 提前读(Read-Ahead)
      • 延迟写
      • 优化物理块的分布
      • 虚拟盘
  • 数据一致性控制
    • 事务
      • 事务的定义
        • 事务是用于访问和修改各种数据项的一个程序单位
        • 事务也可以被看做是一系列相关读和写操作
        • 只有对分布在不同位置的同一数据所进行的读和写(含修改)操作全部完成时,才能以托付操作(CommitOperation)(提交操作)来终止事务。只要有一个读、写或修改操作失败,便须执行夭折操作(Abort peration),也称回滚操作或取消操作。
      • 事务必需满足四个属性,ACID
        • 原子性(Atomic)
        • 一致性(Consistent)
          • 事务完成时,必须使所有的数据保持一致状态。
        • 隔离性(Isolated)
          • 一个事务只能看到另一个事务对数据修改前或者修改后的状态,不能是中间状态。
        • 持久性(Durable)
          • 事务完成后,它对系统的影响是永久性的
      • 事务记录
        • 用于实现事务原子性的数据结构
        • 被放在稳定存储器中,用来记录在事务运行时数据项修改的全部信息,故又称为运行记录(Log)
          • 包括下列字段:
            • 事务名:用于标识该事务的惟一名字;
            • 数据项名:指被修改数据项的惟一名字;
            • 旧值:修改前数据项的值;
            • 新值:修改后数据项将具有的值。
      • 恢复算法
        • (1)undo〈Ti〉。该过程把所有被事务Ti修改过的数据恢复为修改前的值
        • (2)redo〈Ti〉。该过程把所有被事务Ti修改过的数据设置为新值。
        • 系统发生故障,通过查找事务记录表,把尚未清理的事务分成两类:
          • 一类是其所包含的各类操作都已完成的事务:利用redo〈Ti〉过程,把所有已被修改的数据设置成新值。
          • 另一类是其所包含的各个操作并未全部完成的事务:利用undo〈Ti〉过程,将所有已被修改的数据,恢复为修改前的值。
      • 设置检查点
        • 可能存在着许多并发执行的事务,事务记录表中就会有许多记录。时间一长,一旦系统发生故障,在事务记录表中的记录清理起来就非常费时。
        • 引入检查点的主要目的,是使对事务记录表中事务记录的清理工作经常化
        • 只需对最后一个检查点之后的事务记录进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值