精编文件和设备管理示例课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《精编文件和设备管理示例课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精编 文件 设备管理 示例 课件
- 资源描述:
-
1、第第9章章 文件和设备管理示例文件和设备管理示例9.1 文件系统的特点与文件类别文件系统的特点与文件类别9.2 文件系统的数据结构及其关系文件系统的数据结构及其关系9.3 资源管理和地址映射资源管理和地址映射9.4 目录与搜索方法目录与搜索方法9.5 文件系统的系统调用文件系统的系统调用9.6 UNIX System 的中断和陷阱总控程序的中断和陷阱总控程序9.7 缓冲区管理缓冲区管理9.8 块设备驱动块设备驱动9.9 字符设备驱动字符设备驱动本章小结本章小结习题习题9.1 文件系统的特点与文件类别文件系统的特点与文件类别 9.1.1 特点特点 本章通过本章通过 UNIX 的文件系统来进一步深
2、入了解文件的文件系统来进一步深入了解文件系统与操作系统其他部分的关系以及文件系统的设系统与操作系统其他部分的关系以及文件系统的设计方法。从用户的角度看,计方法。从用户的角度看,UNIX文件系统具有如文件系统具有如图图9.1所示的树形层次结构:所示的树形层次结构:在图在图9.1中,根目录中,根目录root之下有之下有dev设备子目录,设备子目录,bin实实用程序子目录,用程序子目录,lib库文件子目录,库文件子目录,etc 基本数据和基本数据和维护实用程序子目录,维护实用程序子目录,tmp临时文件子目录,临时文件子目录,usr通通用子目录和用子目录和include 基本数据子目录等。而基本数据子
3、目录等。而 UNIX 子目录则存放子目录则存放UNIX操作系统核心程序自身。这些操作系统核心程序自身。这些子目录又由各自的子目录构成。子目录又由各自的子目录构成。图图9.1 UNIX文件系统的层次结构例文件系统的层次结构例文件系统被组织成树形结构之后,文件名由路径名文件系统被组织成树形结构之后,文件名由路径名给出。路径名确定一个文件在文件系统中的位置。给出。路径名确定一个文件在文件系统中的位置。一个完整的路径名由代表根目录的斜杠开始,到所一个完整的路径名由代表根目录的斜杠开始,到所指定的文件为止。例如在图指定的文件为止。例如在图9.1中,中,“/usr/users/shi/b.exe”确定了文
4、件确定了文件 b.exe在文件系统在文件系统中的位置。另外,路径名也可从正在执行进程的当中的位置。另外,路径名也可从正在执行进程的当前目录开始指定,例如,若在图前目录开始指定,例如,若在图9.1中的当前目录中的当前目录是是zhang 的话,路径名的话,路径名 a.exe与与/usr/users/zhang/a.exe具有相同的效果。具有相同的效果。一般来说,一般来说,UNIX文件系统还具有如下特点:文件系统还具有如下特点:UNIX的文件是无结构的字符流式文件。的文件是无结构的字符流式文件。文件可以动态地增长或减少。文件可以动态地增长或减少。文件数据可由文件拥有者设置相应的访问权限而受文件数据可
5、由文件拥有者设置相应的访问权限而受到保护。到保护。外部设备,例如终端用磁带、磁盘设备、键盘等都外部设备,例如终端用磁带、磁盘设备、键盘等都被看作文件。从而,设备可通过文件系统隐蔽掉设被看作文件。从而,设备可通过文件系统隐蔽掉设备特性。在文件系统中,设备文件占据着文件系统备特性。在文件系统中,设备文件占据着文件系统目录结构中相应的位置,用户程序按与存取其他文目录结构中相应的位置,用户程序按与存取其他文件时所使用的系统调用和语法来读、写设备文件。件时所使用的系统调用和语法来读、写设备文件。因此,用户程序既没有必要知道设备的内部特性,因此,用户程序既没有必要知道设备的内部特性,也不必在更换或增加设备
6、之后修改自己。也不必在更换或增加设备之后修改自己。9.1.2 文件的分类文件的分类UNIX文件可分为普通文件、目录文件和设备文件。文件可分为普通文件、目录文件和设备文件。普通文件即存储用户和系统的有关数据和程序的文普通文件即存储用户和系统的有关数据和程序的文件。它是无结构、无记录概念的字符流式文件。件。它是无结构、无记录概念的字符流式文件。目录文件则是由文件系统中的各个目录所形成的文目录文件则是由文件系统中的各个目录所形成的文件。这种文件在形式上同普通文件一样,由系统将件。这种文件在形式上同普通文件一样,由系统将其解释成目录。在其解释成目录。在UNIX系统中,一个目录文件由系统中,一个目录文件
7、由多个目录项组成,而每个目录项则由文件名及指示多个目录项组成,而每个目录项则由文件名及指示相应的文件说明信息表相应的文件说明信息表(i节点节点)的标识符的标识符id组成。组成。普通文件和目录文件都是无结构、无记录概念的字普通文件和目录文件都是无结构、无记录概念的字符流式文件。文件系统以符流式文件。文件系统以512 字节为一块,文件在字节为一块,文件在块内连续存放。对于普通文件和目录文件来说,文块内连续存放。对于普通文件和目录文件来说,文件的存放方式既可以是顺序存取的,也可以是直接件的存放方式既可以是顺序存取的,也可以是直接存取的。存取的。UNIX文件在文件系统中的存放采用的是文件在文件系统中的
8、存放采用的是索引结构方法,从而,对文件存储块的分配可以是索引结构方法,从而,对文件存储块的分配可以是非连续的,且文件长度可以动态变化。非连续的,且文件长度可以动态变化。设备文件与普通文件和目录文件不同,它除了在目设备文件与普通文件和目录文件不同,它除了在目录文件和文件说明信息表,也就是录文件和文件说明信息表,也就是 i结点中占据相结点中占据相应的位置之外,并不占有实际的物理存储块。因此,应的位置之外,并不占有实际的物理存储块。因此,对设备文件的读、写操作将实际上变为对设备的操对设备文件的读、写操作将实际上变为对设备的操作,而对设备文件的保护也将变成对设备的保护。作,而对设备文件的保护也将变成对
9、设备的保护。例如:例如:cp/dev/tty terminalread把在终端上敲进的字符把在终端上敲进的字符(设备文件设备文件/dev/tty是用户终端是用户终端)读入,并把它们复制到文件读入,并把它们复制到文件 terminalread上。上。9.2 文件系统的数据结构及其关系文件系统的数据结构及其关系9.2.1 文件系统的存储结构文件系统的存储结构 UNIX系统把文件信息存储在磁盘或磁带上,不过,系统把文件信息存储在磁盘或磁带上,不过,UNIX系统的磁盘文件组织也可以当作一个连续的系统的磁盘文件组织也可以当作一个连续的物理块构成的磁带物理块构成的磁带文件卷看待。在文件卷看待。在 UNIX
10、 系统系统中,一个物理存储器可包含一个或多个文件系统。中,一个物理存储器可包含一个或多个文件系统。这些文件系统可以被动态装卸。为了简单起见,假这些文件系统可以被动态装卸。为了简单起见,假定在一个计算机系统中只存在一个文件系统。定在一个计算机系统中只存在一个文件系统。文件系统由每块文件系统由每块 512字节或字节或 512字节的任意倍数所构字节的任意倍数所构成的逻辑块序列组成。在同一个文件系统中,这些成的逻辑块序列组成。在同一个文件系统中,这些逻辑块的大小完全相同。块长的选取将直接影响设逻辑块的大小完全相同。块长的选取将直接影响设备与主存之间的数据传输速率和内存的存储能力。备与主存之间的数据传输
11、速率和内存的存储能力。大的块长将使得内存和设备之间的数据传输更加容大的块长将使得内存和设备之间的数据传输更加容易,但反过来又使得内存页面长度增加,从而影响易,但反过来又使得内存页面长度增加,从而影响内存的有效存储能力。在内存的有效存储能力。在 UNIX 的许多版本中,大的许多版本中,大都采用每块都采用每块 512字节。字节。文件卷的结构如图文件卷的结构如图9.2所示。其中第所示。其中第 0#块是引导块块是引导块(boot block)。引导块中装有引导或初启操作系统引导块中装有引导或初启操作系统的引导代码。的引导代码。图图9.2 文件系统存储结构文件系统存储结构显然,在有多个文件系统的计算机系
12、统中,只有一显然,在有多个文件系统的计算机系统中,只有一个文件系统的引导块中装有引导代码,而其他的引个文件系统的引导块中装有引导代码,而其他的引导块则是空的。导块则是空的。块是超级块块是超级块(superblock)。超级块用来描述文件。超级块用来描述文件系统的状态,例如文件系统的大小、有关空闲区分系统的状态,例如文件系统的大小、有关空闲区分配和回收用的堆栈等。有关超级块的结构将在后面配和回收用的堆栈等。有关超级块的结构将在后面部分进一步介绍。部分进一步介绍。从从2块开始到块开始到 K+1#块为止的区域被用来存放文件说块为止的区域被用来存放文件说明信息,也就是明信息,也就是 BFD表。表。UN
13、IX系统把一个文件的系统把一个文件的说明信息称为说明信息称为 i节点或索引节点节点或索引节点(inode list)。索引节。索引节点表的大小由系统管理人员在进行系统配置时指定。点表的大小由系统管理人员在进行系统配置时指定。K+2#以后的块称为数据块,其中存放文件数据,包以后的块称为数据块,其中存放文件数据,包括目录文件数据。括目录文件数据。UNIX系统中文件系统的任一数系统中文件系统的任一数据块只能属于文件系统中某一个文件或空闲。据块只能属于文件系统中某一个文件或空闲。9.2.2 几种常用的数据结构几种常用的数据结构1.资源管理结构资源管理结构 filsys超级块中存放的最重要的数据结构是资
14、源管理结构超级块中存放的最重要的数据结构是资源管理结构 filsys。该结构中含有文件系统空闲块分配用堆栈。该结构中含有文件系统空闲块分配用堆栈及及 i节点分配用数据结构。在块设备作为文件卷安节点分配用数据结构。在块设备作为文件卷安装时,结构装时,结构filsys 的内容被复制到内存专用区中,的内容被复制到内存专用区中,以使得对空闲块和以使得对空闲块和 i节点的分配与回收能在内存进节点的分配与回收能在内存进行。当文件卷被卸下或需要重新读入或写出有关堆行。当文件卷被卸下或需要重新读入或写出有关堆栈的内容时,则将内存中的栈的内容时,则将内存中的 filsys 结构复制回超级结构复制回超级块中。块中
15、。UNIX System 中的中的 filsys 结构如下:结构如下:struct filsys 文件卷总块数;文件卷总块数;i 节点表块数;节点表块数;空闲块栈区空闲块栈区(小于或等于小于或等于50);空闲块栈指针;空闲块栈指针;空闲块栈互斥标志;空闲块栈互斥标志;空闲块总数;空闲块总数;空闲空闲 i节点数组指针;节点数组指针;空闲磁盘空闲磁盘 i节点指针;节点指针;空闲空闲 i节点数组互斥标志;节点数组互斥标志;空闲空闲 i节点总数;节点总数;filsys 的修改标志,等;的修改标志,等;filsys 结构被用来进行文件空闲块和结构被用来进行文件空闲块和 i节点项的分配节点项的分配与回收与
16、回收。2.i节点节点UNIX文件系统采用文件系统采用 SFD和和 BFD方式管理文件。其中方式管理文件。其中 SFD称为符号文件目录,存放文件名以及指示该文称为符号文件目录,存放文件名以及指示该文件的文件说明信息表标识符件的文件说明信息表标识符id。由文件名和指示文。由文件名和指示文件说明信息表的标识符件说明信息表的标识符id称为目录,把存放文件说称为目录,把存放文件说明信息和相应标识符的明信息和相应标识符的 BFD称为称为 i节点。节点。i节点又节点又分为磁盘分为磁盘 i节点和内存活动节点和内存活动 i节点。其中磁盘节点。其中磁盘 i节点节点以静态形式存放文件说明信息。磁盘以静态形式存放文件
17、说明信息。磁盘 i节点节点 dinode 结构包括:结构包括:struct dinode 文件模式;文件模式;与该与该 i节点联接的文件数;节点联接的文件数;用户标识用户标识;文件大小文件大小;存取权限存取权限;同组用户标识同组用户标识;该文件所用物理块的块号该文件所用物理块的块号;文件存取时间、修改时间和建立时间;文件存取时间、修改时间和建立时间;其中,文件模式表示文件类型,而用户标识符以及其中,文件模式表示文件类型,而用户标识符以及同组用户标识定义对该文件具有存取权的用户集合,同组用户标识定义对该文件具有存取权的用户集合,与该与该 i节点联接的文件数表示有多少个不同的文件节点联接的文件数表
18、示有多少个不同的文件名指向该文件。另外,该文件所用的物理块号是一名指向该文件。另外,该文件所用的物理块号是一个由个由 40 个字节组成的字符数组个字节组成的字符数组 di_addr40,它,它指明文件数据安放在逻辑盘上的位置。指明文件数据安放在逻辑盘上的位置。在在 UNIX System 中磁盘中磁盘 i节点的项占用节点的项占用64个字节。个字节。因此,一个长因此,一个长 512个字节的块可存放个字节的块可存放 8 个个 i节点项。节点项。系统在对文件进行各种操作时,为了减少设备的启系统在对文件进行各种操作时,为了减少设备的启动次数以及提高操作速度,总是把相应的磁盘动次数以及提高操作速度,总是
19、把相应的磁盘 i节节点复制到内存的特定区域点复制到内存的特定区域内存内存 i节点表中。节点表中。内存内存 i节点结构节点结构 inode除了包含磁盘除了包含磁盘 i节点结构的各项节点结构的各项之外,还包含了当前打开文件的状态信息。例如,之外,还包含了当前打开文件的状态信息。例如,内存内存 i节点的状态:包括该节点是否已被锁住,是节点的状态:包括该节点是否已被锁住,是否有进程等待访问该否有进程等待访问该 i节点等。节点等。总之,与总之,与 filsys 用于空闲区的分配与回收不一样,用于空闲区的分配与回收不一样,i节点主要用来存放文件的说明信息,以便进程利用节点主要用来存放文件的说明信息,以便进
20、程利用 i节点中的逻辑结构和物理结构信息搜索查找文件节点中的逻辑结构和物理结构信息搜索查找文件信息以及完成对文件信息的保护和共享。信息以及完成对文件信息的保护和共享。3.目录项目录项UNIX系统的目录项由文件名和磁盘系统的目录项由文件名和磁盘 i节点标识符节点标识符id组组成。其中文件名长度占成。其中文件名长度占14个字节,标识符个字节,标识符id占占 2个个字节。从而,在一个字节。从而,在一个 512字节的磁盘块中可以存放字节的磁盘块中可以存放32个目录项。个目录项。4.系统打开文件表和用户打开文件表系统打开文件表和用户打开文件表在在UNIX系统中,文件系统主要描述程序和数据的静系统中,文件
21、系统主要描述程序和数据的静的概念,而进程则反应这些程序和数据的动的特性。的概念,而进程则反应这些程序和数据的动的特性。进程怎样才能对文件发生作用呢?从用户的角度来进程怎样才能对文件发生作用呢?从用户的角度来看,用户程序可使用对文件系统进行操作的系统调看,用户程序可使用对文件系统进行操作的系统调用来完成。但是,从系统内部的角度来说,则需要用来完成。但是,从系统内部的角度来说,则需要有相应的数据结构来记录和控制打开文件的用户进有相应的数据结构来记录和控制打开文件的用户进程以及记录和控制那些共享同一文件的用户进程。程以及记录和控制那些共享同一文件的用户进程。为此为此 UNIX系统设置了用户打开文件表
22、和系统打开系统设置了用户打开文件表和系统打开文件表。文件表。用户打开文件表一般放在用户打开文件表一般放在 user 数据结构中。使用用数据结构中。使用用户打开文件表,一个进程可同时打开户打开文件表,一个进程可同时打开 20 个左右的个左右的文件。可打开的文件表项文件。可打开的文件表项 u_ofile中含有打开文件的中含有打开文件的描述符描述符fd,以及系统打开文件表的入口指针,以及系统打开文件表的入口指针fp等。等。系统打开文件表主要用来指明打开同一文件的不同系统打开文件表主要用来指明打开同一文件的不同进程和不同进程所使用的不同打开路径,以及这些进程和不同进程所使用的不同打开路径,以及这些不同
23、进程和不同打开路径所对应的读写指针。因此不同进程和不同打开路径所对应的读写指针。因此可以认为系统打开文件表是可以认为系统打开文件表是 i节点表的补充。系统节点表的补充。系统打开文件表的每一项包括文件标识、文件访问计数、打开文件表的每一项包括文件标识、文件访问计数、文件读写指针和文件内存文件读写指针和文件内存 i节点入口指针和访问标节点入口指针和访问标志等。其中文件标识与用户打开文件中志等。其中文件标识与用户打开文件中fp相连;文相连;文件访问计数指示共享该文件的进程数,当文件访问件访问计数指示共享该文件的进程数,当文件访问计数为计数为 0时,则表明已没有用户进程在使用该文件,时,则表明已没有用
24、户进程在使用该文件,从而可以释放有关资源。文件读写指针则分别指出从而可以释放有关资源。文件读写指针则分别指出各进程在同一文件中的读写位置。各进程在同一文件中的读写位置。资源管理结构、资源管理结构、i节点以及用户打开文件表和系统打节点以及用户打开文件表和系统打开文件表的关系如图开文件表的关系如图9.3所示:所示:图图9.3 文件系统中主要数据结构之间的关系文件系统中主要数据结构之间的关系在图在图9.3中,用户进程通过用户打开文件表中的文件中,用户进程通过用户打开文件表中的文件描述符描述符fd,找到系统打开文件表的入口地址,找到系统打开文件表的入口地址fp,再,再由系统打开文件表中对应项找到相关由
25、系统打开文件表中对应项找到相关 i节点的入口节点的入口指针,从而得到操作该文件所需的控制信息。有了指针,从而得到操作该文件所需的控制信息。有了 i节点中的控制信息,文件系统就可对磁盘数据区节点中的控制信息,文件系统就可对磁盘数据区中的文件进行所必需要的操作。另外,在图中的文件进行所必需要的操作。另外,在图9.3中,中,给出了两个不同用户进程共享同一文件的例子。这给出了两个不同用户进程共享同一文件的例子。这两个进程通过各自不同的文件描述符两个进程通过各自不同的文件描述符fdA和和fdB,找,找到系统打开文件表中不同的对应项,并通过系统打到系统打开文件表中不同的对应项,并通过系统打开文件表中的开文
展开阅读全文