zoukankan      html  css  js  c++  java
  • 操作系统之哲学思想之文件系统

    一、磁盘操作

    中心思想:整个文件系统管理的核心 费时的操作丢给内存,费空间的操作丢给磁盘 

     二、文件系统

    • 进程抽象CPU
    • 虚拟内存抽象内存
    • 文件系统抽象磁盘

    文件系统的主要特性:存储大量的信息,多个进程可以同时访问一个文件,进程的结束不会影响文件的持续存在

    目标:地址独立和地址保护

      地址独立:文件数据的产生与文件将来存放的磁盘地址相互独立

      地址保护:需要对文件的访问进行一定的限制,即不是任何人都能访问任何文件(权限设定)

     2.1、文件格式

    魔数:是用来告诉操作系统这个文件的类型的。对于可执行文件来说,这个魔数是一个固定的值。

    对于可执行文件包含:一个标题(header)、一个代码部分、一个数据部分、一个重定位部位和一个符号表

     2.2、文件访问

      文件的访问类型:顺序访问和随机访问

    2.3、地址独立的实现机制:文件夹

      文件夹:它保存的不是用户数据,而是关于文件及文件系统的信息(即文件夹得绝色就是用来跟踪文件,里面存放得是从文件到文件在磁盘得地址得映射)

      文件夹存放得是文件名到磁盘地址的映射。

     2.4、内存映射的文件访问

      解决读写文件效率低下的中心思想是:把磁盘访问变成内存访问。实现这种访问转变的手段就是内存映射的文件访问

      内存映射的文件访问原理:把需要访问的文件映射到一个进程的虚拟地址内,这样访问该虚拟地址就相当于访问文件。

     内存映射的文件访问目的:是为了文件的共享,即可以将同一个文件映射到两个或多个进程的虚拟地址空间。

    2.5、文件系统的布局

      a、第0个扇面在整个文件系统占有重要意义

          该扇面存放的是主引导记录(MBR)。记录的内容是一个小程序,用来启动计算机

      b、MBR后面紧接着的是磁盘分区表:磁盘分区表是给出的是磁盘的所有分区及其开始地址和终结地址。

          其中的一个分区为主分区。操作系统就装载在这个分区。主分区里面最前面的是引导记录(Boot Record)

      c、在计算机启动时,处于主板ROM里面的BIOS程序首先运行------》BIOS进行基本的系统配置扫描后对磁盘的扇区0进行读操作----》将MBR里面的程序读到内存并运行------》MBR程序接下来找到系统主分区,并将主分区里面的Boot Record加载并运行------》Boot Record 里面内容是一个小程序,该程序将负责找到操作系统映像,并加载到内存,从而启动操作系统。

     2.6、文件的实现

      文件的实现要解决如下问题:

      •  给文件分配磁盘空间
      •  记录这些磁盘空间的位置
      •  将文件内容存放在这些空间

    非连续存放方式通过链表方式实现,在每个数据块里面留出一个指针的空间,用来存放下一个数据块所在的地址。

      把所有指针从单个数据块抽取出来,全部放在一起,形成一张表。称为文件分配表(File Allocation Table)

    虚拟内存(VM)和文件缓存根本区别:

      VM的根本目的是提供一个速度非常高、容量非常大的并不存在的内存空间;从物理内存出发,为了增加内存空间而扩展到磁盘上。

      文件缓存:提高文件的访问效率而出现,从磁盘出发,为了提高访问效率而将文件置于缓存。




    I/O原理

    DMA(直接内存访问)的工作原理:如果按数据块进行I/O,即无需CPU的介入;可以让I/O设备与计算机内存进行直接数据交换

    CPU从繁忙等待中解脱出来,DMA的整个数据读写过程不需要使用处理器的功能吗?

      答:数据传输当然使用CPU,只是不是进程共享的CPU,而是另外的CPU即DMA控制器(以不慢于I/O设备的速度进行数据读写即可)

     根据CPU在I/O过程中的涉入程度分类:

    物理I/O:

    •   繁忙等待访问
    •   直接内存访问(DMA)

    DMA输入输出的过程:

    •   CPU对DMA进行设置,告诉其I/O的起始地址和数据长度
    •    启动DMA过程
    •   DMA进行数据传输
    •   DMA结束后发出中断
    •   CPU响应中断并处理结束事宜

    逻辑I/O:

      可编程I/O:CPU等待I/O的完成(CPU涉入程度很深),这种模式称为轮询或繁忙等待

      中断驱动I/O:中断驱动是将CPU从繁忙等待中解脱出来

          发送一批数据后,CPU去忙其他事;I/O设备处理完这批数据后,向CPU发出中断,CPU响应中断后再发送下一批数据

    SMP:多个CPU的角色功能平等,没有主从之分,这种多CPU结构称为对称多处理结构

  • 相关阅读:
    51nod 1117 聪明的木匠:哈夫曼树
    51nod 1010 只包含因子2 3 5的数
    51nod 2636 卡车加油
    51nod 2989 组合数
    51nod 2652 阶乘0的数量 V2
    51nod 1103 N的倍数
    51nod 2489 小b和灯泡
    51nod 1003 阶乘后面0的数量
    51nod 2122 分解质因数
    javascript中的setter和getter
  • 原文地址:https://www.cnblogs.com/liuzhiyun/p/13372025.html
Copyright © 2011-2022 走看看