浙大操作系统11
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)UNIX目录
•
UNIX为了加快目录的寻找速度,UNIX将文件控制 块FCB中文件名和文件说明分开。文件说明为索引节 点,各文件索引节点集中存放在索引节点区,索引 节点按索引节点号排序。而文件名与索引节点号构 成目录,UNIX S V 操作系统的文件名14个字节,索 引节点2个字节,共16个字节构成目录项。同一级目 录构成目录文件,在文件区存放。 Linux目录文件中的目录项会变长,以保证系统 支持文件名长度可变,最长达255个字符。目录项的 前三项是定长的,包含以下信息:(1)索引节点号 (4B);(2)目录项长度(2B);(3)文件名长度(2B)。 目录项最后是文件名,目录项不能跨越二个块 。
索引节点
Books mbox …… 92 60 …..
I=60 mbox
ls
返8
(4) UNIX直接间接混合寻址方式
由于80%以上文件是小文件,为了解决能高速存取小文件 和管理大文件的矛盾,UNIX将直接寻址、一级索引、二级索 引和三级索引结合起来,形成了混合寻址方式,如下图所示。 在UNIX S V的索引结点中设有13个地址项di_addr[13] (Linux的ext2设有15个地址项)它们把所存的地址项分成 两类,其中最后三个地址项分别是一级索引、二级索引和三 级索引的指针,而前面10个(ext2为12个)为直接寻址的地 址项,即存放文件逻辑块第0-9块的盘块号。如每个盘块大 小为4KB时,当文件不大于40KB时,便可直接从索引结点中 读出该文件全部盘块号,这样读小文件时速度快;如文件大 于 40KB时,系统再逐步增加一级索引、二级索引和三级索 引,这样最大管理的文件为40KB+4MB+4GB+4TB,达到管 理大文件的目标。
检验和 U 07 75 00 r O 72 00 6F 00 NT Sec 创建 时间 文件大小
Windows98 VFAT目录结构-2
用Debug工具查根目录区找出其目录项显示如下: 2171:29A0 42 77 00 6E 00 2E 00 66-00 6F 00 0F 00 Bw.n...f.o....x. 2171:29B0 00 00 FF FF FF FF FF FF-FF FF 00 00 FF ................ 2171:29C0 01 54 00 68 00 65 00 20-00 71 00 0F 00 .T.h.e. .q....u. 2171:29D0 69 00 63 00 6B 00 20 00-62 00 00 00 72 i.c.k. .b...r.o. 2171:29E0 54 48 45 51 55 49 7E 31-46 4F 58 20 00 THEQUI~1FOX .<.{ 2171:29F0 6E 26 7B 27 00 00 23 51-63 26 F4 09 00 n&{'..#Qc&...j.. 07 78 00 FF FF FF
UNIX直接间接混合寻址方式-1
数据块
di_addr[0] di_addr[1] di_addr[2]
. . .
1#
0#
2#
9#
di_addr[9] di_addr[10] 一次间接 di_addr[11] 二次间接 di_addr[12] 三次间接
一次间接块
10#
. . 。。 二次间接块 . . . .
• 文件存储器硬盘各盘区和软盘都有一个象倒置的树一样的多 级目录的文件系统,MS-DOS系统用“盘符”来识别它们,而 UNIX系统,只有一个安装UNIX操作系统的根设备的文件系统 常驻系统,而硬盘其它盘区和软盘上的文件系统直至被安装 前,UNIX系统不知道它存在。系统要使用其它的文件系统, 必须先用mount命令将其安装到系统。被安装的倒树形目录 结构的根被安装到根设备树形目录的某一节点上,通常这个 节点所对应的文件是专为安装新文件系统而创建的空文件, 如UNIX根目录下的mnt子目录节点,与根设备的文件系统的 树形目录结构融为一体,构成一个倒置树的多级目录结构。 • 新文件系统通过安装表与根设备文件系统某节点联系起来, 在安装时也将新文件系统盘的管理块(superblock)信息拷 贝到系统缓冲区。新文件系统必须在安装后才能进行读写, 而使用完毕后必须使用umount拆卸文件系统命令拆卸安装上 去的文件系统,在拆卸时系统将内存系统缓冲中目录管理信 息拷贝到将拆卸文件系统的盘中,以保证盘中信息的完整性。
输入输出系统
(2) MS DOS的文件系统
磁盘文件卷结构
Sector #
0 1 N FAT 1 Boot Record
2N FAT 2 Root Directory Data (File & Directory)
Volume Structure in MS DOS
返回
(3) Tree-Structured Directories
文件系统安装-- UNIX可装卸文件系统-1
安装表结构: struct mount {int m_flags ; dev_t m_dev ; struct inode *m_inodp ; struct buf *m_bufp ; struct inode *m_mount ; } 安装表作用图见下:
1034#
三次间接块
. . . . . .
(5)成组链接法
UNIX S V操作系统采用成组链接法管理磁盘空闲块,该方 法是空闲表法和空闲块链接法的结合,具备分配回收方便, 不需专用块来存放分配表等优点。 • 成组链接法将磁盘空闲块分成若干组,如将每100个盘块作 为一组,该组空闲块总数和各空闲块块号存入下一组的第一 个空闲块中。最后不满100块的那组空闲块总数和各空闲块 块号记入磁盘区专用管理块的空闲块管理的数据结构: s_nfree和s_free[100]中,如下图所示。
检验和 X 07 78 00 FF FF FF
00 FF
FF FF
FF FF e 65 00
01 T h 54 00 68 i c 69 00 63 00 短 文 T H E Q 创建 最后存 日期 取日期
00 20 k 6B 00 00 件 名 U I ~ 1 第一簇 最后修 高 16 位 改时间
00 07 75
00 6F 00 3C C1 7B 6A 02 00
(5) MS-DOS / Windows98 FAT表结构
MS-DOS文件系统的文件物理结构采用FAT表结构。该结构为了 克服链接文件随机读取任一逻辑块需要化费多次盘I/O操作的 不足,将各盘块中的链接指针集中存放在盘的开始部分,构 成一张表,称为FAT表。FAT表每一项存放链接指针(下一个 簇号),每个FAT表项占12位或16位,称为FAT12或FAT16。对 于软盘因为容量小,簇数也少,采用12位FAT表,对于硬盘则 采用16位FAT表。FAT表文件系统原为小硬盘的目录结构而设 计,由于簇的数目最多只能用16位表示,即最多只能有64K个 簇,要用FAT表管理大的磁盘分区,只能采取增大每簇所包含 的扇区数,一般根据磁盘的类型和容量大小来决定簇的大小, 如下表所示。当然每簇包含扇区数增加,带来内另头的浪费, 这对小文件特别严重。Windows98为了减少内另头的浪费,可 采取每簇的数目用32位表示,减少每簇包含扇区数,这称为 FAT32。 FAT16 、FAT32文件系统簇和扇区关系也见下表所示。
(3)UNIX树型带勾连的目录结构
I=1
根目录索引节点
根
bin 4
I=4 ls 10
目录文件
dev 7 unix usr 6
I=6 dir 10
mnt
etc 9
tmp 8
dey 7
索引节点
索引节点
目录文件
disk 19 ast 26
I=26
目录文件
erik jim bal 3wk.baidu.com 51 45
I=10
(4) Windows98 VFAT目录结构
Windows98长文件名的目录项由几个MS-DOS的32B目录组 成。它用一个表项存放短文件名和这个文件或子目录的其它 信息(包括MS-DOS FCB原有的簇号、文件大小,最后修改 时间和最后修改日期,还有Windows98增加的创建时间、创建 日期和最后存取日期),短文件名的属性是0×20。另外用连 续若干个表项存放长文件名,每个表项存放13个字符(使用 Unicode编码,不论西文和汉字,每个字符一律占用2个字节。 对西文第一个字节存ASCII码,第二个字节存0×00。)长文 件名的表项首字节的二进制数低5位值,分别为00001B 、 00010B 、 00011B 、……,表示它们的次序,左起第2位 为1(也就是在低5位基础上加40H)表示该表项是最后一项。 最后项存放13个字符位置多余时,先用2个字节0表示结束, 再用FFH填充。长文件名的属性是OFH。长文件名项的第13、 27、28字节为0×00,第14字节为短文件名检验和。长文件名 The quick brown.fox(短文件名为THEQUI~1.FOX)目录项格 式如下:
I=1
根设备
2
3
4
5
6
安装表
m-indp m-bufp m-mount
i-inade
缓冲池的缓冲区
Filsys 子文件卷
内存
inade
I=1
0# 1#superblcck
软盘
文件系统安装-- UNIX可装卸文件系统-2
• 在UNIX系统(linux)上读写软盘上信息操作如下: 插入软盘。 使用安装命令安装软盘文件系统: 格式:#mount –t type device mount-point 例: #mount –t msdos /dev/fd0 /mnt 在/mnt目录下读写MS-DOS格式软盘上文件。 使用拆卸的命令卸下软盘文件系统:格式:#umount device 例: #umount /dev/fd0 or #umount /mnt 取出软盘。 在UNIX系统中一般将硬盘划分为几个区,即为几个文件系统, 把系统文件和用户程序分开,以保护数据正确和便于维护。 系统启动时,在安装根文件系统后,会根据/etc/fstab逐个 安装各区文件系统,在关机前,会逐个拆卸各区文件系统, 最常用的其它文件系统为/u,用于存储用户程序。 (练习5)
成组链接法-1
盘专用管理块 100 150 149 . . . 51
s_nfree 0 1 s_free[100]
38 99
39 50 49
100 .
. . . . . . .
100 0 499 . . . 351
449块
. 12
50块
150块
350块
49块
149块
12块
51块
251块
351块
(6) 文件系统安装-- UNIX可装卸文件系统
MS-DOS
(1) MS-DOS层次模块结构
MS-DOS采用层次模块结构,它有三个层次模块和一个引导程 序组成。这三个模块是命令处理程序(COMMAND.COM)、文件 系统(MS-DOS.SYS)和输入输出系统。其中基本输入输出系统 又由驻在ROM中的基本输入输出系统BIOS和系统盘上的BIOS接 口模块(IO.SYS)两部分组成。引导程序在盘引导区中。三 个模块的层次关系如图所示。 用户程序 INT10-INT1A INT21 命令处理程序 文件系统 键盘命令
UNIX
(1)UNIX磁盘文件卷结构
Sector # 0 Boot Record 1 Super Block inode Table Data (File & Directory)
Volume Structure in UNIX
• 超级块:用于存放文件卷的资源管理信息,包括整个 文件卷的盘块数、磁盘索引结点的盘块数、磁盘空闲 盘块号栈和空闲盘块号栈指针、空闲盘块号栈锁、空 闲索引结点栈和空闲索引结点栈指针、空闲索引结点 栈锁等。 • i节点(inode list):存放文件说明信息,每项64字节 • 目录文件:每个目录项16字节。文件名区分大小写。
42 w 77 00
n 00 6E
Windows98 VFAT目录结构-1
00 2E f 00 66 o 属性 00 6F 00 0F 00 00 00 FF FF FF FF q 属性 00 71 00 0F b 00 00 62 00 扩展名 属性 F O X 20 最后修 第一簇号 改日期 低 16 位 00
UNIX目录-1
• 每个文件有一个存放在磁盘索引节点区的索引节点,
称为磁盘索引节点,它包括以下内容:(1)文件主标 识符和同组用户标识符;(2)文件类型:是普通文件、 目录文件、符号连接文件或特别文件(又分块设备 文件或字符设备文件);(3)文件主,同组用户和其 它人对文件存取权限(读R、写W、执行X);(4) 文件的物理地址,用于5.2.4 UNIX直接、间接混合 寻址的13个地址项di_addr[13];(5)文件长度(字 节数)di_size;(6)文件链接数di_nlink;(7) 文件最近存取和修改时间等。 UNIX采用文件名和文件说明分离的目录结构如下图 所示: