清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 第9章文件和设备管理示例 91文件系统的特点与文件类别 92文件系统的数据结构及其关系 93资源管理和地址映射 94目录与搜索方法 95文件系统的系统调用 96 UNIX System V的中断和陷阱总控程序 97缓冲区管理 98块设备驱动 99字符设备驱动 本章小结 习题
第9章 文件和设备管理示例 9.1 文件系统的特点与文件类别 9.2 文件系统的数据结构及其关系 9.3 资源管理和地址映射 9.4 目录与搜索方法 9.5 文件系统的系统调用 9.6 UNIX System Ⅴ的中断和陷阱总控程序 9.7 缓冲区管理 9.8 块设备驱动 9.9 字符设备驱动 本章小结 习题
清华大学出版社 TSINGHUA UNIVERSITY PRESS 91文件系统的特点与文件类别 9.1特点 本章通过UNX的文件系统来进一步深入了解文件 系统与操作系统其他部分的关系以及文件系统的设 计方法。从用户的角度看,UNI文件系统具有如 图91所示的树形层次结构: 在图91中,根目录r0o之下有dev设备子目录,bin实 用程序子目录,ib库文件子目录,etc基本数据和 维护实用程序子目录,tmp临时文件子目录,usr通 用子目录和 include基本数据子目录等。而UNIX 子目录则存放UNI操作系统核心程序自身。这些 子目录又由各自的子目录构成
9.1 文件系统的特点与文件类别 9.1.1 特点 本章通过 UNIX 的文件系统来进一步深入了解文件 系统与操作系统其他部分的关系以及文件系统的设 计方法。从用户的角度看,UNIX文件系统具有如 图9.1所示的树形层次结构: 在图9.1中,根目录root之下有dev设备子目录,bin实 用程序子目录,lib库文件子目录,etc 基本数据和 维护实用程序子目录,tmp临时文件子目录,usr通 用子目录和include 基本数据子目录等。而 UNIX 子目录则存放UNIX操作系统核心程序自身。这些 子目录又由各自的子目录构成
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS root usr etc dev tmp bin UNIX include bin lib users passwd ttys init sh as cc stdio. h math. h shi zhang exe a. exe 图91UNⅨ文件系统的层次结构例
图9.1 UNIX
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 文件系统被组织成树形结构之后,文件名由路径名 给出。路径名确定一个文件在文件系统中的位置。 个完整的路径名由代表根目录的斜杠开始,到所 指定的文件为止。例如在图91中, usr/users/shi/b.exe”确定了文件bexe在文件系统 中的位置。另外,路径名也可从正在执行进程的当 前目录开始指定,例如,若在图91中的当前目录 是 zhang的话,路径名aexe与 / usr/users/zhang/a.exe具有相同的效果。 一般来说,UNIX文件系统还具有如下特点 UNIX的文件是无结构的字符流式文件。 ·文件可以动态地增长或减少
文件系统被组织成树形结构之后,文件名由路径名 给出。路径名确定一个文件在文件系统中的位置。 一个完整的路径名由代表根目录的斜杠开始,到所 指定的文件为止。例如在图9.1中, “/usr/users/shi/b.exe”确定了文件 b.exe在文件系统 中的位置。另外,路径名也可从正在执行进程的当 前目录开始指定,例如,若在图9.1中的当前目录 是zhang 的话,路径名 a.exe与 /usr/users/zhang/a.exe具有相同的效果。 一般来说,UNIX文件系统还具有如下特点: · UNIX的文件是无结构的字符流式文件。 · 文件可以动态地增长或减少
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 文件数据可由文件拥有者设置相应的访问权限而受 到保护。 外部设备,例如终端用磁带、磁盘设备、键盘等都 被看作文件。从而,设备可通过文件系统隐蔽掉设 备特性。在文件系统中,设备文件占据着文件系统 目录结构中相应的位置,用户程序按与存取其他文 件时所使用的系统调用和语法来读、写设备文件。 因此,用户程序既没有必要知道设备的内部特性, 也不必在更换或增加设备之后修改自己
· 文件数据可由文件拥有者设置相应的访问权限而受 到保护。 · 外部设备,例如终端用磁带、磁盘设备、键盘等都 被看作文件。从而,设备可通过文件系统隐蔽掉设 备特性。在文件系统中,设备文件占据着文件系统 目录结构中相应的位置,用户程序按与存取其他文 件时所使用的系统调用和语法来读、写设备文件。 因此,用户程序既没有必要知道设备的内部特性, 也不必在更换或增加设备之后修改自己
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 912文件的分类 UNIX文件可分为普通文件、目录文件和设备文件。 普通文件即存储用户和系统的有关数据和程序的文 件。它是无结构、无记录概念的字符流式文件。 目录文件则是由文件系统中的各个目录所形成的文 件。这种文件在形式上同普通文件一样,由系统将 其解释成目录。在UNⅨ系统中,一个目录文件由 多个目录项组成,而每个目录项则由文件名及指示 相应的文件说明信息表节点的标识符id组成
9.1.2 文件的分类 UNIX文件可分为普通文件、目录文件和设备文件。 普通文件即存储用户和系统的有关数据和程序的文 件。它是无结构、无记录概念的字符流式文件。 目录文件则是由文件系统中的各个目录所形成的文 件。这种文件在形式上同普通文件一样,由系统将 其解释成目录。在UNIX系统中,一个目录文件由 多个目录项组成,而每个目录项则由文件名及指示 相应的文件说明信息表(i节点) 的标识符id组成
000000 普通文件和目录文件都是无结构、无记录概念的字 符流式文件。文件系统以512字节为一块,文件在 块内连续存放。对于普通文件和目录文件来说,文 件的存放方式既可以是顺序存取的,也可以是直接 存取的。UNIX文件在文件系统中的存放采用的是 索引结构方法,从而,对文件存储块的分配可以是 非连续的,且文件长度可以动态变化。 设备文件与普通文件和目录文件不同,它除了在目 录文件和文件说明信息表,也就是请点中占据相 应的位置之外,并不占有实际的物理存储块。因此, 对设备文件的读、写操作将实际上变为对设备的操 作,而对设备文件的保护也将变成对设备的保护。 例如:>cp/dev/ tty terminalread 把在终端上敲进的字符设备文件/ dev/tty是用户终端) 读入,并把它们复制到文件 terminalread上
普通文件和目录文件都是无结构、无记录概念的字 符流式文件。文件系统以512 字节为一块,文件在 块内连续存放。对于普通文件和目录文件来说,文 件的存放方式既可以是顺序存取的,也可以是直接 存取的。UNIX文件在文件系统中的存放采用的是 索引结构方法,从而,对文件存储块的分配可以是 非连续的,且文件长度可以动态变化。 设备文件与普通文件和目录文件不同,它除了在目 录文件和文件说明信息表,也就是 i结点中占据相 应的位置之外,并不占有实际的物理存储块。因此, 对设备文件的读、写操作将实际上变为对设备的操 作,而对设备文件的保护也将变成对设备的保护。 例如: >cp /dev/tty terminalread 把在终端上敲进的字符(设备文件/dev/tty是用户终端) 读入,并把它们复制到文件 terminalread上
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 92文件系统的数据结构及其关系 921文件系统的存储结构 UNⅨX系统把文件信息存储在磁盘或磁带上,不过, UNIX系统的磁盘文件组织也可以当作一个连续的 物理块构成的磁带—文件卷看待。在UNIX系统 中,一个物理存储器可包含一个或多个文件系统。 这些文件系统可以被动态装卸。为了简单起见,假 定在一个计算机系统中只存在一个文件系统
9.2 文件系统的数据结构及其关系 9.2.1 文件系统的存储结构 UNIX系统把文件信息存储在磁盘或磁带上,不过, UNIX系统的磁盘文件组织也可以当作一个连续的 物理块构成的磁带——文件卷看待。在 UNIX 系统 中,一个物理存储器可包含一个或多个文件系统。 这些文件系统可以被动态装卸。为了简单起见,假 定在一个计算机系统中只存在一个文件系统
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 文件系统由每块512字节或512字节的任意倍数所构 成的逻辑块序列组成。在同一个文件系统中,这些 逻辑块的大小完全相同。块长的选取将直接影响设 备与主存之间的数据传输速率和内存的存储能力。 大的块长将使得内存和设备之间的数据传输更加容 易,但反过来又使得内存页面长度增加,从而影响 内存的有效存储能力。在UNⅨ的许多版本中,大 都采用每块512字节。 文件卷的结构如图92所示。其中第0#块是引导块 (b0 ot block)。引导块中装有引导或初启操作系统 的引导代码
文件系统由每块 512字节或 512字节的任意倍数所构 成的逻辑块序列组成。在同一个文件系统中,这些 逻辑块的大小完全相同。块长的选取将直接影响设 备与主存之间的数据传输速率和内存的存储能力。 大的块长将使得内存和设备之间的数据传输更加容 易,但反过来又使得内存页面长度增加,从而影响 内存的有效存储能力。在 UNIX 的许多版本中,大 都采用每块 512字节。 文件卷的结构如图9.2所示。其中第 0# 块是引导块 (boot block)。 引导块中装有引导或初启操作系统 的引导代码
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS K+1K+2 引导块超级块索引节点表 数据块 图92文件系统存储结构 显然,在有多个文件系统的计算机系统中,只有 个文件系统的引导块中装有引导代码,而其他的引 导块则是空的。 1#块是超级块( superblock)。超级块用来描述文件 系统的状态,例如文件系统的大小、有关空闲区分 配和回收用的堆栈等。有关超级块的结构将在后面 部分进一步介绍
图9.2 文件系统存储结构 显然,在有多个文件系统的计算机系统中,只有一 个文件系统的引导块中装有引导代码,而其他的引 导块则是空的。 1#块是超级块(superblock)。超级块用来描述文件 系统的状态,例如文件系统的大小、有关空闲区分 配和回收用的堆栈等。有关超级块的结构将在后面