适用计算机操作系统(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. 操作系统笔记整理12——磁盘存储器的管理

    点此链接可跳转到:操作系统笔记整理--目录索引页 参考书籍:<计算机操作系统>第四版 汤小丹等编著 文章目录 点此链接可跳转到:操作系统笔记整理--目录索引页 外存的组织方式 连续组织方式 ...

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

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

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

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

  4. 计算机操作系统笔记(一) 南京大学慕课版

    一.计算机系统概览 计算机系统的组成:硬件子系统和软件子系统 硬件子系统:电,磁,光,机械与原理构成的各种物理部件的有机组合,是系统工作的载体,包含CPU,主存储器,I/O控制系统,外围设备: 软件子 ...

  5. 计算机操作系统笔记——处理器调度

    处理器调度可以分为三个级别:高级调度.中级调度和低级调度. 低级调度是各类操作系统必须具有的功能:在纯粹的分时或实时操作系统中,通常不需要配备高级调度:在分时系统或具有虚拟存储器的操作系统中,为了提高 ...

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

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

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

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

  8. 操作系统——(9)磁盘存储器的管理

    一.外存的组织方式 1.连续组织方式(连续分配方式) (1).优点 顺序访问容易 顺序访问速度快 (2).缺点 要求为一个文件分配连续的存储空间 必须事先知道文件的长度 不能灵活的删除和插入记录 对于 ...

  9. 计算机操作系统pv实验,计算机操作系统笔记--信号量与PV 操作

    同步和同步机制 一个进程在某一特殊点上被迫停止执行直到接收到一个对应的特殊变量值,通过特殊变量这一设施,任何复杂的进程交互要求可得到满足,这种特殊变量就是信号量(semaphore).在操作系统中,信 ...

最新文章

  1. 西湖大学特聘研究员张岳:自然语言处理的一些瓶颈思考与探索
  2. L2-005. 集合相似度
  3. html中怎样播放本地视频教程,【Axure9基础教程】内联框架如何引入本地音频 视频 HTML PDF等本地文件...
  4. java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy 错误解决办法
  5. HDOJ 1021-1025
  6. CMMI3级认证过程记录
  7. otool 与dylib
  8. bus hound usb 调试
  9. 欧陆词典导入词典库(自定义英文词典)
  10. 11.7 项目:下载所有 XKCD 漫画
  11. 清理MSOCache文件夹
  12. SSL证书中DV证书、OV证书和EV证书的区别
  13. Android11 图片裁剪问题
  14. 读书笔记 | 资本的秘密
  15. [JAVA]向上转型与向下转型
  16. 异常解决:java.lang.IllegalStateException: Failed to introspect Class
  17. 红楼梦java_《红楼梦》最经典的12首诗词,读懂了才是人生
  18. windows开启休眠
  19. php 按位与运算,PHP 按位与()运算符应用实践
  20. OOM终结者参数调优

热门文章

  1. MySQL事物和事物回滚
  2. C++STL之<set>和<map>
  3. 用Vue实现小Q聊天机器人(一)
  4. 基于SSM整合阿里直播服务----java代码实现
  5. ElasticSearch 倒排索引(Inverted Index)| 什么是倒排索引?
  6. 初学QT 实现简单游戏打地鼠
  7. Airbnb是如何创造更好的邮件体验的
  8. Ubuntu 11.10安装QQ2012
  9. 黑马程序员_源自梦想 GUI
  10. 减法器运算电路公式推导