精华内容
下载资源
问答
  • 2020-07-11 15:43:27

    如何实现存储空间的分配和回收取决于对空闲块的管理方法。 下面介绍几种常用的管理方法:

    一  位示图法

    注意,记住这几句话:每个盘面里面有扇区, 扇区里有磁盘组,

                                        磁盘组里面有柱面, 柱面里面有磁道; 

    由于磁盘被分块后,每一块的大小都是一样的,所以也可仿照 页式存储空间的管理方法,对每个磁盘可以用一张位示图来指示磁盘空间的使用情况。 一个磁盘的分块确定后,根据总块数决定位示图由多少个字组成, 位示图中的每一位与一个磁盘块对应,某位为 "1" 状态表示相应块已被占用,为 “0” 状态表示所对应的块是空闲块。

    假定一个盘组共有 100 个柱面, 编号为0~99。 每个柱面上有 8个磁道, 编号为0~7。 每个盘面分成4个扇区, 编号为0~3, 则整个磁盘空间共有4*8*100 = 3200个存储块。 如果用字长为32位的字来构造位示图, 共需100个字, 如图5-16所示。

    如果磁盘块的块号按柱面顺序和盘面顺序来编排,则第0号柱面第0盘面上的块号是0,1,2,3;第0号柱面第1盘面上的块号是4,5,6,7。依此计算, 第0号柱面上共有32块, 编号为0~31, 第1号柱面上的块号就为32~64, 于是位示图中, 第i个字的第j位对应的块号为:

    块号 = i * 32+j,  即  块号 = 字号 * 32 + 位号

    当有文件要存放到磁盘上是,根据需要的块数查位示图中为“0” 的位, 表示对应的那些存储块空闲, 可供使用。 一方面在位示图中查到的位上置占用标志“1”, 另一方面根据查到的位, 先计算出对应的块号, 然后确定这些可用的存储块在哪个柱面上,对应哪个扇区,属于哪个磁头, 按图5-16的示例,如果假定 M=[块号/32],  N=块号 mod 32,  那么由块号可计算出:

    柱面号 = M

    磁头号=[N/4]

    扇区号=N mod 4

    注意: [] 表示取N被4除后商的整数部分,   mod 表示取余

               (后面出现[]类似含义,但不一定除4)

    于是,文件信息就可按确定的地址存放到磁盘块上。

    当要删去某个文件, 归还存储空间时,可以根据归还块的柱面号、磁头号和扇区号计算出相应的块号, 由块号再推算出它在位示图中的对应位。把这一位的占用标志 “1”清成“0”, 表示该块已成了空闲块。 仍以图5-16为例,根据归还块所在的柱面号、磁头号和扇区号, 计算对应位示图中的字号和位号:

    块号=柱面号 * 32 + 磁头号 * 4 + 扇区号

    字号=[块号/32]

    位号=块号 mod 32

    注意: 以上计算式都是以图5-16为例进行的。 在实际应用时,应根据磁盘的结构确定位示图的构造,以及每个柱面上的块数和每个盘面上的扇区数,列出相应的换算公式。确定空闲块地址的通用公式为:

    块号=字号*字长 + 位号

    柱面号=[块号/柱面上的块数]

    磁头号=[(块号 mod 柱面上的块数)/ 盘面上的扇区数]

    扇区号=(块号 mod 柱面上的块数) mod 盘面上的扇区数

     

    归还一块时, 寻找位示图中位置的通用公式为:

    块号=柱面号*柱面上的块数+磁头号*盘面上的扇区数+扇区号

    字号=[块号/字长]

    位号=块号 mod 字长

     

    二  空闲块表法

    系统为每个磁盘建立一长空闲块表,表中每个登记项记录一组连续空闲块的首块号和块数。 空闲块数为 “0” 的登记项为无效登记项, 如表5-4所示

     

    这种管理方式适合采用顺序结构的文件。存储文件时从空闲块表中找一组连续的空闲块,删除文件时把归还的一组连续登记到空闲块表中。

    空闲块的分配和回收算法类似主存储器的可变分区管理方式中采用的最先适应、最优适应和最坏适应算法。

    更多相关内容
  • 设计内容: (1)采用空白文件目录结构管理磁盘空间,实现磁盘空间...(3)把个文件目录、磁盘空间管理的数据结构变化情况显示出来。 三个功能应该都有,我负责的是空白文件目录结构管理磁盘空间,采用的是队列的方式
  • 任务书-2基于Linux的磁盘存储空间管理.doc
  • 连续的磁盘存储空间的分配和回收 模拟UNIX系统的空闲块成组链接法,实现磁盘存储空间管理。 用位示图管理磁盘存储空间
  • 把空闲块分成若干组,把指向一组中各空闲块的指针集中一起。这样既可方便查找,又可减少为修改指针而启动磁盘的次数
  • 学年操作系统的课程设计,磁盘存储空间管理,采用了位视图,希望有帮助
  • 磁盘存储空间管理实践报告.doc
  • 有代码,并有相关介绍,本人已经调试过!希望对大家有帮助......
  • 磁盘存储空间模拟管理系统 位示图方向
  • 一、外存分配方式 二、储空间管理

    一、外存分配方式

    a.目标:有效利用外存空间,提高文件访问速度
    b.采用的磁盘分配方式决定了文件的物理结构
    顺序结构;链接式结构;索引式结构。

    c.常用的外存组织三种方式:

    1. 连续分配(顺序结构
      a.为每一个文件分配一组相邻的盘块。
      b.逻辑文件中的记录顺序与存储器中文件占用盘块的顺序一致。
      优点:顺序访问容易,读写速度快
      缺点
      *会产生外存碎片。可紧凑法弥补,但需要额外的空间,和内存紧凑相比更花时间。
      *创建文件时要给出文件大小;存储空间利用率不高,不利于文件的动态增加和修改;
      适用于变化不大顺序访问的文件,在流行的UNIX系统中仍保留了连续文件结构。如对换区

    2. 链接分配(不连续)(链接式结构
      可以为每一个文件分配一组不相邻的盘块。
      设置链接指针,将同属于一个文件的多个离散盘块链接成一个链表,这样形成的文件称为链接文件。会有链接成本。
      (1)优点
      离散分配,消除外部碎片,提高利用率
      同时适用于文件的动态增长;修改容易
      ==>>不足
      ①顺序检索的时间成本:不能支持高效的盘块直接存取。要对一个文件进行直接存取,仍需在FAT中顺序的查找许多盘块号。
      ②链接信息的空间成本:FAT需占用较大的内存空间。当磁盘容量较大时,FAT可能要占用数MB以上的内存空间。这是令人难以忍受的
      (2)链接有两种形式:
      ①隐式链接
      a.链接信息隐含记录在盘块数据中;记录中只有开始盘块号和结束盘块号
      b.每个盘块拿出若干字节,记录指向下一盘块号的指针。(减少了每一块存储的字节数)
      c.问题:只能顺着盘块读取,可靠性低(花费的时间长
      ②显式链接(FAT–file allocationtable)
      a.链接信息以信息表的形式显示存放
      b.属于一个文件的盘块通过链接成为一体,每个链条的首地址作为文件地址记录在相应文件的FCB(文件控制块)的“物理地址”字段中。
      c.记录盘块链接的指针显示地记录为一张链接表
      d.所有已分配的盘块号都记录在其中,称文件分配表(FAT)
      e.为了提高文件系统访问速度,FAT一般常驻内存
      (根据FAT可知外存大小)

      在这里插入图片描述

    3. 索引分配(索引式结构
      a.系统运行时只涉及部分文件,FAT表无需全部调入内存
      b.每个文件单独建索引表(物理盘块索引),记录所有分配给它的盘块号;
      c.建立文件时,便分配一定的外存空间用于存放文件盘块索引表信息;
      (1)单级索引分配
      分配一个盘块存储该文件占用的盘块号
      a.索引形式适合大文件
      b.中、小型文件,只需若干链接即可。若用索引分配方式,用一个盘块存放少量索引信息反而不适用。
      (2)多级索引
      a.若文件较大,存放索引表也需要多个盘块(索引盘块)。
      b.索引盘块亦需要按顺序管理起来
      若索引盘块数量较少,比指针链接方式浪费空间,用指针链接的方式即可
      索引盘块较多,需对索引盘块也采用索引方式管理,形成多级索引
      FBC中存放文件名和主索引号,主索引中再存放一级索引
      在这里插入图片描述
      (3)混合组织索引(增量式索引组织方式)
      一个索引结点定义为13个地址项:iaddr(0)~iaddr(12),总的来说分为两种:直接地址、间接地址
      a. iaddr(0)~iaddr(9)存放直接地址,即存文件数据的盘块号(仅需访问磁盘一次)
      b. iaddr(10)存放单级索引的索引盘块号(需两次访问磁盘)
      c. 剩余的用于文件较大时存放多级索引数据。
      *iaddr(11)存放二级索引的主索引盘块号(需三次访问磁盘)
      *iaddr(12)存放三级索引的主索引盘块号(需四次访问磁盘)

    例题:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二、存储空间的管理

    为实现存储空间分配,系统需要:
    a.记住空闲存储空间使用情况;为空间设置相应的数据结构
    b.提供对存储空间分配、回收的操作手段。

    典型的管理方法:
    (1)空闲表和空闲链表法
    ①空闲表法
    常用于连续分配管理方式
    数据结构:
    a.系统为外存上的所有空闲区建立一张空闲表
    b.每个空闲区对应一个空闲表项(表项包括序号、空闲区的第一个盘块号、空闲盘块数等。)
    c.将所有空闲区按其起始盘块号递增的次序排列
    ②空闲链表法
    将所有空闲盘区拉成一条空闲链。
    数据结构:
    根据构成链所用基本元素的不同,可把链表分成两种形式:
    a.空闲盘块链
    优点:分配和回收一个盘块的过程非常简单,链表长,大量分配时需要操作的指针多
    b.空闲盘区链
    链表长度不定,分配时操作的指针数量相对较少,但分配回收操作相对复杂。

    (2)位示图法
    值为0表示对应的盘块空闲,为1表示已分配。有的系统则相反。
    总块数:mn
    在这里插入图片描述
    a.盘块号计算公式:
    j从1开始:盘块号 = 列总数*(i-1)+ j
    j从0开始:盘块号 = 列总数*(i-1)+ j+1
    b.根据盘块算行列计算公式:
    i从1开始:i=(盘块号-1)/列数+1;j=(盘块号-1)%列数+1
    i从0开始:i=(盘块号-1)/列数;j=(盘块号-1)%列数
    c.优缺点:从位示图中很容易找到一个或一组相邻接的空闲盘块。但限于容量问题,常用于微型机和小型机中

    (3)成组链接法
    a.大型文件系统,空闲表或空闲链表太长不方便管理操作。
    b.UNIX系统中采用成组链接法,这是将两种方法结合而形成的一种空闲盘块管理方法。
    c.中心思想:
    所有盘块按规定大小划分为组;
    组间建立链接;
    组内的盘块借助一个系统栈可快速处理,且支持离散分配回收

    展开全文
  • 模拟UNIX系统成组链接法实现磁盘存储空间管理.doc
  • 模拟unix系统成组链接法实现磁盘存储空间管理.doc
  • 在Linux下管理磁盘贮存区算的上一个技巧,很多朋友在这上面常常问我,今天我就把这方面的东西汇总一下,从Linux特有的交换分区的原理开始介绍Linux下如何管理磁盘。  1、交换空间是什么  Linux中的交换空间...
  • 一、文件存储空间管理(一)存储空间的划分与初始化 安装 Windows 操作系统的时候,一个必经步骤是——为磁盘分区(C: 盘、D: 盘、E: 盘等) (二)存储空间管理 1. 空闲表法 适用于“连续分配方式” 如何分配磁盘...

    一、文件存储空间管理

    在这里插入图片描述
    在这里插入图片描述

    (一)存储空间的划分与初始化

    • 安装 Windows 操作系统的时候,一个必经步骤是——为磁盘分区(C: 盘、D: 盘、E: 盘等)
      在这里插入图片描述

    (二)存储空间管理

    1. 空闲表法

    • 适用于“连续分配方式”
      在这里插入图片描述
    • 如何分配磁盘块:与内存管理中的动态分区分配很类似,为一个文件分配连续的存储空间。同样可采用首次适应、最佳适应、最坏适应等算法来决定要为文件分配哪个区间。
      在这里插入图片描述
    • 如何回收磁盘块:与内存管理中的动态分区分配很类似,当回收某个存储区时需要有四种情况:
      ①回收区的前后都没有相邻空闲区;
      ②回收区的前后都是空闲区;
      ③回收区前面是空闲区;
      ④回收区后面是空闲区。
      总之,回收时需要注意表项的合并问题

    2. 空闲链表法

    在这里插入图片描述

    (1)空闲盘块链

    在这里插入图片描述

    (2)空间盘区链

    • 连续分配、离散分配都适用
      在这里插入图片描述

    3. 位示图法

    在这里插入图片描述

    • 如何分配:若文件需要K个块,
      ①顺序扫描位示图,找到K个相邻或不相邻的“0”;
      ②根据字号、位号算出对应的盘块号,将相应盘块分配给文件;
      ③将相应位设置为“1”。
    • 如何回收:
      ①根据回收的盘块号计算出对应的字号、位号;
      ②将相应二进制位设为“0”

    4. 成组链接法

    • 空闲表法、空闲链表法不适用于大型文件系统,因为空闲表或空闲链表可能过大。UNIX系统中采用了成组链接法对磁盘空闲块进行管理。
    • 文件卷的目录区中专门用一个磁盘块作为“超级块”,当系统启动时需要将超级块读入内存。并且要保证内存与外存中的“超级块”数据一致。
      在这里插入图片描述
      在这里插入图片描述
    • 如何分配?
    • Eg :需要1个空闲块
      ①检查第一个分组的块数是否足够。1<100,因此是足够的。
      ②分配第一个分组中的1个空闲块,并修改相应数据
      在这里插入图片描述
    • Eg :需要100个空闲块
      ①检查第一个分组的块数是否足够。100=100,是足够的。
      ②分配第一个分组中的100个空闲块。但是由于300号块内存放了再下一组的信息,因此300号块的数据需要复制到超级块中每个分组正式分配出去之前,需要把下一个分组的链接信息复制到超级块中;而且超级块永远要保持在连头。
      在这里插入图片描述
    • 如何回收?
      Eg :假设每个分组最多为100个空闲块,此时第一个分组已有99个块,还要再回收一块
      在这里插入图片描述
    • 假设每个分组最多为100个空闲块,此时第一个分组已有100个块,还要再回收一块
    • 需要将超级块中的数据复制到新回收的块中,并修改超级块的内容,让新回收的块成为第一个分组
      在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 点击上图查看详情群晖一个非常重要的应用就是存储备份重要数据,比如自己的照片,办工资料等等,要做备份的话就可以用raid1阵列模式。raid1可以说是用得最多的一个阵列模式,除此之外,还有其它几种常用的模式,如...

    45c716c8f1b1f633220c8e7ebc28f185.png点击上图查看详情

    群晖一个非常重要的应用就是存储备份重要数据,比如自己的照片,办工资料等等,要做备份的话就可以用raid1阵列模式。raid1可以说是用得最多的一个阵列模式,除此之外,还有其它几种常用的模式,如basic、shr、jbod、raid0,下面就给大家详细说说这几种模式的区别,以及使用方法。

    注意:

    关于这几种模式的选用都是凭个人多年经验推荐,具体是否适合自己,自己多方了解。更具体的原理及操作可以参考群晖官方说明。最重要的一点,磁盘操作都有一定风险,在对磁盘进行操作前务必对磁盘里面重要数据进行备份,对于操作导致的数据丢失我们不负任何责任。

    basic和raid1是使用最多的两种模式

    像DS218+这种两盘位的群晖NAS,存储重要数据,考虑数据的安全性,那就两个盘做raid1阵列。如果不是很多重要数据,比如大部分是PT下载的电影,音乐等文件,就没必要做备份,用basic模式就好。其中一个盘专门用来下载,另外一个存一些电影和其它资料,如果这些资料有部分是重要的,需要备份,可以使用群晖的hyper backup功能定时把需要备份的文件夹备份到另外一个硬盘,关于hyper backup的使用可以看保护NAS数据方法这么多,为什么选Hyper Backup?

    如果是918+这些4盘位或以上的NAS就好办了。你如果有重要数据要备份的,可以用其中两个硬盘做raid1,其它的硬盘用basic模式。反正就是群晖NAS可以多种模式组合使用,按自己实际需求进行选择。

    常用的几种磁盘模式:

    1、shr模式:这个是群晖的阵列模式,比较“智能”,如果你选了这种模式,只有一个硬盘的情况下,就相当于basic模式。如果放两个盘就相当于raid1模式,三块或三块以上硬盘就是raid5模式。好处当然就是“智能”了,自动帮你选择模式。不好的地方就是不能按自己实际需求来,如果你不需要做备份的就千万不要选这个shr模式。

    2、basic模式:basic模式就是最基础的模式,每个硬盘互不相干,都是独立的,就像电脑上面的硬盘一样。basic模式还支持升级raid1或者raid5,比如你现在一个盘设置的是basic模式,以后多加一个硬盘,可以和旧硬盘组成一个raid1模式,如果再多加一个硬盘,可以升级成raid5模式(raid5至少三块硬盘)。

    3、raid1模式:举个例子,两块4T硬盘,其中一块当镜像,就是做备份用,两块硬盘数据完全一样。你往硬盘1存东西,会自动把它复制到硬盘2。所以不管哪块硬盘坏掉,你的数据在另外一块硬盘上面一样是完整无损的。但很明显,不好的地方就是可用容量只有一半,两个4T硬盘只能用4T的空间。如果是不同容量的两个硬盘做raid1,可用容量取决于容量小的那块。比如一块4T,一块2T,可用容量就只有2T。

    4、jbod模式:就是把所有硬盘绑定成一个大硬盘,管理简单方便。但不好的一点就是其中一个盘坏了,数据全部没有。所以一般都不建议用这个模式,既不能保护数据安全,也没有提升读写性能。

    5、raid0模式:简单举例说,就是把一份文件撕碎成几份,分别丢到不同的硬盘上去,理论上传输速度会提升,但实际上nas是软阵列,速度并没有什么提升,所以不建议做raid0,而且如果你有一个盘坏了,全部数据都会丢失。

    6、raid5模式:简单举例说,你有3个2t的盘,那么其中2个盘放数据,1个盘当备份,这样不管你哪个盘坏了数据都还在。可用空间就是少了1个盘的容量。安全性比basic好,可用容量比raid1高,是比较折中的一种模式。如果有大量数据需要做备份的,可以使用这种模式,性价比比raid1更高。

    如何设置这些模式不再详细讲解,因为在系统安装的教程中已经讲解过,大家可以去看

    如果你一个不小心,硬盘已经设置好了,但不是自己想要的模式,可以把存储空间和存储池删除了重新新增即可。要注意的是这些操作会删除硬盘里面所有数据,所以一定要备份好重要资料。

    33fb4907a5c1515119f37c37fa3c5e94.png

    先删除存储空间,如果你安装了套件,还需要你先把套件卸载了才能删除。

    e272f703c19699016e3f3a3e653ccfc2.png

    删除了存储空间后,再把存储池删除了。

    1d41f3722e081ee4202656f7b742ff1b.png

    删除完毕后,到存储池那里新增存储池,选择自己需要的模式,再新增存储空间就可以了。

    展开全文
  • 文件存储空间管理

    2021-12-18 15:56:50
    2.存储空间管理 (1)空闲表法 第一个空闲盘块号为0,后面还有连续的一个空闲盘块号1,所以空闲盘块数为2 (2)空闲链表法 ①空闲盘块链 ②空闲盘区链 (3)位示图法 ...
  • 用位示图管理磁盘存储空间 算法思想 (1) 为了提高磁盘存储空间的利用率,可在磁盘上组织成链接文件、索引文件,这类文件可以把逻辑记录存放在不连续的存储空间。为了表示哪些磁盘空间已被占用,哪些磁盘空间是空闲的...
  • 模拟UNIX系统的空闲块成组链接法,实现磁盘存储空间管理
  • 位示图的形式与实习二中的位示图一样,但要注意,对于主存储空间磁盘存储空间应该用不同的位示图来管理,绝不可混用。 (2) 申请一块磁盘空间时,由分配程序查位示图,找出一个为“0”的位,计算出这一位对应块的...
  • 为您提供MountainDuck 云存储空间本地管理工具下载,Mountain Duck(云存储空间本地管理工具)是一款功能强大的云储存空间本地管理工具,通过软件能够让用户在各类云储存空间的服务转入本地,实现本地盘和云储存空间的...
  • 这是大三的时候我做的课程设计,当时做的时候感觉不容易的很,希望我得文档对后来的学弟学妹们有所帮助,做的不好的地方希望你们能改正,谢谢!
  • 一、实习内容 模拟磁盘空闲空间的表示方法,以及模拟实现磁盘空间的分配和回收。 二、实习目的 磁盘初始化时把磁盘存储空间分成许多块(扇区),这些空间...怎样有效地管理磁盘存储空间是操作系统应解决的一个重要问
  • 处理器调度算法: 先来先服务, 时间片轮转, 短作业优先, 最高响应比优先 存储管理: FIFO, LRU 磁盘移臂调度: SSTF, SCAN 文件管理: 运用空闲盘块表的方式组织磁盘空间, 模拟文件的 create() 和 delete() 操作
  • 采用C++语言的操作系统五种实验,都是在控制台实现的分别为:根据优先级运行进程、管理内存存储空间(包括首次适应算法和紧缩)、位视图管理磁盘存储、fork创建进程、银行家算法
  • 电脑磁盘存储空间怎么增大

    千次阅读 2021-07-22 00:24:24
    首先,你可以先清理电脑上不用的文件和垃圾文件,帮您节约可控的有限磁盘空间。可以自己查看电脑硬盘文件或用360和其他有电脑清理功能的软件帮助实现(注意不要误删电脑上的重要文件)。2.如果有经济实力的话,可以买...
  • 详解文件存储空间管理中的位示图法

    万次阅读 多人点赞 2020-01-04 17:24:52
    可以用不同的文件存储空间管理方法来完成这些功能,位示图法是这些方法其中之一。 位示图: 利用二进制的一位来表示磁盘中的一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时,表示已经分配...
  • 查看ftp服务器存储空间 内容精选换一换华为云关系型数据库实例的存储空间为客户购买的数据盘存储,不包括客户后台弹性云服务器的系统盘。云监控服务(Cloud Eye)目前可以对客户存储空间的大小、使用量、利用率等作出...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 349,915
精华内容 139,966
关键字:

磁盘存储空间的管理