长期存储信息的三个基本要求:

  • 能够存储大量信息

  • 使用信息的进程终止时,保存的信息仍旧存在

  • 必须能使多个进程并发访问有关信息

    解决方案:将信息以称为文件的单位存储在磁盘或其他外部媒体上。

File 文件

  • 文件是进程创建的信息逻辑单元
  • 文件是对磁盘的建模
  • 可以把每个文件看成一个地址空间

文件命名

  • 是一种抽象机制,提供了一种在磁盘上保存信息而且方便以后读取的方法
  • 每一个文件至少有一个名字
  • 名字可能包括了文件内容的信息,让人知道里面有什么,计算机可能会使用名字的一部分去决定文件类型

文件结构

  • Windows和UNIX:字节序列
  • Large mainframe computers 大型主机:Tree

文件类型

  • 普通文件
    • ASCII文件:可以显示和打印以及在文本编辑器中编辑
    • 二进制文件

文件访问

  • 顺序访问 Sequential access
    • 进程在系统中可从头按顺序读取文件的全部字节或记录
    • 但不能跳过某一些内容,也不能不按顺序读取
    • 可以返回到起点的,需要时可多次读取该文件
    • 存储介质是磁带(magenetic tape)时比较方便
  • 随机访问文件 Random access
    • 用磁盘可以不按顺序读取文件,或者按照关键字
    • 能够以任何次序读取其中字节或记录的文件
    • 对数据库系统必不可少
  • seek操作设置当前位置,之后从这个当前位置顺序地开始读文件

文件属性

  • attribute,也叫元数据(metadata)

文件操作

目录 Directories

  • 文件系统有目录或文件夹来跟踪文件。
    • 一个单级目录有一个包含所有文件的目录(根)。
    • 两级目录具有根目录和用户目录。
    • 分层目录有一个根目录和任意数量的子目录。
A single level directory system 一级目录系统

优点:简单、并且能够快速定位文件

Two-level Directory Systems 两级目录系统

Hierarchical Directory Systems 层次目录系统

A UNIX directory tree

  • 两种不同的方法用于在目录树中指定文件名:
    • 绝对路径名(absolute path name)由从根目录到文件的路径组成。
      • 例如,cp /usr/ast/mailbox /usr/ast/mailbox.bak
    • 相对路径名(relative path name)由当前目录(工作目录)的路径组成。
      • 例如,cp ../lib/dictionary → cp /usr/lib/dictionary
  • 不同系统的路径名不同:
    • Windows:
    • UNIX:/usr/ast/邮箱
    • MULTICS:>usr>ast>邮箱
  • “.” 和“..”是文件系统中的两个特殊条目。
    • 点 (.) 指的是当前目录(工作目录)
    • 点点 (..) 指的是它的父级

Directory Operaitons

文件系统的实现

File System Layout 文件系统布局

  • 文件系统布局:
    • MBR(主引导记录)用于引导计算机。
    • 分区表给出了每个分区的起始地址和结束地址。

MBR(Master Boot Record, 主引导记录):

  • 磁盘的0号扇区
  • 在MBR的结尾是分区表,给出了每个分区的起始和结束地址
  • 表中的一个分区被标记为活动分区
    • 在计算机被引导时,BIOS读入并执行MBR
    • MBR做的第一件事是确定活动分区,读入它的第一个块,称为引导块(boot block),并执行
    • 为统一起见,每个分区都从一个引导块开始,即使它不含可启动的操作系统。

  • Boot block 引导块:系统启动时由MBR程序读入。
  • Superblock 超级块:包含文件系统的关键参数。
  • Free blocks information 空闲块信息
  • I-nodes 告诉所有关于文件的信息。
  • Root directory 根目录
  • Directories and files 目录和文件

File Allocation 文件的实现

连续分配 Contiguous Allocation
  • 将每个文件存储为连续的数据块。

  • 好处:
    • 实施简单;
    • 读取性能非常好。
  • 缺点:
    • 磁盘碎片 Disk fragmentation
    • 创建文件时必须知道最大文件大小。
  • 示例:CD-ROM、DVD
File Control Block 文件控制块
  • 一个文件由文件控制块(FCB)和文件体组成。
  • FCB存储文件的属性信息
    • 例如,名称、路径、访问控制信息。
  • 在Unix中,FCB是由i-node实现的

问题

  1. FIFO
  2. SSF
  3. Elevator algorithm

Check points

  1. List three reasons for long-term information storage;
  2. What is sequence of bytes file structure?
  3. Please list at least five common file attributes.
  4. 没有文件名也没有文件类型
  5. What is relative path name and why do we need relative path name?

Solution

  1. 三点
    • 存储容量受虚拟地址空间大小的限制,不同的应用对地址空间的要求不同;
    • 进程终止时,它保存的信息也随之丢失,但还是有些信息需要保存信息
    • 经常需要多个进程同时访问同一信息或其中部分信息
  2. 把文件看成字节序列
  3. Creator、Owner、Key length、Current size、Maximum size
  4. ?
  5. 两问
  • 相对当前路径开始的路径
  • More convient