计算机操作系统-磁盘存储器

学习总结目录:

  • 计算机操作系统-学习总结(操作系统引论)
  • 计算机操作系统-学习总结(进程的描述与控制)
  • 计算机操作系统-学习总结(处理机调度与死锁)
  • 计算机操作系统-学习总结(存储器管理)
  • 计算机操作系统-学习总结(输入输出系统)
  • 计算机操作系统-学习总结(文件管理)
  • 计算机操作系统-学习总结(磁盘存储器)

常用的外存分配方式及其对应的物理结构

  • 物理文件——外存分配方式
  • 顺序文件——连续分配方式
  • 链接文件——链接分配方式
  • 索引文件——索引分配方式

磁盘空间的连续组织方式
在这种分配方式中,系统会为每个文件分配一组连续的物理盘块,那么文件在存放的时候也是按顺序被存放到这连续的各个物理盘块中的,这样所构成的文件,称为是顺序文件结构。
计算机操作系统-磁盘存储器_第1张图片

连续分配的主要优缺点

  • 优点:
    ⑴顺序访问容易(也支持直接存取)
    ⑵ 顺序访问速度快(文件的各盘块在同一或相邻的磁道上)
  • 缺点:
    ⑴ 产生许多的外部碎片。
    ⑵ 在存放文件时,须事先知道文件的大小。
    (3)不能灵活插入、删除记录
    (4) 不便于文件动态增加

链接分配(离散分配)
通过每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表。

隐式链接
用于链接各个盘块的指针都是在各个盘块中设置的,并不明显地记录在一张表中,只有在读一个盘块时才能知道链接到此盘块的下一个盘块的指针指向。隐式链接分配方式只适用于顺序访问,很难实现随机访问。

计算机操作系统-磁盘存储器_第2张图片

隐式链接分配的优缺点:

  • 优点
    消除了外部碎片
    无须事先知道文件大小,支持文件动态增长
  • 缺点
    只适合顺序查找,查找效率低
    可靠性差

改进:将几个盘块组成一个簇,在分配盘块时以簇为单位分配。这样可以减少检索时间,但是却增大了内部碎片。

显式链接:

  1. 设置一张链接表(文件分配表即FAT),记录外存的所有物理盘块号,盘块号从0开始,直到N-1结束。
  2. 在此表中每个表项要设置一个链接指针,用来指示一个文件中下一个记录所存放的盘块号。
    计算机操作系统-磁盘存储器_第3张图片

MS-DOS的文件物理结构:
计算机操作系统-磁盘存储器_第4张图片

FAT12系统:
每个FAT表项占12位,每个盘块(扇区)一般为512字节,分配的磁盘空间以盘块为基本单位。由此FAT12系统所支持的最大物理磁盘容量为2125124=8MB。

已知磁盘大小,每个盘块大小,FAT表项大小,求FAT大小的计算问题
⑴ 对于1.2MB的软盘,盘块大小为512B,每个FAT表项占12位,求FAT的大小。
已知磁盘大小,每个盘块大小, 求FAT大小的计算问题
FAT大小=1.2MB/512B * (12b/8b)B=1.8*2^11B
⑵ 对于200MB的硬盘,盘块大小为1KB,求其FAT的大小。
FAT大小=200MB/1kB * (18b/8b)B= (块号与位相等。所以200MB/1KB=200*2^10,要用18位来表示)
⑶ 对于12GB的磁盘,盘块大小为4KB,求其FAT的大小。
FAT大小=12GB/4kB * (22b/8b)B=

FAT16系统
每个FAT表项占16位,FAT表中允许有2^16=65536个表项,可以支持一个分区中有65536个盘块或簇。
一个簇包含64个扇区。由此FAT16系统所支持的最大物理磁盘容量为2^16645124=20484MB。

FAT32系统
每个FAT表项占32位,一个簇包含8个扇区。由此FAT16系统所支持的最大物理磁盘容量为2^3285124=24TB。

链接分配方式的优缺点:

  • 优点:
    能够解决磁盘上的外部碎片的问题,有利于文件的动态增长,并且有利于文件的插入和删除操作。
  • 缺点:
    ⑴ 不能支持高效的直接存取。
    ⑵ 指针的不稳定性。
    ⑶ FAT需占用较大的内存空间。

单级索引分配:
给文件分配一个盘块,存放文件的索引表。此文件索引表所在的的物理块有时称为索引块。再为文件建立一个目录,记录文件的文件名和索引块号。

  • 优点:支持直接访问;不会产生外部碎片。
  • 缺点:磁盘的利用率较低。
    计算机操作系统-磁盘存储器_第5张图片

多级索引分配(适合大文件)
计算机操作系统-磁盘存储器_第6张图片

单级索引和两级索引分配方式中所允许文件最大长度的计算问题
例:
⑴ 若每个盘块大小为1KB,每个盘块号占4个字节,计算单级索引和两级索引分配方式中所允许文件最大长度。
盘块号:1KB/4B=256B 单级索引:1KB*256B=256KB
两级索引:1KB*256B*256B=64MB
⑵若每个盘块大小为4KB,每个盘块号占4个字节,计算单级索引和两级索引分配方式中所允许文件最大长度。
盘块号:4KB/4B=1KB 单级索引:1KB*1KB=1MB
两级索引:1KB*1KB*1KB=1GB

混合索引分配方式(Unix系统)
每个文件都用唯一的索引结点来描述。
在文件的索引结点中设置的直接地址和间接地址一共是13个地址项。
⑴ 直接地址
⑵ 一次间接地址
⑶ 多次间接地址

计算机操作系统-磁盘存储器_第7张图片

常见的文件存储空间管理的方法有空闲表法、空闲链表法、位示图法、成组链接法。
计算机操作系统-磁盘存储器_第8张图片
空闲链表法
(1) 空闲盘块链
将磁盘上所有盘块组织成一条链。
优点:用于分配和回收一个盘块的过程简单
缺点:为一个文件分配盘块时,可能要重复多次
适用于离散分配
⑵ 空闲盘区链
将磁盘上所有空闲盘区(每个盘区可包含若干个盘块)组织成一条链。分配和回收盘区的方法与内存的动态分区分配和回收类似。
用于离散分配、连续分配都可以

位示图:
位示图是用一位二进制来表示磁盘中的一个盘块的使用情况。当其值为“0”时,表明对应的盘块空闲;其值为“1”时,表明对应的盘块已分配。
计算机操作系统-磁盘存储器_第9张图片

盘块的分配:
⑴ 顺序扫描位示图,从中找出一个或一组值为“0”的二进制位;
⑵ 将所找到的一个或一组二进制位转换成与之对应的盘块号。
b=n(i-1)+j
⑶ 修改位示图,令map[i,j]=1。

盘块的回收:
⑴ 将回收盘块的盘块号转换成位示图中行号和列号。
i = (b-1) DIV n +1
j = (b-1) MOD n +1
⑵ 修改位示图。令map [i, j]=0 。

提高磁盘I/O速度的其它方法:

  • 提前读
  • 延迟写
  • 优化物理块的分布
  • 虚拟盘(内存)

你可能感兴趣的:(计算机操作系统,操作系统)