存储管理-操作系统-程序员面试
操作系统-存储管理
5 文件管理
文件:是记录在磁盘上的,具有符号名的,在逻辑上具有完整定义的一组相关信息项的集合。从用户角度看,文件是逻辑外存的最小分配单元,即信息只能以文件形式写入外存。
文件结构
逻辑结构
定义:是用户所观察到的文件组织形式,它独立于物理特性,又称为文件组织(File Organization)
分类:有结构的记录式文件:由一个以上的记录构成
无结构的流式文件:文件无结构,由一串字符构成
物理结构
定义:是指文件的内部组织形式,即文件在物理存储设备上存放方法
常见的几种物理存储方式:
连续存储(顺序结构)
它是将逻辑上连续的文件信息,依次存放在编号连续的物理块上。
链接结构
将逻辑上连续的文件存放在不连续的物理块上,每个物理块,设有一个指针指向下一个物理块。
索引结构
将逻辑上连续的文件(信息)存放在不连续的物理块中,系统为每个文件建立一个专用的数据结构--索引表。索引表中存放文件的逻辑块号和物理块号的对应关系。
索引表的组织方式
链接文件方式:
将多个索引表块按链表文件的方式串联起来。
例如:假设物理块大小为1K,一个索引项占3个字节,文件大小500k
多重索引实例--UNIX文件系统
UNIX文件系统采用多重索引,为了支持文件的共享和提高目录的检索速度,UNIX文件系统中设置了一类特殊的索引结点(index node),称为iNode.inode中包含了文件的控制信息。如(文件索引表:存放文件的物理攀块号)
char di_addr[40]:每3个字节组成一个单元,记录文件的物理块号。
能表示的文件大小:(10+341+341*341+341*341*341=40GB)
Hash文件
采用计算寻址结构,它由主文件和溢出文件组成:
外存空间管理
概述:外存具有较大的存储空间,且被多用户共享,用户执行程序经常要在磁盘上存储,删除文件,因此文件系统必须对磁盘空间进行有效管理。
外存空闲空间管理的数据结构通常称为磁盘分配表,常用的空闲空间的管理方法有:
1)空闲区表
2)位示图
3)空闲块链
空闲分区表:
将外存空间上一个连续未分配区域称为“空闲区“操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第一块、空闲块的块数等信息。
序号 |
第一个空闲块号 |
空闲块数 |
状态 |
位示图
这种方法是在外存上将来一张位示图,记录文件存储器的使用情况,每一位对应文件存储器上的一个物理块,取值为0和1 分别表示空闲和占用。
空闲块链
每个空闲物理块中有指向下一个空闲物理块的指针。所有空闲物理块构成一个链表,链表的头指针存放在文件存储器的特定位置(如:管理块中)
成组连接法
将空闲块分成若干组,每100个空闲块为一组,每组第一个空闲块记录了下一组空闲块的物理盘块号和本组空闲块总数。
释放算法
分配算法
将专用块中的空闲块逐个删除,空闲块数-1,直到减到空闲块数为1时,查看第一个单元中的内容是否为0,如实0,则等待,若不是0,则复制第一个单元对应块的内容(下一组空闲块)到专用块,并将该块分配给请求者。
文件系统的性能问题
影响文件系统的性能因素
存储介质
磁盘性能的好坏
磁盘调度算法的好坏
磁盘高速缓冲区的大小
磁盘调度
磁盘是一种共享设备,为了保证信息的安全。系统每一时刻只允许一个进程启动磁盘进行I/O操作,其余的进程只能等待,因此合理的设置调度算法就十分重要。
设置调度算法的目标是使各进程对磁盘的平均访问时间最小
磁盘的特点
磁盘是一种共享设备
不管系统有多少磁头,多少磁道,多少盘片。在任何时候只能有一个磁头处于活动。
磁盘调度算法
FCFS:最简单
SSF:最短寻道时间优先->"饥饿 "
SCAN:电梯调度算法(距离+ 方向)
旋转调度算法
研究当前移动臂定位后,如何访问数据的问题?可能出现的情况如下:
1)进程请求访问的是 同一磁道 上的 不同编号的扇区
2)进程请求访问的是 不同磁道 上的 不同编号的扇区
3)进程请求访问的是 不同磁道 上的 相同编号的扇区
例:假设当前读写头总是从编号的最小的扇区开始读数据
请求顺序 |
柱面号 |
磁道号 |
扇区号 |
1 |
16 |
5 |
3 |
2 |
16 |
1 |
6 |
3 |
16 |
5 |
1 |
4 |
16 |
9 |
6 |
5 |
16 |
1 |
4 |
6 |
16 |
8 |
12 |
则可能访问的顺序为: 3 1 5 2 6 4和 3 1 5 4 6 2