操作系统位视图

原创 2013年12月05日 20:33:39

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

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

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”,作为空闲盘块链的结束标志。

  空闲盘块的分配与回收

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

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

 

操作系统 - 位示图

1、位示图是利用二进制的一位来表示磁盘中盘块的使用情况。 其值为0,表示对应的盘块为空闲;其值为1,表示对应的盘块为已分配。 总之,用二进制的一位来标志空闲和已分配。 2、位示图还可以用于存储空间的分...
  • u012940757
  • u012940757
  • 2017年09月08日 16:05
  • 416

系统分析师重点与难点:位示图

位示图法在近年的系统分析师考试中出现较为频繁,属于考试重点,该考点涉及的知识点的难度并不大,但如果考生从未学习过相关知识就很容易出错。故笔者从《系统分析师考试全程指导》与《系统分析师考试综合知识试题分...
  • jonahzheng
  • jonahzheng
  • 2013年09月27日 23:14
  • 2690

操作系统页面存储管理系统

#include #include #include #include #include using namespace std; #define Maxsize 64          ...
  • u010749410
  • u010749410
  • 2013年12月06日 22:26
  • 617

操作系统--文件管理

7. 文件管理 7.1 磁盘结构与管理 7.1.1 磁盘结构     磁盘是一种随机存取(直接存取)的存储设备,可以直接存取设备上的数据。磁盘由盘片、盘片主轴、磁头和磁头控制器组成,其中,盘片是用...
  • Xw_Classmate
  • Xw_Classmate
  • 2016年01月25日 15:48
  • 1173

系统分析员考试复习笔记-3:第三章 操作系统基本原理

系统分析考试笔记。
  • rodesad
  • rodesad
  • 2016年06月01日 16:05
  • 457

位图法浅析

1、原理 位图是通过将数组下标与应用中的一些值关联映射,数组中该下标所指定的位置上的元素可以用来标识应用中值的情况(是否存在或者数目 或者计数等),位图数组中每个元素在内存中占用1位,所以可以节...
  • fengqiaojiangshui
  • fengqiaojiangshui
  • 2015年04月14日 21:34
  • 2003

已将该虚拟机配置为64位客户机操作系统,但是无法执行64位操作。此主机支持Intel VT-x,但Intel VT-x禁用

1、关机,开机,在品牌商的logo 出现时候按 BIOS 的启动键(一般在logo 的下面有),进入 BIOS 设置页面; 2、选择 configuration ,再选择intel virtua...
  • duomoke
  • duomoke
  • 2015年05月11日 10:19
  • 24824

如何查看linux操作系统是32位还是64位

可以用命令“getconf LONG_BIT”查看, 如果返回的结果是32则说明是32位,返回的结果是64则说明是64位。 此外还可以使用命令“uname -a”查看, 输出的结果中,如果有x86...
  • zhangzyx9
  • zhangzyx9
  • 2017年04月15日 18:03
  • 109

操作系统的位数是什么意思

64位技术 8位处理器、16位处理器、32位处理器和64位处理器,其计数都是8的倍数。它表示一个时钟周期里,处理器处理的二进制代码数。“0”和“1”就是二进制代码,线路上有电信号,则计做1,没有电信号...
  • sws9999
  • sws9999
  • 2008年07月25日 10:33
  • 8560

VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态...
  • taoshujian
  • taoshujian
  • 2017年03月04日 16:09
  • 34475
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:操作系统位视图
举报原因:
原因补充:

(最多只允许输入30个字)