












用一个例子来辅助记忆文件系统的层次结构:假设某用户请求删除文件“D:/工作 目录/学生信息.xIsx”的最后100条记录。1. 用户需要通过操作系统提供的接口发出.上述请求– -用户接口2. 由于用户提供的是文件的存放路径,因此需要操作系统- -层一层地查找目录,找到对应的目录项–文件目录系统3. 不同的用户对文件有不同的操作权限,因此为了保证安全,需要检查用户是否有访问权限一一存取控制模块(存取控制验证层)4. 验证了用户的访问权限之后,需要把用户提供的“记录号”转变为对应的逻辑地址—逻辑文件系统与文件信息缓冲区5. 知道了目标记录对应的逻辑地址后,还需要转换成实际的物理地址—物理文件系统6. 要删除这条记录,必定要对磁盘设备发出请求–设备管理程序模块7. 删除这些记录后,会有一些盘块空闲,因此要将这些空闲盘块回收—-辅助分配模块

目录实现的基本方法有线性表和哈希表。目录的实现就是为了查找。目录查询是通过在磁盘上反复搜索完成的,需要不断进行I/O操作,开销较大,所以为了减少I/O操作,把当前使用的文件目录复制到内存,以后要使用该文件时只需在内存中操作,降低了磁盘操作次数,提高了系统速度。

文件分配对应于文件的物理结构,是指如何为文件分配磁盘块。常用的磁盘空间分配方法有三种:连续分配、链接分配和索引分配。








操作系统保存着链头、链尾指针。适用于离散分配的物理结构。为文件分配多个盘块时可能要重复多次操作

操作系统保存着链头、链尾指针。离散分配、连续分配都适用。为一个文件分配多个盘块时效率更高。







一次磁盘读写操作的时间由寻找(寻道)时间、延迟时间和传输时间决定。除了减少寻找时间外,减少延迟时间也是提高磁盘传输效率的重要因素。可以对盘面扇区进行交替编号,对磁盘片组的不同盘面错位命名。寻道时间和延迟时间都可以通过一定的方法进行削减,但传输时间是磁盘本身性质所决定的,不能通过一定的措施减少。


磁头共移动了100-55 + 58-55 + 58-39 + 39-18 + 90-18 + 160-90 + 160-150 + 150-38 + 184-38=45+3+19+21+72+70+10+112+146=498个磁道,平均寻找长度=498/9=55.3。(注:由于磁头的初始位置是磁道100,而FCFS算法是先来先服务,所以要将磁头从100移到第一个请求55的地方,需要移动磁道数为100-55=45个;而根据FCFS第二个请求按顺序是58,磁头从55到58要移动磁道数为58-55=3个,….,后面依次按照FCFS算法来计算即可。磁道顺序是100——55——58——39——18——90——160——150——38——184)。

磁头共移动了100-90+90-58+58-55+55-39+39-38+38-18+150-18+160-150+184-160=10+32+3+16+1+20+132+10+24=248个磁道,平均寻找长度=248/9=27.5。(注:由于磁头的初始位置是磁道100,而SSTF算法是最短寻找时间优先,比较请求队列中的几个顺序,发现90离100最近,即100-90=10是最短寻找时间,现在磁头到90位置了,继续比较,发现58到90的距离是最短的,即90-58=32是最短寻找时间,…,后面依次按照SSTF算法来计算即可。磁道顺序是100——90——58——55——39——38——18——150——160——184)。

磁头共移动了150-100+160-150+184-160+200-184+200-90+90-58+58-55+55-39+39-38+38-18=50+10+24+16+110+32+3+16+1+20=282个磁道,平均寻找长度=282/9=31.33。(注:由于磁头的初始位置是磁道100,而SCAN算法规定了磁头移动方向是沿着磁道号增大的顺序移动,故150离100最近而不是90,并且要移动到最大值200(即磁盘端点),才开始往回移动也就是从200移到90。磁道顺序是100——150——160——184——200——90——58——55——39——38——18)。

磁头共移动了150-100+160-150+184-160+200-184+200-0+18-0+38-18+39-38+55-39+58-55+90-58=50+10+24+16+200+18+20+1+16+3+32=390个磁道,平均寻找长度=390/9=43.33。(注:与SCAN算法不同的是,到达磁盘端点200时,下一个访问的磁道号是0(即起始磁盘端点)而不是距离最近的90号。磁道顺序是100——150——160——184——200——0——18——38——39——55——58——90)。

