文件的逻辑结构

  • 顺序文件:可变长记录文件无法实现随机存储、定长记录、顺序结构文件可以快速检索
  • 索引文件:索引表就是定长记录的顺序文件,若按关键字排列,可支持快速检索
  • 索引顺序文件:将记录分组,每组对应一个索引表项,多级索引

文件目录

  • 一个文件对应一个FCB(目录项),多个组成目录
  • 无环图目录结构:在树形基础上,增加指向同一节点的有向边,为共享节点设置一个计数器,为0时删除
  • 索引节点:目录项只放文件名+索引节点指针,检索时磁盘I/O就少了

文件物理结构

  • 磁盘块一般与内存块、页面大小相同
  • 分配方式
    • 连续分配:支持随机访问,碎片
    • 链接分配:隐式链接(每块指向下一块指针)不支持随机访问;显示链接(FAT)分配表常驻内存,支持随机访问
    • 索引分配:多级索引表,支持随机访问

文件存储空间管理

  • 空闲表法:记录每个连续空闲区的起始盘块号、盘块数。分配采用首次适应、最佳适应等;回收时表项合并
  • 空闲链表法:以盘块/盘区为单位组成一条空闲链
  • 位示图法:一个二进制位对应一个盘块。行号+列号与盘块号对应
  • 成组链接法(UNIX):超级快:链表指向下一组 空闲盘快数+空闲块号。在磁盘目录区设置超级快,放入内存

文件的基本操作

  • 创建:分配外存空间,创建目录项
  • 删除:回收外存空间,删除目录项
  • 打开:把目录项复制到内存的打开文件表(打开计数器),进程有自己的打开文件表(读写指针、访问权限)
  • 关闭:删除进程和内存(计数器为0)的打开文件表
  • 读:根据读指针、读入数据量、内存位置将文件数据从外存读入内存
  • 写:根据写指针、写出数据量、内存位置将文件数据从内存写出外存

文件共享

  • 硬链接:每个用户目录项指向同一个索引节点,count为0时删除
  • 软链接:link型文件(Windows快捷方式),多次磁盘I/O

磁盘调度算法(寻道)

FCFS(先来先服务)、SSTF(最短寻找时间优先 贪心算法) -> SCAN(扫描算法 电梯算法) -> LOOK(边移动边观察)

减少磁盘延迟时间(转圈)的方法

扇区交替编号、错位命名、地址结构(柱面号,盘面号,扇区号)