您好,欢迎访问三七文档
文件管理计算机科学系内容文件系统的基本概念文件的组织结构目录管理文件的使用与控制文件共享文件保护文件存储空间的管理文件系统的基本概念文件具有符号名的一组信息文件类型按性质用途分类按属性分类按信息流向分类按存储介质分类文件的功能文件的组织结构文件的逻辑结构指用户概念中的文件无结构的流式文件基本单位是字节或字有结构的记录式文件基本单位是记录记录式文件的逻辑组织顺序存取直接存取按键存取文件的组织结构文件的物理结构指文件在存储介质上的组织方式顺序结构链接结构索引结构目录管理文件控制块(FCB)用于描述和控制文件的数据结构最基本的内容是文件名和文件的物理地址,其它内容通常有文件的逻辑结构、物理结构、文件的长度、文件的权限、文件的建立日期和时间等文件与文件控制块一一对应,分别存放,文件控制块的有序集合称作目录。目录通常以文件的方式存放在外存上,将只成为目录文件。索引节点文件很多时,文件目录要占用大量的物理块,因此,在目录中查找一个指定的文件需要多次启动磁盘。实际在查找过程中,只用到了文件名信息。把文件名和文件描述信息分开,把文件描述信息单独形成一个数据结构,成为索引节点。目录管理文件目录结构单级目录结构二级目录结构树形目录结构目录查询技术文件的使用与控制使用系统调用的方式来使用和控制文件最基本的系统调用有:建立与删除文件fd=creat(name,mode)unlink(namep)打开与关闭文件fd=open(name,mode)close(fd)读写文件n=read(fd,buf,nbytes)n=write(fd,buf,nbytes)文件共享文件共享的目的节省存储空间进程相互通信文件共享的模式不同时使用一个文件同时使用一个文件文件共享的实现公共目录连接共享说明文件共享—连接基于索引节点的共享无法删除被其他人共享的文件利用符号链实现共享建立类型为Link的新文件,文件只包含了被连接文件的路径名增加系统开销…filec…filebOwner=ci_nlink=2文件物理地址…filec目录索引节点文件…filec…filebOwner=c类型:普通文件物理地址…Owner=c类型:Link文件物理地址…filecfileb目录文件的保护防止系统故障造成的破坏建立副本文件转储全部存储增量存储文件的使用权限存取控制矩阵存取控制表用户权限表防止非法用户窃取、破坏文件设置口令使用密码加密file1file2file3user1RRWRWXuser2RWXRuser3XRRW文件存储空间的管理空闲文件目录把未分配的每一片连续区域看做一个空闲文件空闲块链位示图010111010010空闲空闲空闲文件例题有一文件系统如图所示。图中的框表示目录,圈表示普通文件。根目录长驻内存,目录文件组织成链接文件,普通文件组织成索引文件。每个磁盘块有512个字节,与普通文件的一页等长。普通文件的文件控制块组织如图。其中,每个磁盘地址占2个字节,前10个地址直接指示该文件前10页的地址。第11个地址指示一级索引表地址,一级索引表中每个磁盘地址指示一个文件页地址;第12个地址指示二级索引表地址,二级索引表中每个磁盘地址指示一个一级索引表地址;第13个地址指示三级索引表地址,三级索引表中每个磁盘地址指示一个二级索引表地址。问:一个普通文件最多可以有多少文件页?若要读文件J中的某一页,最多启动磁盘多少次?若要读文件W中的某一页,最少启动磁盘多少次?例题根目录ABCDHILPUJKCFGWVTMNQH该文件的有关描述信息磁盘地址磁盘地址……..磁盘地址磁盘地址121213练习文件系统的主要目的是()1、实现对文件的按名存取2、实现虚拟存储3、提高外存的读写速度4、用于存储系统文件在文件系统中,为实现文件保护一般采用哪些方法?1、口令2、密码3、访问控制4、复制5、在读写文件之前使用Open6、在读写文件之后使用Close练习在数型目录结构中,用户对某文件的首次访问通常都采用();文件被打开后,对文件的访问通常采用()。1、文件符号名2、文件路径名3、内存索引节点的指针4、用户文件描述符判断一个文件在同一系统中、不同的存储介质上的拷贝,应采用同一种物理结构文件的物理结构不仅与外存的分配方式有关,还与存储介质的特性相关,通常在磁带上只适合使用顺序结构采用顺序结构的文件既适合进行顺序访问,也适合进行随机访问虽然磁盘是随机访问的设备,但其中的文件也可以使用顺序结构对一个具有三级索引表的文件,存取一个记录通常需要三次访问磁盘链式文件最不适合对文件进行随机访问练习使用位示图(20行、30列)表示空闲盘块状态。如当分配一个盘块号为132号时,其在位示图中的行列为()、();当释放一个盘块号为318号时,其在位示图中的行列为()、()。(注:行为0-19,列为0-29,首盘块号为1)练习在某个文件系统中,每个盘块为512字节,文件控制块占64个字节,其中文件名占8个字节,对一个存放在磁盘上的256个目录项的目录,试比较引入索引节点前后,为找到其中一个文件的FCB,平均启动磁盘的次数。练习目前广泛采用的目录结构是哪种?它有什么优点?答:(1)能有效地提高对目录的检索速度;(2)允许文件重名;(3)便于实现文件共享。Windows常见文件系统(1)(1)FAT16作为一种文件名称,FAT(FileAllocationTable,文件分配表)自1981年问世以来,已经成为一个计算机术语。由于时代的原因,包括Windows、MacOS以及多种Unix版本在内的大多数操作系统均对FAT提供支持。这是MS-DOS和最早期的Windows95操作系统中使用的磁盘分区格式。它采用16位的文件分配表,是目前获得操作系统支持最多的一种磁盘分区格式,几乎所有的操作系统都支持这种分区格式,从DOS、Windows95、WindowsOSR2到现在的Windows98、WindowsMe、WindowsNT、Windows2000、WindowsXP都支持FAT16,但只支持2GB的硬盘分区成为了它的一大缺点。FAT16分区格式的另外一个缺点是:磁盘利用效率低(具体的技术细节请参阅相关资料)。为了解决这个问题,微软公司在Windows95OSR2中推出了一种全新的磁盘分区格式——FAT32。Windows常见文件系统(2)(2)FAT32这种格式采用32位的文件分配表,对磁盘的管理能力大大增强,突破了FAT16下每一个分区的容量只有2GB的限制。由于现在的硬盘生产成本下降,其容量越来越大,运用FAT32的分区格式后,我们可以将一个大容量硬盘定义成一个分区而不必分为几个分区使用,大大方便了对磁盘的管理。而且,FAT32与FAT16相比,可以极大地减少磁盘的浪费,提高磁盘利用率。目前,Windows95OSR2以后的操作系统都支持这种分区格式。但是,这种分区格式也有它的缺点。首先是采用FAT32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用FAT16格式分区的磁盘要慢。另外,由于DOS和Windows95不支持这种分区格式,所以采用这种分区格式后,将无法再使用DOS和Windows95系统。Windows常见文件系统(3)(3)NTFS为了弥补FAT在功能上的缺陷,微软公司创建了一种称作NTFS的文件系统技术。它的优点是安全性和稳定性方面非常出色,在使用中不易产生文件碎片。并且能对用户的操作进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了系统与数据的安全。Windows2000、WindowsNT、以及WindowsXP都支持这种分区格式。Linux文件系统Linux文件系统的特点支持多种文件系统ext2,ext3,reiserfs等文件系统的挂载提供虚拟文件系统(VFS)设备特殊文件Linux常见文件系统(1)(1)ext2ext2是GNU/Linux系统中标准的文件系统。这是Linux中使用最多的一种文件系统,它是专门为Linux设计的,拥有极快的速度和极小的CPU占用率。ext2既可以用于标准的块设备(如硬盘),也被应用在软盘等移动存储设备上。(2)ext3是由ext2文件系统发展而来保有ext2的格式之下再加上日志功能。ext3是一种日志式文件系统(JournalFileSystem),最大的特点是:它会将整个磁盘的写入动作完整的记录在磁盘的某个区域上,以便有需要时回溯追踪。当在某个过程中断时,系统可以根据这些记录直接回溯并重整被中断的部分,重整速度相当快。该分区格式被广泛应用在Linux系统中。Linux常见文件系统(2)(3)reiserfsreiserfs文件系统是一款优秀的文件系统,支持大文件,支持反删除(undelete);在测试ext2、reiserfs反删除文件功能的过程中,发现reiserfs文件系统表现的最为优秀,几乎能恢复90%以上的数据,有时能恢复到100%。(4)swap它是Linux中一种专门用于交换分区的swap文件系统。Linux是使用这一整个分区作为交换空间。一般这个swap格式的交换分区是主内存的2倍。在内存不够时,Linux会将部分数据写到交换分区上。文件系统的挂载文件系统的挂载在Linux中将一个文件系统与一个存储设备关联起来的过程称为挂载(mount)。使用mount命令将一个文件系统附着到当前文件系统层次结构中。在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。#mount-tvfat/dev/sda1/mnt/usb虚拟文件系统虚拟文件系统用户空间包含一些应用程序(例如,文件系统的使用者)和GNUC库,它们为文件系统调用(打开、读取、写和关闭)提供用户接口。系统调用接口的作用就像是交换器,它将系统调用从用户空间发送到内核空间中的适当端点。VFS是底层文件系统的主要接口。这个组件导出一组接口,然后将它们抽象到各个文件系统,各个文件系统的行为可能差异很大。有两个针对文件系统对象的缓存(inode和dentry)。它们缓存最近使用过的文件系统对象。每个文件系统实现(比如ext2、reiserfs等等)导出一组通用接口,供VFS使用。缓冲区缓存会缓存文件系统和相关块设备之间的请求。例如,对底层设备驱动程序的读写请求会通过缓冲区缓存来传递。这就允许在其中缓存请求,减少访问物理设备的次数,加快访问速度。以最近使用(LRU)列表的形式管理缓冲区缓存。注意,可以使用sync命令将缓冲区缓存中的请求发送到存储媒体(迫使所有未写的数据发送到设备驱动程序,进而发送到存储设备)。Linux设备特殊文件设备特殊文件用户是通过文件系统与设备接口的,所有设备都作为特别文件,从而在管理上就具有一些共性:(1)每个设备都对应文件系统中的一个索引节点,都有一个文件名。设备的文件名一般由两部分构成,第一部分是主设备号,第二部分是次设备号。主设备号代表设备的类型,可以惟一地确定设备的驱动程序和界面,如hd表示IDE硬盘,sd表示SCSI硬盘,tty表示终端设备等次设备号代表同类设备中的序号,如hda表示IDE主硬盘,hdb表示IDE从硬盘等。(2)应用程序通常可以通过系统调用open()打开设备文件,建立起与目标设备的连接。(3)对设备的使用类似于对文件的存取。打开设备文件以后,就可以通过read()、write()等文件操作对目标设备进行操作。
本文标题:07文件管理
链接地址:https://www.777doc.com/doc-3268667 .html