关闭

操作系统位视图

1403人阅读 评论(0) 收藏 举报
分类:

 位示图法在近年的系统分析师考试中出现较为频繁,属于考试重点,该考点涉及的知识点的难度并不大,但如果考生从未学习过相关知识就很容易出错。故笔者从《系统分析师考试全程指导》与《系统分析师考试综合知识试题分类精解》中选取部分内容以及例题组成该文,供考生参考。阅读本文即可应对相关考题。

  位示图法是操作系统中一种管理空闲存储空间的方法。管理空闲空间除使用位示图法还可用:空闲区表法、空闲链表法、成组链接法本文将详细介绍这几种方法。

1.空闲区表法

  空闲表法属于连续分配方式。它与内存管理中的动态分区分配方式雷同。

将外存空间上一个连续未分配区域称为空闲区。操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表包含序号,第一空闲盘块号,空闲盘块数等信息。它适用于连续文件结构。

  它为每个文件分配一个连续的存储空间。系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应于一个空闲表项。

2.空闲链表法

  是将所有的空闲盘区拉成一条空闲链。根据构成链的基本元素的不同,可有两种链表方式:空闲盘块链、空闲盘区链。

  空闲盘块链

  它是将磁盘上的所有空闲存储空间,以盘块为基本元素拉成一条链。优点是用于分配和回收一个盘块的过程非常简单;缺点是空闲盘块链可能很长。

  空闲盘区链

  这是将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。在每个盘区上除了含有用于指示下一个空闲盘区的指针外,还应标有指明本盘区大小(盘块数)的信息。这方法分配和回收过程较复杂,但空闲盘区链较短。

3.位示图法

  这种方法是在外存上建立一张位示图(bitmap),记录文件存储器的使用情况。每一位仅对应文件存储器上的一个物理块,取值01分别表示空闲和占用。文件存储器上的物理块依次编号为:012

  位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时表示已分配。由所有盘块对应的位构成一个集合,称为位示图。位示图也可描述为一个二维数组mapVar map:array[1...m,1...n]of bit;

  盘块的分配

  根据位示图进行盘块分配时,可分三步进行:

·顺序扫描位示图,从中找出一个或一组值均为“0”的二进制位;

·将找到的二进制位,转换成与之相应的盘块号;

·修改位示图,令map[i,j]=1

  盘块的回收

  盘块的回收分两步:

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

i=(b-1)DIVn+1

j=(b-1)MODn+1

·修改位示图。令map[i,j]=0例题1

  某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若磁盘上的物理块依次编号为:012,系统中字长为32位,每一位对应文件存储器上的一个物理块,取值01分别表示空闲和占用,如下图所示。

   假设将4195号物理块分配给某文件,那么该物理块的使用情况在位示图中的第__(1)__个字中描述;系统应该将__(2)__

  (1 A.128      B. 129      C.130      D. 131

  (2 A. 该字的第3位置“0”     B. 该字的第3位置“1”

C. 该字的第4位置“0”      D. 该字的第4位置“1”

  例题分析

  本题其实是一道死的计算题,与专业知识没有什么关系。

  因为物理块编号是从0开始的,所以4195号物理块其实就是第4196块。因为字长为32位,也就是说,每个字可以记录32个物理块的使用情况。4196/32=131.125,所以,4195号物理块应该在第131个字中(字的编号也是从0开始计数)。那么,具体在第131个字的哪一位呢?到第130个字为止,共保存了131*32=4192个物理块(04191),所以,第4195块应该在第131个字的第3位记录(要注意:0是最开始的位)。因为系统已经将4195号物理块分配给某文件,所以其对应的位要置1

  例题答案

DB

  例题2

  某磁盘盘组共有10个盘面,每个盘面上有100个磁道,每个磁道有32个扇区,假定物理块的大小为2个扇区,分配以物理块为单位。若使用位图(bitmap)管理磁盘空间,则位图需要占用__(3)__字节空间。若采用空白文件管理磁盘空间,且空白文件目录的每个表项占用5个字节,则当空白文件数目大于__(4)__时,空白文件目录占用的字节数大于位图占用的字节数。

  (3A.32000      B. 3200     C.2000      D. 1600

  (4A.400       B.360       C.320       D. 160

  例题分析

  位图(位示图)用二进制位表示磁盘中的一个盘块的使用情况,0表示空闲,1表示已分配。磁盘上的所有盘块都与一个二进制位相对应,由所有的二进制位构成的集合,称为位图。位图法的优点是很容易找到一个或一组相邻的空闲盘块。位图小,可以把它保存在内存中,从而节省了磁盘的启动操作。

  已知磁盘盘组共有10个盘面,每个盘面上有100个磁道,每个磁道有32个扇区,则一共有10*100*32=32000个扇区。试题又假定物理块的大小为2个扇区,分配以物理块为单位,即一共有16000个物理块。因此,位图所占的空间为16000/8=2000字节。

  若采用空白文件管理磁盘空间,且空白文件目录的每个表项占用5个字节,2000/5=400,因此,则当空白文件数目大于400时,空白文件目录占用的字节数大于位图占用的字节数。

  例题答案

CA

4.成组链接法

  在UNIX系统中,将空闲块分成若干组,每100个空闲块为一组,每组的第一个空闲块登记了下一组空间块的物理盘块号和空闲块总数,假如一个组的第一个空闲块号等于0的话,有特殊的含义,意味着该组是最后一组,即无下一组空闲块。

  空闲表法和空闲链法,都不适合用在大型文件系统中。在UNIX中采用的成组链接法兼备了两种方法的优点而克服了两种方法均有的、表太长的缺点。

  空闲盘块的组织

  空闲盘块号栈。

  文件区中的所有空闲盘块,被分成若干个组。

·将每一组含有的盘块总数N和该组所有的盘块号,记入其前一组的第一个盘块的

S.free(0)~S.free(99)中。

·将第一组的盘块总数和所有的盘块号,记入空闲盘块号栈中。

·最末一组只有99个盘块,盘块号记入其前一组第一盘块的S.free(1)~S.free(99)中。

  而在S.free(0)中存放“0”,作为空闲盘块链的结束标志。

  空闲盘块的分配与回收

  当系统要为用户分配文件所需的盘块时,需调用盘块分配过程来完成。

  在系统回收空闲盘块时,需调用盘块回收过程进行回收。

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:58104次
    • 积分:1108
    • 等级:
    • 排名:千里之外
    • 原创:53篇
    • 转载:28篇
    • 译文:0篇
    • 评论:3条
    最新评论