zoukankan      html  css  js  c++  java
  • 操作系统--文件管理2

    1.文件缓存和打开文件
    文件缓存的种类:磁盘控制器扇区缓存
    内存里面数据块缓存/内存虚拟盘/打开文件表
    操作系统讨论的缓存:内存中数据块的缓存
    数据块缓存按需读入内存
    * 提供read操作、预先读取后面的数据块
    * 数据块被使用后被缓存--后面可能用到,写操作可能延迟
    数据块缓存的两种方式:数据块缓存、页面缓存-统一缓存数据块和内存页
    虚拟页面对换和文件读写--数据块--文件系统
    虚拟页对换和文件读写--页缓存<处理缺页>
    文件系统中的打开文件的数据结构:
    *文件描述符:每个打开文件都有一个文件描述符
    *文件描述符内容:文件的状态信息
    *每个进程具有一个打开文件表
    *每个文件系统具有一个系统的打开文件表
    #打开文件锁:协调多进程的文件访问

    2.文件分配
    *文件的大小:
    大多数文件很小,需要对小文件很好的支持;块空间不能太大
    对于特定大的文件的操作支持,访问的高效
    *文件分配:OS系统如何分配给一个文件数据块的位置和顺序
    连续分配:连续块存储
    链式分配:类似于链表--无外碎片;顺链访问
    索引分配:设置索引--无外碎片
    *文件分配方式评价:存储效率--外部碎片等;读写性能--访问速度
    *3种分配方式的具体介绍
    顺序分配:文件头记录:文件起始块和文件长度--数组一样
    特点:文件读取性能表现好;高效的顺序和随机访问;
    缺点:碎片;文件长度的增加处理
    链式分配:文件以数据块链表的方式存储;文件头包含头和尾的指针--单向链表
    优点:创建、增加、删除很容易--读写基本单位块
    缺点:没有很方便的随机访问,可靠性差
    索引分配:为每个文件创建一个索引数据块;文件头包含一个指向文件索引的指针
    特点:创建增大缩小很容易;没有碎片,支持直接访问
    缺点:文件小的时候开销大;文件很大也比较麻烦
    对于大文件的处理:
    链式索引/多级索引分配--减小了索引表的内容
    注意:在真实的系统里面通常几种分配方式都是组合起来使用的。
    eg:直接索引/间距索引

    3.空闲空间管理:跟踪记录文件卷中未分配的数据块
    采用什么数据结构表示组织管理空闲块:
    #位图:0代表空闲,1代表已经分配--10111011010
    特点:使用简单但可能会是一个很大的向量
    #链表:组织已经分配和未分配的数据块
    #链式索引
    注意:在实际的系统里面是几种方法的组合使用

    4.磁盘阵列RAID--提高文件系统可靠性与读写性能的技术
    通常磁盘分区是限制寻道时间--半径方向
    分区:是一组柱面的集合
    每个分区都视为逻辑上的独立磁盘--半径方向
    文件卷与磁盘分区的联系:
    *文件卷:一个用于完整文件系统的实例的外存空间;通常存储在磁盘的单个分区
    eg:A分区:目录文件;B分区:目录文件;C分区:目录文件(存储在多个磁盘)
    *多磁盘管理:
    提高吞吐量--通过并行
    可靠性和可用性--通过允余
    *RAID:多种磁盘管理技术,含有多种管理方式
    *RAID技术的实现:软件OS内核文件卷管理、硬件RAID硬件控制器(I/O)
    *RAID技术的分类:
    RAID0:磁盘条带化
    把数据块分为多个子块,存储在独立的磁盘上;通过独立磁盘的并行访问
    来提供较大的磁盘带宽。
    RAID1:磁盘镜像--给两个中写入相同的数据,读可以从任意一个
    可以提高可靠性
    RAID4:带校验的磁盘条带化--提高可靠性
    允许从任意一个故障磁盘中恢复
    RAID5:带分布式校验的磁盘条带化

  • 相关阅读:
    redis排序【转载】
    程序员必读的30本书(转)
    Linux进程调度程序的具体细节(转)
    汉字转换拼音(网上找的js库)
    虚拟机配置host访问主机web
    301重定向的实现方法(转)
    浏览器关闭后,能继续执行的函数
    awk文本处理总结(转)
    DTD
    DOM编程艺术 4
  • 原文地址:https://www.cnblogs.com/sun1993/p/7747652.html
Copyright © 2011-2022 走看看