一、文件和文件系统
文件管理:把所管理的程序和数据组织成一系列的文件,并能进行合理的存储、使用等操作。
1 )基本概念
数据项:描述对象某种属性的字符集;是数据组织中可以命名的最小逻辑数据单位。
记录:一组相关数据项集合,描述对象某方面的属性;
关键字:一个记录中的一个或几个数据项的集合,用于唯一的标识一个记录。
文件:由创建者定义的、具有文件名的一组相关元素的集合。
有结构:由相关记录组成
无结构:字符流的形式
属性:类型、长度、物理位置、创建时间
2 )文件类型
不同的系统对文件的管理方式不同
大多用扩展名标志文件类型,按如下几种方式分类文件
按用途:系统、用户、库文件
按数据形式:源文件、目标文件、可执行文件
按存取控制属性:只执行、只读、读写
按组织和处理方式:普通文件、目录文件、特殊(设备)文件
3)文件操作
操作系统提供哪些文件操作?
最基本的操作
创建/删除文件:分空间,形成FCB及目录(名,地址)
读、写:按名检索目录,找到文件地址,开始读、写
设置文件读写位置,实现随机存取(尤其适用于记录文件)
还需要:“打开”与“关闭”:
文件读/写操作 = 检索 + 读/写。
每次读写前都要重复检索增大开销。所以为了方便对同一文件的多次读写,一次检索到文件后就在内存中记录其位置,避免重复检索。被记录下位置的文件就是“打开”文件;
不需要再操作文件时,通过“关闭”这个系统调用关闭文件——即从打开文件表上删除其路径信息即可。
其他操作:改名、改所属用户、改访问权限等属性的操作。
二、文件的逻辑结构
文件系统设计的关键要素:
如何构成一个文件,以及如何存储在外存。
文件结构:
文件的逻辑结构file logical structure:按用户观点如何组织数据;又称文件组织file organization
基本要求:检索速度高、方便修改、降低存储空间费用(不连续)
文件的物理结构:根据外存上的物理块的分配机制,记录文件外存的存储结构。用户感知不到的。
1)文件逻辑结构的类型

①顺序文件
两种记录排列方式
串结构:按记录形成的时间顺序串行排序。记录顺序与关键字无关;
顺序结构:按关键字排序。
检索方法:
从头检索,顺序查找要找的记录,定长的计算相对快。
顺序结构,可用折半查找、插值查找、跳步查找等算法提高效率
②索引文件
为了方便单个记录的随机存取,为文件建立一个索引表,记录每项记录在文件的逻辑地址及记录长度;该索引表按关键字排序,。
索引表内容:
索引号、长度、记录地址指针
检索效率
索引表本身即是个按记录键排序的定长顺序文件,所以能利用算法提高索引表检索速度
③索引顺序文件
既要方便,又要降低开销
本方式是最常见的一种逻辑文件形式。
将顺序文件的所有记录分组
还是建立索引表,但每个表项记录的是每组第1条记录的键值和地址。
组内记录仍按顺序方式检索和使用。
检索一条记录的过程:
先计算记录是在第几组,然后再检索索引确定组在哪里后,在组内顺序查找。
可利用多级索引,进一步提高检索效率。
④直接文件
给定键值(如学号)不需顺序检索直接得到记录的物理地址
三、外存分配方式
目标:有效利用外存空间,提高文件访问速度
常用三种方式:
连续分配
链接分配(不连续)
索引分配
通常一个系统中仅采用一种方式
采用的磁盘分配方式决定了文件的“物理结构”
顺序结构;链接式结构;索引式结构。
注意与逻辑结构名类似但不是一回事。
1)连续分配
为每一个文件分配一组相邻的盘块。
逻辑文件中的记录顺序与存储器中文件占用盘块的顺序一致。
优点:顺序访问容易,读写速度快
2)链接分配
可以为每一个文件分配一组不相邻的盘块。
设置链接指针,将同属于一个文件的多个离散盘块链接成一个链表,这样形成的文件称为链接文件。会有链接成本。

FAT表的相关计算
MS-DOS文件分配结构为例:
一个1.2M的磁盘,盘块512B大小;若文件系统采用FAT格式,则FAT表大小如何?
表项个数 = 盘块个数
= 容量 / 盘块大小 = 1.2 *220 / 29 = 1.2 *211 个
表项大小,决定于盘块数量编号需要的位数=12 位;
FAT表大小 = 表项个数 * 表项大小
= 1.2 211 * 12 bit
= 1.2 211 * 1.5B = 3.6KB
以半字节(0.5B=4b)为基本单位,表项需12位(1.5B)
由上述公式,若容量为200M的磁盘,盘块仍为512B,FAT表大小如何?
FAT表表项有200K≈218 (个)
表项需20位,即2
8+4,2.5字节
FAT表需内存大小为200
2.5=500KB
3)索引分配
链接的不足
顺序检索的时间成本:不能支持高效的盘块直接存取。要对一个文件进行直接存取,仍需在FAT中顺序的查找许多盘块号。
链接信息的空间成本:FAT需占用较大的内存空间。当磁盘容量较大时,FAT可能要占用数MB以上的内存空间。这是令人难以忍受的
改进:
系统运行时只涉及部分文件,FAT表无需全部调入内存
每个文件单独建索引表(物理盘块索引),记录所有分配给它的盘块号;
建立文件时,便分配一定的外存空间用于存放文件盘块索引表信息;
①单级索引分配
索引形式适合大文件
中、小型文件,只需若干链接即可。若用索引分配方式,用一个盘块存放少量索引信息反而不适用。
②多级索引
若文件较大,存放索引表也需要多个盘块(索引盘块)。
索引盘块亦需要按顺序管理起来
若索引盘块数量较少用指针链接的方式即可;
若索引盘块较多,需对索引盘块也采用索引方式管理,形成多级索引。

多级索引下的文件大小
若两级索引,盘块1KB,盘块号占4字节
一个盘块可存放的盘块号数有多少个
1KB/4B = 210/4 = 28 = 256(个)
二级索引下的文件可分配的最大盘块数
256 * 256 =26×210=64 K(个)
文件最大长度为
64K(个)1KB=64MB
若盘块大小为4KB,单级索引允许文件最大长度为4MB(4K/4
4KB),二级索引则文件最大可达4GB(1K1K4KB)。
③混合组织索引(增量式索引组织方式)
多种索引方式相结合,以UNIX system V的索引结点为例:
一个索引结点定义为13个地址项:iaddr(0)~iaddr(12),总的来说分为两种:直接地址、间接地址
iaddr(0)~iaddr(9)存放直接地址,即存文件数据的盘块号;
iaddr(10)存放单级索引的索引盘块号;
剩余的用于文件较大时存放多级索引数据。
iaddr(11)存放二级索引的主索引盘块号
iaddr(12)存放三级索引的主索引盘块号
四、存储空间的管理
为实现存储空间分配,系统需要:
记住空闲存储空间使用情况;为空间设置相应的数据结构;
提供对存储空间分配、回收的操作手段。
典型的管理方法:
1)空闲表和空闲链表法
空闲表法
常用于连续分配管理方式
数据结构
系统为外存上的所有空闲区建立一张空闲表
每个空闲区对应一个空闲表项
(表项包括序号、空闲区的第一个盘块号、空闲盘块数等。)
将所有空闲区按其起始盘块号递增的次序排列,如右图。
存储空间的分配与回收操作
与内存的动态分配类似,同样可采用首次适应算法、循环首次适应算法等。
回收主要解决对数据结构的数据修改。
应该说明,虽然很少采用连续分配方式,然而在外存的管理中,由于它具有较高的分配速度,可减少访问磁盘的I/O频率,故它在诸多分配方式中仍占有一席之地。(如实现虚拟用的部分外存就是连续分配方式)
2)位示图法
利用二进制的一位来表示一个盘块的使用情况。
值为0表示对应的盘块空闲,为1表示已分配。有的系统则相反。
磁盘上的所有盘块都有一个二进制位与之对应,这样由所有盘块所对应的位构成一个集合,称为位示图。
总块数=mn。可用mn个位数来构成位示图,可看成是二维数组(数据结构)。
根据位示图进行盘块分配:
顺序扫描位示图。找到为0的二进制位。
将所找到的一个或一组二进制位,转换成与之对应的盘块号。进行分配操作。
盘块号计算公式为:盘块号 = 列总数*(i-1)+ j;
(注意下标i,j从1开始)
修改位示图。
根据位示图进行盘块回收:
将回收盘块的盘块号转换成位示图中的行号和列号。转换公式为:i=(盘块号-1)div列数+1;j=(盘块号-1)mod列数+1
Div 求商,mod 取余,公式中的i、j都是从1开始的
(如12号盘块转换后为1,12)
修改位示图。
3)成组链接法
大型文件系统,空闲表或空闲链表太长不方便管理操作。
UNIX系统中采用成组链接法,这是将两种方法结合而形成的一种空闲盘块管理方法。
中心思想:
所有盘块按规定大小划分为组;
组间建立链接;
组内的盘块借助一个系统栈可快速处理,且支持离散分配回收。

第八章 磁盘存储器的管理相关推荐

  1. 计算机操作系统笔记第八章磁盘存储器的管理

    适用计算机操作系统(OS)(第四版) 自己的学习笔记,PPT及图片来源网络及自己老师,侵删. 三硬一软一接口--2硬 计算机操作系统第八章 第八章磁盘存储器的管理 8.1 外存的组织方式 8.1.1 ...

  2. 计算机操作系统第八章磁盘存储器的管理

    适用计算机操作系统(OS)(第四版) 自己的学习笔记,PPT及图片来源网络及自己老师,侵删. 三硬一软一接口--2硬 计算机操作系统第八章 第八章磁盘存储器的管理 8.1 外存的组织方式 8.1.1 ...

  3. 操作系统(2)复习 第八章 磁盘存储器的管理

    第八章 磁盘存储器的管理 1.外存的组织方式 (1)连续组织方式 (2)链接组织方式 (3)索引组织方式 连续组织方式 又称连续分配方式,要求为每一个文件分配一组相邻接的盘块. 把逻辑文件中的记录顺序 ...

  4. 第八章 磁盘存储器的管理(二)——文件存储空间的管理

    为实现存储空间分配,系统需要: 记住空闲存储空间使用情况:为空间设置相应的数据结构: 提供对存储空间分配.回收的操作手段. 典型的管理方法: 1)空闲表和空闲链表法 空闲表法:常用于连续分配管理方式 ...

  5. 20952磁盘存储器的管理

    磁盘存储器的管理 8.1  外存的组织方式 如前所述,文件的物理结构直接与外存的组织方式有关.对于不同的外存组织方式,将形成不同的文件物理结构.目前常用的外存组织方式有: (1) 连续组织方式. (2 ...

  6. 第十八章 CSP Session 管理 - 与 CSP.Session 的Sessions

    文章目录 第十八章 CSP Session 管理 - 与 CSP.Session 的Sessions 与 `CSP.Session` 的`Sessions` Session 会话创建 `Session ...

  7. 第八章-磁盘存储器管理(SWUST操作系统期末复习试题)

    1.为了快速访问,又易于更新,当数据为以下形式时,应选用何种文件组织方式? (1)不经常更新,经常随机访问: (2)经常更新,经常按一定顺序访问: (3)经常更新,经常随机访问. 以上三种宜分别采用( ...

  8. 操作系统原理第八章:内存管理

    目录 1 内存管理背景 2 固定分区分配 3 动态内存分配 3.1 首先适应 (First-fit) 3.2 最佳适应 (Best-fit) 3.3 外碎片问题 4 分页 5 分页硬件支持 6 分段管 ...

  9. 8.磁盘存储器的管理

    一.外存分配方式 目标:有效利用外存空间,提高文件访问速度 常用三种方式: 连续分配 链接分配(不连续) 索引分配 通常一个系统中仅采用一种方式 采用的磁盘分配方式决定了文件的"物理结构&q ...

最新文章

  1. 偏度与峰度的正态性分布判断
  2. 镜像的分层结构 - 每天5分钟玩转容器技术(11)
  3. poj 2112 Optimal Milking(二分+Floyd+最大流)
  4. 源码面前没有秘密,推荐 9 个带你阅读源码的开源项目
  5. python爬取小说基本信息_Python爬虫零基础实例---爬取小说吧小说内容到本地
  6. C++读取字符串中的数字的方法
  7. 第 0001 天:聊聊成长型思维模式者
  8. 向前的快捷键_平面设计基础知识:平面设计师应该知道的快捷键。
  9. Android游戏编程之从零开始pdf
  10. 网易云音乐的品牌竞争力研究
  11. Firefox浏览器购物比价插件:惠惠购物助手
  12. 湘源里面关于缩放的问题
  13. openGL中用Assimp库加载骨骼动画
  14. 华为首款鸿蒙平板发布,华为MatePad Pro发布亮相!华为首款鸿蒙平板全新体验!...
  15. 04zookeeper场景应用-master选举
  16. 【专知荟萃18】目标跟踪Object Tracking知识资料全集(入门/进阶/论文/综述/视频/专家,附查看)
  17. 一些标签属性--aria-label--rel属性
  18. vue pc端web页面微信支付和支付宝支付
  19. 因男友迟迟没升P8分手!
  20. Python之CSV文件操作

热门文章

  1. 新手入门matlab之线性系统频域分析
  2. CiteSpace学习笔记(七)——网络信息的查看
  3. 苹果官方mfi认证名单_阿里六星级运营服务商名单出炉!获得官方认证的公司花落谁家?...
  4. 从一个商业产品设计学习oCPC核心知识点
  5. iptables SNAT 和DNAT的转化配置实验
  6. 阿里国际站全球直播,短周期变现渠道受追捧
  7. 凯撒密码(移位加密)
  8. 三年前,我差点成了爬虫大师
  9. 重要的产品分析模型:AARRR模型
  10. Mac升级python3版本