zoukankan      html  css  js  c++  java
  • 0511操作系统

    1.简述文件存储中空闲块成组链接法对磁盘的管理方式

    空闲表法和空闲链表法都不适用于大型系统,因为这会使空闲表或空闲链表很长,在UNIX采用的成组链接法,结合上述两种方法。

      ① 空闲盘块的组织,空闲盘块栈用来存放当前可用的一组空闲盘块的盘块号(最多含100个号),以及栈中尚有的空闲盘块号数N,顺便指出,N兼做栈顶指针使用,栈是临界资源,系统设置一把锁供进程互斥访问。其中,S.free(0)是栈底,栈满时栈顶为S.free(99)。

      ② 文件区中的所有空闲盘块被分成若干个组,如每100个盘块作为一组。

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

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

      ⑤ 最末一组只有99个盘块,其盘块号分别记入其前一组的S.free(1)~S.free(99)中,而在S.free(0)中则存放0,作为空闲盘块链的结束。

      当系统要为用户分配文件所需的盘块时,须调用盘块分配过程来完成。该过程首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格。若该盘块号已是栈底,即S.free(0),这是当前栈中最后一个可分配的盘块号。由于在该盘块号所对应的盘块中记有下一组可用的盘块号,因此,须调用磁盘读过程,将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去(其中的有用数据已读入栈中)。然后,再分配一相应的缓冲区(作为该盘块的缓冲区)。最后,把栈中的空闲盘块数减1并返回。

      在系统回收空闲盘块时,须调用盘块回收过程进行回收。它是将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。当栈中空闲盘块号数目已达100时,表示栈已满,便将现有栈中的100个盘块号,记入新回收的盘块中,再将其盘块号作为新栈底。

    2.文件共享的方式以及其区别参考:https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html

    linux文件共享方式包括硬链接和软链接。

    硬链接即基于索引结点的共享方法,通过多个文件名链接到索引节点inode(唯一标识文件),可以建立同一个文件的多个彼此相等的别名,别名的数目记录在索引节点的链接计数中,

    软链接基于符号链接,是一种特殊类型的文件,其内容是到另一个目录或者文件的链接。

    区别:硬链接能实现异名共享,节省存储空间,但是只能实现同一个文件系统的共享,不同用户共享同一个文件的时候具有相同的权限。软链接可以连接世界上任意地方的计算机文件,但是这个软链接文件需要一个索引结点和存储空间。

    3.对磁盘空间空闲区的管理常采用哪几种方式?

    • 空闲表法,系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应一个空闲表项。属于连续分配方式,与内存动态分配相似。
    • 空闲链表法
      • 空闲盘块链:将磁盘上所有的空闲空间以盘块拉成一条链,使用的时候从链首取下,删除文件释放空间时,将空闲盘块插至链尾。优点是分配和回收盘块的过程简单。
      • 空闲盘区链:将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链,在每个盘区上除了含有只是下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。盘区分配与内存的动态分配类似,可采用首次适应算法,在回收盘区时,同样也要将回收区和相邻接的空闲盘区相合并,在采用首次适应算法时,可以采用显式链接法提高检索速度,在内存中为空闲盘区建立一张链表。
    • 位示图法:利用二进制的一位表示磁盘中的一个盘块的使用情况,当其值为0时,表示对应的盘块空闲,为1时,表示已经分配,磁盘上的所有盘块都有一个二进制位与之对应,这样,由所有盘块所对应的位构成一个集合,称为位示图,通常可用m * n个位数来构成位示图,并使m * n等于磁盘的总块数。
      • 对于盘块的分配分为如下三步
        • 顺序扫描位示图,从中找出一个或一组值为0的二进制位。
        • 将所找到的一个或一组二进制位转换成与之赌赢的盘块号。
        • 修改位示图。
      • 对于盘块的回收分为如下两步
        • 将回收盘块的盘块号转换成位示图中的行号和列号。
        • 修改位示图。
      • 此方法的优点在于从位示图中很容易找到一个或一组相邻接的空闲盘块,此外,由于位示图很小,占用空间少,因而可将其保存在内存中,进而使在每次进行盘区分配时,无需首先把盘区分配表读入内存,节省磁盘启动时间。
    • 成组链接法

    4.文件的物理结构有哪几种,使用这些物理结构存放文件时,在文件控制块FCB中有关文件的物理位置信息分别需包括什么?

    • 连续分配:每个文件在磁盘上占有一组连续的块,文件目录记录文件名,文件起始块号和块长度。优点是顺序存取速度快,缺点是有很多的外部碎片外存利用率低,不能灵活地插入和删除记录。只需要一次访磁盘。(文件目录以被读入内存)
    • 链接分配:将离散的盘块链接成一个链表,包括隐式链接和显示链接。显式链接需要系统设立一张FAT表,表项中存放指向下一个盘块号的链接指针,可以实现随机存取。而隐式链接只能实现随机存取。但是FAT占用空间。需要n次访问磁盘。隐式链接的目录需要存放起始块和结束块。
    • 索引分配:将每个文件的所有盘块号放在一起建立索引表,每个文件有一个盘块放置这个索引表,查找文件时通过文件名找到索引块号将索引块读入内存,即可找到对这个文件进行存取。优点是支持随机访问,文件易于增删。但是索引表影响系统开销。m级索引需要m+1次访问磁盘

    5.空闲磁盘空间管理方法中,哪种方式占用的额外磁盘空间最小,哪种方式适合连续结构的文件,为什么?

    成组链接法占用的额外空间最少,而且超级块(文件系统中的第一个块,小,存放文件系统的信息)可以放在内存中。空闲区表法属于连续分配方式,适合连续结构的文件,而且分配和回收都是连续的物理块。

    6.文件目录和目录文件各起什么作用?

    • 文件目录是文件控制块FCB的集合,用于对单个文件的控制,他记录文件的名字、文件长度等信息,实现文件的按名存取。一个FCB就是一个文件目录项。
    • 目录文件是全部文件目录组成的文件,用于整个文件系统的管理,将目录以文件的形式保存在外存中。

    7.文件的物理结构和逻辑结构

    参考

    8.Linux文件系统

  • 相关阅读:
    N点虚拟主机管理系统(For Windows2003/2008)功能及介绍
    淘宝API开发系列商家的绑定
    在linux上使用ASP
    petshop4.0 详解之五(PetShop之业务逻辑层设计)
    vsFTPd 服务器
    中国联通短信如何 对接
    淘宝API开发系列开篇概述
    “VPS FTP应用”目录存档
    使用c#+(datagrid控件)编辑xml文件
    Centos 5.3 Nginx+php+mysql配置 独立的 Subversion (SVN)服务器
  • 原文地址:https://www.cnblogs.com/helloworldToDu/p/12868153.html
Copyright © 2011-2022 走看看