- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件和设备管理概要
10.5 文件和设备管理 以UNIX系统为例 10.5.1 文件系统的特点与文件类别 特点 UNIX的文件是无结构的字符流文件 文件可以动态地增长或减少 文件数据可由文件拥有者设置相应访问权限并受到保护 外部设备被当作文件 10.5.1 文件系统的特点与文件类别 文件的分类 普通文件:无结构的字符流文件 目录文件:目录信息所构成的文件 设备文件:设备信息所构成的文件 10.5.2 文件系统数据结构及其关系 文件系统的存储结构 UNIX文件系统由每块512B或512B的任意整数倍所构成的逻辑块序列组成,块长的选取将直接影响设备与主存的数据传输速度和内存存储能力。 块太大,使得设备与主存的数据传输更加容易,但也会使内存页面长度增加,从而影响内存的存储能力,一般取512字节。 10.5.2 文件系统数据结构及其关系 0#块:引导块,装有启动操作系统的引导代码。 1#块:超级块,用于描述文件系统的状态,如文件系统的大小、有关空闲区分配和回收的堆栈等。 2#块到K#块为止的区域存放文件说明信息,即BFD表,UNIX把文件的说明信息成为i节点或索引节点 K+1#以后块为数据块,存放文件数据,包括目录文件数据 10.5.2 文件系统数据结构及其关系 几种常用的数据结构 资源管理结构filsys,用于进行文件空闲块和i节点的分配和回收 Filsys是一个结构体,包括:文件卷总块数、i节点表块数、空闲块栈区、空闲块栈指针、空闲块栈互斥标志、空闲块总数、空闲i节点数组指针、空闲磁盘i节点指针、空闲i节点数组互斥标志、空闲i节点总数等。 10.5.2 文件系统数据结构及其关系 几种常用的数据结构 i节点 UNIX采用SFD(符号文件目录)和BFD(基本文件目录)方式管理文件; SFD存放文件名和文件说明信息表标识符,文件名和文件说明信息表标识符称为目录; BFD存放文件说明信息和相应标识符,称为i节点。 i节点分为磁盘i节点和内存i节点。 10.5.2 文件系统数据结构及其关系 几种常用的数据结构 i节点 磁盘i节点:存放在磁盘上,以静态形式存放文件说明信息,包含文件模式、用户标识、存取权限、该文件所用的物理块号及时间信息等。 磁盘i节点占64字节,一个块可存放8个i节点, 内存i节点:除了包含磁盘i节点的内容外,还包含当前打开的文件的状态信息。 10.5.2 文件系统数据结构及其关系 几种常用的数据结构 目录项 由文件名和磁盘i节点标识符(id)组成,其中,文件名长度占14个字节,标识符(id)占2个字节,一个盘块(512B)可存放32个目录项。 用户打开文件表:一般放在user中,每个已打开的文件表项中记录有该文件的描述符fd,以及系统能够打开文件表的入口指针fp等。 系统打开文件表:用于指明打开同一文件的不同进程和不同进程所使用的不同打开路径,以及各自对该文件的读写指针,其中每个表项包括文件标识、文件访问计数、读写指针、内存i节点指针和访问标志。 10.5.3 资源管理和地址映射 UNIX资源管理包括:空闲盘块的分配和回收、i节点和系统打开表 磁盘i节点分配和释放 文件系统包含一个i节点线性表,每个磁盘i节点被顺序编号,i节点线性表存放这些被编号的i节点的类型字段,“0”表示空闲。当一个进程需要一个新的i节点时,它可通过有哪些信誉好的足球投注网站i节点线性表得到所要的i节点(i节点线性表是启动时被放入内存)。当分配到磁盘i节点后,创建内存i节点并初始化,然后将内存i节点的内容写入磁盘i节点。 10.5.3 资源管理和地址映射 内存i节点分配和释放 当系统要对文件进行读写时,应为文件创建一个内存i节点,以便把磁盘i节点的信息复制到内存。 分配:iget过程。Iget(设备名,磁盘i节点)。 如果一文件早已被其他用户打开并有了内存i结点,此时便只须将该i结点中的引用计数加1; 如果文件尚未被其他用户打开,则由iget过程为该文件分配一个内存i结点,并调用bread过程将其磁盘i结点的内容拷贝到内存i结点中,同时进行初始化。 10.5.3 资源管理和地址映射 内存i节点分配和释放 释放:iput过程。 每当进程要关闭某文件时,须调用iput过程,先对该文件的内存i结点中的引用计数做减1操作。若结果为0,便回收该内存i结点, 再对该文件的磁盘i结点中的连接计数减1;若其结果也为0,便删除此文件, 并回收分配给该文件的盘块和磁盘i结点。 10.5.3 资源管理和地址映射 系统打开文件表的分配和释放 在UNIX系统中,为了便于共享,设置有系统打开文件表,存放各进程共享同一文件时的读写指针。 分配:getf() 用户在读写、打开一个文件时,首先获得一个内存i节点; 在系统打开文件表中为该用户分配一个表项,并赋初值以建立和内存i节点的联系; 在用户打开文件表中填写指向系统打开文件
文档评论(0)