电子科大软件技术基础_文件管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文件的属性
除文件的具体内容 外,还需关心:
▪ 文件类型 ▪ 文件长度 ▪ 文件的物理位置 ▪ 文件建立的时间 ▪ 文件的存取控制
文件的分类
按用途:系统文件、用户文件、库文件 按文件保护级别:
不保护、执行权限、只读或只写权限 按文件中的数据形式:
文本文件、图像文件、音视频文件等
按访问方式:顺序存取文件、随机存取文件 按逻辑结构:记录式文件、流式文件 按物理结构:连续式文件、链式文件、索引文件
2.6 文件管理
1 文件的基本概念 2 文件的组织结构 3 文件的目录 4 文件的共享、保护和加密 5 文件存储空间的管理 6 文件的操作
2.6.1 文件的基本概念
文件: 具有文件名的一组相关信息的集合,是 信息组织的一种通用形式。
文件名:由一串字符构成,用户利用文件名来访 问文件。
文件系统: 操作系统中管理文件的机构,提供文件存储和 访问等功能。
空闲文件目录:
建立一个空闲文件目录表,每个表项记录一个空闲文件的起 始块号和大小。
2.6.6 文件的操作
打开open:
为文件读写所进行的准备。给出文件路径,获得文件句柄,或文 件描述符。将该文件的目录项读入到内存中。
关闭close:
释放文件描述符,把该文件在内存缓冲区的内容更新到外存上。
复制文件句柄dup:
多级目录组织
2.6.4 文件的共享和保护
一、文件的共享
▪ 共享:一个文件可以让多个用户共同使用。 ▪ 共享的方式:
❖指定路径方式:多个用户通过相同的路径访问同一文件; ❖符号链接方式:建立到另一个目录或文件路径的符号链文 件。例如:快捷方式、URL超级链接等。 ❖利用索引结点
指定路径例:
用户1在C目录下 用户2在E目录下 用户1访问z.txt文件使用
Sector #
0 Boot Record
1 Super Block
inode Table
Data (File & Directory)
Volume Structure in UNIX
超级块:描述文件系统的状态,包括磁盘空闲块栈,空闲i结 点栈
索引节点(inode list):存放文件说明信息,每项64字节 目录文件:每个目录项16字节。文件名区分大小写。 文件分配:直接索引,一级、二级、三级间接索引
windows用户级保护
Windows 网络级 目录级保护
三、文件的访问权限
文件访问类型:
– 读read:可读出文件内容; – 写write(修改update或添加append):可把数据写入文
件; – 执行execute:可由系统读出文件内容,作为代码执行; – 删除delete:可删除文件; – 修改访问权限:修改文件属主或访问权限。
2.6.3 文件目录
一、目录管理功能
1、基本功能:按名存取
提供文件名到文件在外存中物理位置的映射
2、提高检索速度
合理组织目录结构,加快检索速度
3、文件共享和文件重名
不同名字访问同一文件——共享 相同名字访问不同文件——重名
二、文件控制块(FCB)
FCB——用来描述一个文件的文件名、物理位置 及其它说明与控制信息的数据结构。
多级目录:或称为树型目录
在文件数较多时,便于系统和用户将文件分散管理。适用于较 大的文件系统管理。但目录级别太多时,会增加路径检索时间。
目录树:根结点——根目录、中间结点——各级子目录、 叶子结点——文件。
目录的上下级关系:当前目录(current directory, working directory)、父目录(parent directory)、子目 录(subdirectory)、根目录(root directory)等;
N FAT 1
2N FAT 2
Root Directory
Volume Structure in MS DOS
磁盘文件卷结构
Data (File & Directory)
每个FAT表项所占位数是簇编号的位数,其值(以 FAT16为例):
– 0:表示该簇空闲
– FF7h:物理坏扇区
– FF8h-FFFh:表示该簇是文件的最后一个簇
NTFS文件由多个文件属性构成,每个属性由属 性名和属性流组成;用户可自定义属性;
NTFS支持用户权限管理:
– 有5种权限划分:读、写、运行、删除和修改权限; – 支持按用户、用户组分配权限;
NTFS文件支持数据压缩功能; NTFS卷结构支持容错功能; NTFS支持文件操作日志功能; NTFS支持文件加密功能; NTFS支持用户空间限制功能;
有结构文件(记录式) 可变记录
二、文件的物理组织
文件在物理存储空间上的存放、分配和组织方式。
连续结构 链接结构 索引结构
,逻辑上的先后关系在物 理块上用链表实现,不能随机存取
离散存放,逻辑上的先后关系通 过另外建立的索引文件来实现, 通过索引文件来访问文件的实际 存取内容。可以随机访问。
文件类型:常规文件(ordinary file)、目录文件 (directory)、特殊文件(special file)如外设、先进 先出文件(FIFO)如命名管道;
磁盘空闲块采用成组链接法,把链表和索引相结合。 每一组50块,用索引表表示;各组间通过链表指针 串在一起,构成链表。
磁盘文件卷结构
用于子进程与父进程间的文件共享,复制前后的文件句柄有相同 的文件名、文件指针和访问权限。
读read、写write和移动文件读写指针lseek:
系统为每个打开文件维护一个读写指针,它是相对于文件开头的 偏移地址。读写指针指向每次文件读写的开始位置,在每次读 写完成后,读写指针按照读写的数据量自动后移相应数值。
主文件表副本($MFTMirr):是主文件表中前几项的副 本,用于在主文件表不能读取时的元文件定位;
卷结构日志($LogFile):记录所有影响NTFS卷结构的 操作,用于系统失败后的卷恢复;
空间分配位图($Bitmap):标识卷中每个簇的分配状态, 即:空闲和已被分配;
引导文件($Boot):引导程序代码;
文件系统的功能
文件的物理组织——(磁盘)存储空间管理 文件的逻辑组织——文件信息的组织方式 文件名到外存空间的映射——文件目录 文件操作的实现 文件的共享和保护
2.6.2 文件的组织
逻辑组织 从用户的角度,研究文件的抽象形式 物理组织 从实现的角度,研究文件的存放形式
一、文件的逻辑组织
无结构文件(字符流式) 定长记录
.. \ .. \ F \ z.txt 路径
用户2访问z.txt文件使用 .. \ z.txt 路径
A
B
F
C
D E z.txt
二、文件的保护
存取控制表
每个文件设置一张存取控制表,为每类用户 规定存取权限
口令
– 登陆口令 – 访问口令
密码
分级安全管理:
网络级 网络访问权限设置 系统级 用户注册、登录 用户级 控制用户对文件的访问权限 目录级 每个目录允许用户的访问权限 文件级 每个文件允许用户的操作权限
文件控制块(FCB)包含的内容: 文件名、文件类型、物理位置、长度、逻辑 结构、物理结构、存取权限、日期时间等相 关信息。
目录是以文件控制块为元素的数据结构,决定了 文件控制块的组织方式。根据文件名与其存放地 址的对照表进行文件的检索。
三、目录结构
目录的组织结构——设计目标是提高检索效率。
一级目录:整个目录组织是一个线性结构,系统中 的所有文件都建立在一张目录表中。它主要用于单 用户操作系统。它具有如下的特点:
5.格式化(format):在一个文件卷上建立文件系统。
6. 外存空闲空间管理
外存空闲空间管理的数据结构通常称为磁盘分配表(DAT), 分配的基本单位是物理块。
空闲空间的管理方法有:
位图:
每一位表示一个物理块,取值0和1分别表示空闲和占用。
空闲块链接:
每个空闲物理块中有指向下一个空闲物理块的指针,所有空 闲块构成一个链表。不需要磁盘分配表,节省空间。每次申 请空闲块只需取出链表开头的空闲块即可。
坏簇文件($BadClus):记录卷中据有损坏位置;
卷文件($Volume):卷名、文件系统版本、卷状态(卷 是否被损坏);
属性定义表($AttrDef):卷中支持的属性类型列表;
UNIX的文件系统
改进的多级文件目录,可以建立文件别名(索引结 点方式和符号链接方式),有用户访问权限控制 (文件的读R、写W和执行X,相应于目录的检索文 件、增删文件和进入目录);
创建链接、读链接路径readlink等。
作业
文件目录的主要作用是什么?使用当前 目录的好处是什么?
MS DOS的FAT文件系统
多级目录,不支持文件别名,无用户访问权限控制。
FAT表:两个镜像,互为备份。文件卷中的每个簇 均对应一个FAT表项,文件分配采用链式分配方法。
Sector #
01 Boot Record
执行exec:执行一个可执行文件。
创建(create):
获得新文件的文件句柄。
删除unlink:
对于符号链接和硬链接,删除效果是不同的。
获取文件属性(stat和fstat):
参数为文件名或文件句柄。
修改文件名rename; 修改文件属主chown; 修改访问权限chmod; 文件别名控制:
Windows 2000的文件系统结构
与文件系统相关的数据结构
NTFS卷结构
NTFS的结构以卷为单位,卷与磁盘分区相关;卷由 一组文件和未分配空间组成;
NTFS以簇为基本硬盘分配单位,簇的大小为物理扇 区的整数倍,通常为2K倍;
NTFS卷上的所有数据(包括用于引导、定位、空间 分配等文件系统管理数据)都以文件的形式保存;
– 结构简单; – 文件多时,目录检索时间长; – 有命名冲突:如重名(多个文件有相同的文件名) 或别名
(一个文件有多个不同的文件名); – 不便于文件共享。
二级目录:在根目录下,每个用户对应一个目录 (第二级目录);在用户目录下是该用户的文件, 而不再有下级目录。适用于多用户系统,各用户可 有自己的专用目录。
文件引用号:在主文件表中每个文件记录有一个64 位的文件引用号;它由文件号和顺序号组成:
– 文件号(48位:47-0)是文件在主文件表中的位置序号 – 顺序号(16位:63-48)在每次重复使用该文件记录时加1
NTFS的元文件
主文件表($MFT):文件记录数组,每个记录为1KB; 每个文件对应一个或多个文件记录;它是主文件表中的主 文件表记录;
– 其他值:表示该簇被文件占用,而且表项中的值是文件下 一个簇的编号。
目录:是目录项的顺序文件(即大小相同的排序记录 序列),不对目录项排序。
– 每个目录项大小为32字节,其内容包括:文件名(8+3个 字符),属性(包括文件、子目录和文件卷标识),最后 一次修改时间和日期,文件长度,第一个簇的编号。
路径(path):目录名的序列
*绝对路径:从根目录开始,到达最终目的地所经过的目录 名序列; *相对路径:从当前目录开始,到达最终目的地所经过的目 录名序列
文件重名
*不同目录下的文件可以重名
*文件路径 + 文件名 可以唯一标识文件
根目录 A B C
ABD
FEDB
GAE
HIJK
ABC
DE
LMN
A
EP
用户范围类型:
– 指定用户 – 用户组 – 任意用户
访问类型和用户范围的组合:
– 访问矩阵 – 访问策略
2.6.5 文件存储空间的管理
1.新创建文件的存储空间(文件长度)分配方式:
-预分配:创建文件时一次分配指定的存储空间,如文件复 制时的目标文件。
-动态分配:需要存储空间时才分配(创建时无法确定文件 长度),如写入数据到文件。
– 在目录项中,若第一个字节为 E5h,则表示空目录项;若 为 05h,则表示文件名的第一个字符为 E5h。
– 文件名不区分大小写
FAT
800h
823h
850h
... 823h ... 850h ... FF8h ...
Dir Entry File1
800h
Windows 2000的文件系统
NTFS为改进的多级目录结构,支持文件别名 (符号链接方式);
2.文件存储单位:簇(cluster)
文件的存储空间通常由多个簇(物理块)组成,每个簇包含 若干个连续的扇区(sector)。
3.磁盘分区(partition):通常把一个物理磁盘的存储空
间划分为几个相互独立的部分,称为“分区”。
4.文件卷(volume):或称为“逻辑驱动器”。在同一个文
件卷中使用同一份管理数据进行文件分配和外存空闲空间 管理,而在不同的文件卷中使用相互独立的管理数据。
相关文档
最新文档