计算机操作系统教程_第三版_(张尧学_张高_史美林_著)_.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:127 大小:381KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

计算机操作系统教程_第三版_(张尧学_张高_史美林_著)_.ppt

计算机操作系统教程_第三版_(张尧学_张高_史美林_著)_.ppt

预览

免费试读已结束,剩余 117 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

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