适用计算机操作系统(OS)(第四版)
自己的学习笔记,PPT及图片来源网络及自己老师,侵删。
三硬一软一接口——2硬

计算机操作系统第八章

  • 第八章磁盘存储器的管理
    • 8.1 外存的组织方式
      • 8.1.1 连续组织方式
      • 8.1.2 链接组织方式
      • 8.1.5 索引组织方式
    • 8.2 文件存储空间管理
      • 8.2.1 空闲表法和空闲链表法
      • 8.2.2 位示图法
      • 8.2.3 成组链接法

第八章磁盘存储器的管理

8.1 外存的组织方式

1 )连续组织方式 :为每一个文件分配一组相邻接的盘块,由此所形成的文件物理机构将是顺序式的文件结构
2 )链接组织方式 :可以为每个文件分配不连续的磁盘空间,通过链接指针将一个文件的所有盘块链接在一起。
3 )索引组织方式 :对文件采取索引组织方式时,所形成的将是索引式文件结构。

8.1.1 连续组织方式

把逻辑文件中的记录顺序地存储到邻接地各物理盘块中,类似文件count的第一个盘块号是0,文件长度为2,因此盘块号为0和1的两盘块中存放着文件count的数据。

连续分配的主要优点如下:

  • 顺序访问容易。

  • 顺序访问速度快。

连续分配的主要缺点如下:

  • 文件不能动态增长。

  • 外部碎片问题。

  • 必须事先知道文件的长度。

8.1.2 链接组织方式

主要优点:

  • 消除了磁盘的外部碎片,提高了外存的利用率

  • 对插入、删除和修改记录都非常容易

  • 能适应文件的动态增长,无需事先知道文件的大小

1 、隐式链接

在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针,而在每个盘块中都含有一个指向下一个盘块的指针。

隐式链接的主要优点如下:

  • 提高磁盘的空间利用率,不存在外部碎片。

  • 有利于文件的插入、删除和动态扩充。

隐式链接的主要缺点如下:

  • 存取速度慢,一般只适用于信息的顺序存取。

  • 可靠性问题。

主要问题:只适合顺序访问,它对随机访问是及其低效的。

2、显式链接
把用于链接文件各物理块的指针显式地存放在内存的一张链接表中(整个磁盘中仅设置一张),该表称为文件分配表FAT,表的序号是物理块盘号,从0开始,到N-1,盘块总数N,每个表项中存放链接指针(下一个盘块号),文件的FCB的物理地址中填入该文件的链首指针所对应的盘块号。

8.1.5 索引组织方式

链接分配方式虽然解决了连续分配方式所存在的问题, 但又出现了另外两个问题, 即:

1 )不能支持高效的直接存取。要对一个较大的文件进行直接存取,须首先在FAT中顺序地查找许多盘块号。

2 ) FAT需占用较大的内存空间。

索引分配的主要优点如下:

  • 保持了链接结构的优点,又解决了其缺点。

  • 有利于文件的插入、删除和动态扩充。

索引分配的主要缺点如下:

  • 索引表本身带来了系统开销。

1、单级索引组织方式(一级)

为每一个文件分配一个索引块(表),把分配给该文件的所有盘块号都记录在该索引块中,建立一个文件时,只须在为之建立的目录项中填上指向该索引块的指针.

2 、多级索引组织方式(二级)
若文件较大,存放索引表也需要多个盘块(索引盘块),索引盘块亦需要按顺序管理起来,索引盘块较多,需对索引盘块也采用索引方式管理,形成多级索引。

3、增量式索引组织方式
混合组织索引

直接索引 :每项存放的是该文件数据所在盘块的盘块号。
一次间接索引 :实质一级索引分配方式
多次间接索引 :实质是二级索引分配方式

8.2 文件存储空间管理

8.2.1 空闲表法和空闲链表法

1、空闲表法
系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应一个空闲表项(表项包括序号、空闲区的第一个盘块号、空闲盘块数等),将所有空闲区按其起始盘块号递增的次序排列。

属于连续分配方式,空闲盘区的分配与内存的分区(动态)分配类似,同样是采用首次适应算法和最佳适应算法等,它们对存储空间的利用率大体相当,都优于最坏适应算法。

存储空间的分配与回收 :

空闲盘区的分配与内存的动态分配类似,同样是采用首次适应算法、循环首次适应算法等。

系统在对用户所释放的存储空间进行回收时,也采取类似于内存回收的方法, 即要考虑回收区是否与空闲表中插入点的前区和后区相邻接,对相邻接者应予以合并。

2 、空闲链表法

空闲盘块链:适合于离散分配
空闲盘区链

空闲盘块链的分配与回收 :

  • 若某文件申请K个盘块,则从链头依次摘下K个盘块分配,并修改空闲链的链头指针。

  • 回收的盘块依次挂到链尾,并修改空闲链的链尾指针。

空闲盘区链的分配与回收

  • 若某文件申请K个盘块,则可以采用首次适应、最佳适应等算法,从链头开始检索,按照算法规则找到一个大小符合要求的空闲盘区,分配给文件。若没有合适的连续空闲块,也可以将不同盘区的盘块同时分配给一个文件,注意分配后可能要修改相应的链指针、盘区大小等数据。

  • 若回收区和某个空闲盘区相邻,则需要将回收区合并到空闲盘区中。若回收区没有和任何空闲区相邻,将回收区作为单独的一个空闲盘区挂到链尾。

离散分配、连续分配都适用。为个文件分配多个盘块时效率更高

8.2.2 位示图法

是利用二进制的一位来表示磁盘中一个盘块的使用情况,“0”,表示对应的盘块空闲,为“1”时,表示已分配。(有的系统正好相反,但本质上没有区别),磁盘上的所有盘块都有一个二进制位与之对应,这样,由所有盘块所对应的位构成一个集合,称为位示图。

盘块的分配与回收 :

1、分配

1 )顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位(“0”表示空闲时)。

2 )将所找到的一个或一组二进制位, 转换成与之相应的盘块号。假定找到的其值为“0”的二进制位,位于位示的第i行、第j列,则其相应的盘块号应按下式计算:

             b = n*( i - 1 ) + j

式中, n代表每行的位数,注意盘块号、位号(列号)、字号(行号)是从零开始还是从一开始。

3)修改位示图, 令map[i,j]=1。

2、回收

1 )将回收盘块的盘块号转换成位示图中的行号和列号。 转换公式为:

                 i = ( b - 1 ) DIV n + 1j = ( b - 1 ) MOD n + 1

2 )修改位示图。 令map [i,j]=1。

8.2.3 成组链接法

1 、空闲盘块的组织

1 )空闲盘块号栈,用来存放当前可用的一组空闲盘块的盘块号(最多含100个号),以及栈中尚有的空闲盘块(号)数N。顺便指出,N还兼作栈顶指针用。例如,当N=100时,它指向S.free(99)。其S.free(0)是栈底,栈满时的栈顶为S.free(99)。

2 )文件区中的所有空闲盘块被分成若干个组,比如,将每100个盘块作为一组。假定盘上共有10000个盘块,每块大小为1KB,其中第201 ~ 7999号盘块用于存放文件,即作为文件区,这样,该区的最末一组盘块号应为7901~ 7999;次末组为7801~ 7900,倒数第二组的盘块号为301~ 400;第一组为201~300。

3 )将每一组含有的盘块总数N和该组所有的盘块号记入其前一组的第一个盘块的S.free(0)~S.free(99)中。这样,由各组的第一个盘块可链成一条链。

4 )将第一组的盘块总数和所有的盘块号记入空闲盘块号栈中,作为当前可供分配的空闲盘块号。

5 )最末一组只有99个盘块,其盘块号分别记入其前一组的S.free(1)~ S.free(99)中而在S.free(0)中则存放“0”作为空闲盘块链的结束标志。(注:最后一组的盘块数应为99,不应是100,因为这是指可供使用的空闲盘块。其编号应为(1~99),0号中放空闲盘
块链的结尾标志。

2、空闲盘块的分配与回收

分配:

1 )当系统要为用户分配文件所需的盘块时,须调用盘块分配过程来完成。该过程首先检查空闲盘块号栈是否上锁(栈是临界资源,每次只允许一个进程进去访问,设置了锁)

2 )如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分
配给用户,然后将栈顶指针下移一格。

3 )若该盘块号已是栈底,即S.free(0),这是当前栈中最后一个可分配的盘块号。由于在该盘块号所对应的盘块中记有下一组可用的盘块号,因此,须调用磁盘读过程将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去(其中的有用数据已读入栈中)。

4 )然后,再分配一相应的缓冲区(作为该盘块的缓冲区)。最后,把栈中的空闲盘块数减1并返回。

2 、回收

1 )在系统回收空闲盘块时,须调用盘块回收过程进行回收。它是将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。

2 )当栈中空闲盘块号数目已达100时,表示栈已满,便将现有栈中的100个盘块号记入新回收的盘块中,再将其盘块号作为新栈底。

计算机操作系统第八章磁盘存储器的管理相关推荐

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

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

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

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

  3. 汤晓丹的第四版计算机操作系统--第八章总结概述

    第八章 磁盘存储器的管理 1.外存的组织方式: 1.连续组织方式:优点:顺序访问容易,顺序访问速度快.缺点:要求为一个文件分配连续的存储空间. 必须事先知道文件的长度.不能灵活地删除和插入记录.对于那 ...

  4. 计算机操作系统 第三章 内存管理

    内存管理 无存储器抽象 早期的计算机的存储器没有抽象,程序引用的内存地址都是物理地址,这样的话程序中只可以运行一个进程,如果说运行两个进程的话就容易造成一个进程访问另一个进程的地址空间,然后两个进程同 ...

  5. 计算机操作系统——(第四章) 存储器管理/内存管理

    目录 Previously on OS... 存储器的层次结构 操作系统的内存管理 程序运行的步骤 地址绑定 Previously on Experiment 内核的编译 gdb调试[1] Stopp ...

  6. 第八章 磁盘存储器的管理

    一.文件和文件系统 文件管理:把所管理的程序和数据组织成一系列的文件,并能进行合理的存储.使用等操作. 1 )基本概念 数据项:描述对象某种属性的字符集:是数据组织中可以命名的最小逻辑数据单位. 记录 ...

  7. 计算机操作系统第八章测试题及答案,《计算机基础》第八章练习题

    第八章 习 题 一.选择题 (1)中文Word编辑软件的运行环境是 C A)DOS B)WPS C)Windows D)高级语言 (2)段落的标记是在输入什麽之后产生的? B A)句号 B)Enter ...

  8. 计算机操作系统感悟随笔--内存空间管理

    1.单一连续分配 内存分为系统区和用户区两部分: 系统区:仅提供给OS使用,通常放在内存低址部分 用户区:除系统区以外的全部内存空间,提供给用户使用. 最简单的一种存储管理方式,只能用于单用户.单任务 ...

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

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

最新文章

  1. embed的名词_常见名词解释
  2. QuickFIX/N入门
  3. D-query SPOJ - DQUERY (主席树)
  4. 设计模式六大原则(3)——依赖倒置原则
  5. 个人信息管理系统代码_Thymeleaf+SpringBoot+Mybatis实现的易游网旅游信息管理系统...
  6. 机器学习:从入门到晋级
  7. C++ C# 中作用域限定符
  8. (转)Android Bitmap 与 Drawable之间的转换
  9. IDEA自带的数据库连接工具连接(DM)达梦数据库
  10. 因一纸设计稿,我把竞品APP扒得裤衩不剩(上)
  11. codeforce 1395总结
  12. openldap sssd服务认证登录
  13. [跑步] 如何锻炼脚踝
  14. 南卡和苹果蓝牙耳机哪个好?高颜值且音质好的蓝牙耳机推荐
  15. 计算机硬技术与基础在线测试,计算机硬件技术基础网上作业及答案
  16. pythonic 代码_15个Pythonic的代码示例(值得收藏)
  17. Kali渗透测试:使用Armitage针对漏洞进行攻击
  18. 点击反欺诈预测Baseline
  19. 从数据来源、数据生态、数据技术、数加平台等方面,漫谈阿里大数据
  20. 鸿蒙座舱子品牌来了,华为发布 HarmonySpace:万物互联的智能出行空间

热门文章

  1. 融云 java_融云开发者文档
  2. 全网首发 的Fiddler系列文章(二):Fiddler界面主菜单功能介绍
  3. 怎样调整计算机桌面字体大小,如何把电脑字体调小?教你怎么调整电脑屏幕的字体大小...
  4. Unknown column 'salary' in 'field list'
  5. Google是如何教会机器玩Atari游戏的
  6. 文档多级列表_如何在Google文档中创建多级列表
  7. Voldemort启动失败案例一则
  8. Android MVP详解
  9. git加速 用谷歌浏览器插件
  10. python酒店数据分析_python数据分析实战——AirBnb用户分群