版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章第七章 文件系统文件系统n7.1 文件与文件系统文件与文件系统n文件文件n具有符号名而且在逻辑上具有完整意义的信息项的序列。具有符号名而且在逻辑上具有完整意义的信息项的序列。n文件系统文件系统n文件与管理文件的程序集合。文件与管理文件的程序集合。 信息项信息项 信息项信息项 信息项信息项 信息项信息项读读(写写)指针指针 UNIX文件分类文件分类n普通文件普通文件n内容可以是程序、数据、图象等,保存在磁盘块中内容可以是程序、数据、图象等,保存在磁盘块中n目录文件目录文件n(文件名,文件号文件名,文件号)序列,保存在磁盘块中序列,保存在磁盘块中n特殊文件特殊文件n设备设备n设备作为文件管理
2、的好处设备作为文件管理的好处n界面统一,使用文件与使用设备命令相同,申请设备界面统一,使用文件与使用设备命令相同,申请设备open, 释放释放close, 读读read, 写写writen利用文件保护功能可以保护设备利用文件保护功能可以保护设备7.2 文件的访问方式文件的访问方式n顺序访问顺序访问n从文件起始位置开始顺序访问从文件起始位置开始顺序访问n从文件中间某处开始顺序访问从文件中间某处开始顺序访问n随机访问随机访问n按记录编号随机访问按记录编号随机访问n按关键字按关键字(key)随机访问随机访问7.3 文件的组织文件的组织n逻辑组织逻辑组织n用户看到的文件组织形式用户看到的文件组织形式n
3、记录式文件:记录的序列记录式文件:记录的序列n等长记录(优点:处理方便,速度快;缺点:空间浪费)等长记录(优点:处理方便,速度快;缺点:空间浪费)n不等长记录(优点:省空间;缺点:处理不便,速度慢)不等长记录(优点:省空间;缺点:处理不便,速度慢)n流式文件:字节的序列流式文件:字节的序列(UNIX, Windows, etc)n物理组织物理组织n逻辑组织到磁盘块的映射逻辑组织到磁盘块的映射n文件:记录文件:记录(字节字节)序列序列n磁盘:块磁盘:块(block)序列序列变换关系变换关系7.3.2 文件的物理组织文件的物理组织n考虑因素考虑因素n记录格式记录格式n等长或不等长等长或不等长, 流
4、式不必考虑流式不必考虑n空间开销空间开销n除保存文件内容之外的存储开销除保存文件内容之外的存储开销n访问速度访问速度n随机访问速度随机访问速度n长度变化长度变化n动态增长动态增长顺序结构:顺序结构: 一个文件占有若干连续的磁盘块。一个文件占有若干连续的磁盘块。优点:速度快,节省空间优点:速度快,节省空间缺点:长度变化困难缺点:长度变化困难块块18块块19块块20块块21块块22.磁盘空间磁盘空间首块首块=18块数块数=5.FCB链接结构:链接结构: 一文件可存于不连续块中,块间以指针相连。一文件可存于不连续块中,块间以指针相连。优点:节省空间,长度变化容易。优点:节省空间,长度变化容易。缺点:
5、随机访问速度慢。缺点:随机访问速度慢。块块18.块块80.块块92.磁盘空间磁盘空间首块首块=18块数块数=3. FCB索引结构:索引结构: 一文件可存于不连续块中,块号记在索引块中。一文件可存于不连续块中,块号记在索引块中。优点:速度快,长度变化容易。优点:速度快,长度变化容易。缺点:索引块占空间。缺点:索引块占空间。磁盘空间磁盘空间索引块索引块=29块数块数=4. FCB块块18块块19.块块26.块块30.索引块索引块29Hash结构:结构: 计算地址:计算地址:hash(key)=addr (在磁盘或文件中的存放位置在磁盘或文件中的存放位置)问题:给定问题:给定key1 key2 ha
6、sh(key1)=addr1; hash(key2)=addr2; addr1=addr2 (conflict)Conflict resolution: 顺序探查法:顺序探查法:如发生冲突,则在冲突位置开始顺序探查第一个空闲的存储如发生冲突,则在冲突位置开始顺序探查第一个空闲的存储位置。位置。.文件空间文件空间空闲标志空闲标志冲突记数冲突记数记录内容记录内容空闲标志空闲标志冲突记数冲突记数Hash(key)=addr起始位置起始位置计算计算addr=hash(key)对应冲突记数加对应冲突记数加1本记录空闲本记录空闲顺取下一个顺取下一个标记为占用标记为占用填记录内容填记录内容保存记录:保存记录
7、:TF记录内容记录内容查找记录:查找记录:计算计算addr=hash(key)取取addr对应记录的冲突记数对应记录的冲突记数countcount=0无此记录无此记录本记录空闲本记录空闲顺取下一记录顺取下一记录key相等相等找到找到 hash(key)相等相等count:=count-1count=0无此记录无此记录顺取下一记录顺取下一记录TFFTTFTFTF删除记录:删除记录:调用查找过程调用查找过程(key)找到找到错误返回错误返回置空闲标志置空闲标志(找到记录找到记录)冲突记数冲突记数-1对应对应hash(key)特点:特点:按关键字检索速度非按关键字检索速度非常快。常快。用途:用途:常
8、用于目录检索。常用于目录检索。注意:注意:文件可循环使用,满文件可循环使用,满时保存失败。时保存失败。FTUNIX文件物理结构文件物理结构(索引索引+链接链接)i_addr0.i_addr9i_addr10i_addr11i_addr12.inode.最大最大=10+256+2562+2563(块块)7.4 文件目录文件目录n文件控制块与目录项文件控制块与目录项n文件控制块文件控制块(FCB)n文件存在的标志,其中保存系统管理文件需要的文件存在的标志,其中保存系统管理文件需要的全部信息全部信息n目录项目录项n目录文件中的一项,内容为目录文件中的一项,内容为FCBn文件目录与目录文件文件目录与目
9、录文件n文件目录文件目录n用于检索文件的目录用于检索文件的目录n目录文件目录文件n内容为目录项的文件内容为目录项的文件文件控制块文件控制块FCB(File Control Block)文件名文件名文件号文件号文件主文件主文件类型文件类型文件属性文件属性共享说明共享说明文件长度文件长度文件地址文件地址建立日期建立日期最后修改日期最后修改日期最后访问日期最后访问日期口令口令其它其它FCB创建:建立文件时创建:建立文件时FCB撤消:删除文件时撤消:删除文件时单级目录单级目录( (Single-Level Directory) )A single directory for all users.缺点缺
10、点:1. Naming problemGrouping problem2. Protection problem两级目录两级目录( (Two-Level Directory) )Separate directory for each user.特点特点: 1. Path name2. Can have the same file name for different user3. Efficient searching4. No grouping capabilityrootbinusrlibdevetcunixlpccviusersLiWangd1d2f1consolepasswdbinya
11、ccsf2多级目录多级目录( (Multi-Level Directory as in UNIX)clibflib文件目录的查找文件目录的查找n查找路径查找路径n由根目录开始查找由根目录开始查找n由当前目录开始查找由当前目录开始查找n查找算法查找算法n顺序查找(顺序查找(UNIX)nhash查找查找n对分查找(要求文件名排序)对分查找(要求文件名排序)文件目录的改进文件目录的改进nFCBn次部:次部:(文件名文件名, 文件号文件号) n(UNIX 16 bytes)n保存在目录文件中保存在目录文件中n主部:主部:(其它其它, 链接记数链接记数)n(UNIX 32 bytes)n保存在外存保存在
12、外存inode区域区域, 打开时读入内存打开时读入内存.n改进的好处改进的好处n可以提高查找速度可以提高查找速度(顺序查找顺序查找)n可以实现文件链接可以实现文件链接(link)UNIX文件卷文件卷(volume)组织形式:组织形式: 0 1 2 k k+1 n-1导导引引块块特特殊殊块块 inode区域区域每块每块16个个inode, 从从0起依次编号起依次编号 文件存储区域文件存储区域(普通文件普通文件,目录文件目录文件)7.5 文件的共享文件的共享n共享目的共享目的n节省存储空间节省存储空间n(cc,vi,yacc)n进程相互通讯进程相互通讯nUNIX pipe()n文件共享模式文件共享
13、模式n不同时使用不同时使用n根据共享说明根据共享说明n同时使用同时使用n根据共享说明和根据共享说明和(relaxed)R/W规则规则文件的共享文件的共享n文件共享的实现文件共享的实现n公共目录公共目录n共享说明共享说明n连接连接d1userswanglif1f2i_number=15f2 15f1 15link(“/usr/users/wang/d1/f1”, “/usr/users/li/f2”)unlink(“/usr/users/wang/d1/f1”)usrusrrootroot7.6 文件的保护、保密与安全文件的保护、保密与安全n保护保护n防止用户对文件进行非授权的访问防止用户对文件
14、进行非授权的访问n保密保密n防止文件内容泄露防止文件内容泄露n安全安全n防止文件被破坏防止文件被破坏n自然因素自然因素n人为因素人为因素7.6.1文件的保护文件的保护(Protection)nFile owner/creator should be able to control:nwhat can be donenby whomnTypes of accessnReadnWritenExecutenAppendnDeletenList1. 存取控制矩阵存取控制矩阵 f1 fj fnu1 a11. a1j . a1n .ui ai1 aij . ain . um am1 . amj . amn
15、 R W E A M D aij:特点:特点:权限规定细,过于繁琐,占较多存储空间权限规定细,过于繁琐,占较多存储空间2. 访问权限说访问权限说 明(明(UNIX)i_modeR W E R W E R W E文件主文件主同组用户同组用户其他用户其他用户文件主判别:访问进程文件主判别:访问进程u_uid=i_uid同组用户判别:访问进程同组用户判别:访问进程u_gid=i_gidi_mode在创建文件时给出,在创建文件时给出,creat(filename, mode)其后文件主可以修改:其后文件主可以修改:chmod(filename, new_mode)7.6.2 文件保密文件保密n口令口令
16、n使用使用n创建文件时用户规定一个口令,系统将其记在创建文件时用户规定一个口令,系统将其记在FCB中中n访问文件要求给出口令,并与访问文件要求给出口令,并与FCB中口令比较中口令比较n特点特点n简单简单n保密性不强保密性不强(eg. 对系统操作员不保密对系统操作员不保密)n密码密码n特点特点n对文件内容加密,速度慢,效果好对文件内容加密,速度慢,效果好n使用使用n保存时加密保存时加密(key)n读取时解密读取时解密(key)n保存时:保存时:n用一个用一个key启动一个随机数发生器,产生一个随机启动一个随机数发生器,产生一个随机数序列,将其依此加到文件的各个字中。数序列,将其依此加到文件的各个
17、字中。n读取时:读取时:n用同一个用同一个key启动同一个随机数发生器,产生相同启动同一个随机数发生器,产生相同随机数序列,将其依次由文件的各个字中减去随机数序列,将其依次由文件的各个字中减去。线性同余法产生伪随机数:线性同余法产生伪随机数: Procedure random(Var key:integer); Begin key:=(key*C1+C2)MOD C3 End;7.6.3 文件系统的安全文件系统的安全nBackupn定期将磁盘上文件复制到磁带上定期将磁盘上文件复制到磁带上n发生故障时由磁带恢复发生故障时由磁带恢复(limited recovery) n实现方法实现方法n海量转储
18、海量转储n定期将磁盘上文件全部复制到磁带上定期将磁盘上文件全部复制到磁带上n增量转储增量转储n每次只复制修改部分每次只复制修改部分n磁盘整理磁盘整理n利用转储和恢复可以对磁盘进行整理利用转储和恢复可以对磁盘进行整理(使文件物理块连续,使文件物理块连续,空闲盘块连续空闲盘块连续)7.7 文件系统的实现文件系统的实现n7.7.1 内存所需表目内存所需表目n系统打开文件表系统打开文件表(系统一个系统一个)FCB主部主部文件号文件号共享计数共享计数 修改标志修改标志7.7 文件系统的实现文件系统的实现n7.7.1 内存所需表目内存所需表目n用户打开文件表用户打开文件表(每个进程一个每个进程一个)打开方
19、式打开方式 读写指针读写指针 系统打开文件表入口系统打开文件表入口文件描述符文件描述符7.7 文件系统的实现文件系统的实现打开方打开方式式读写指读写指针针系统打开文系统打开文件表入口件表入口 打开方打开方式式读写指读写指针针系统打开文系统打开文件表入口件表入口 FCB主部主部 文件号文件号 共享计数共享计数 修改标志修改标志 系统打开文件表系统打开文件表2文件描文件描述符述符文件描文件描述符述符用户打开文件表用户打开文件表15外存空间的管理外存空间的管理n空闲块表空闲块表n空闲块链空闲块链n字位映像图字位映像图nUNIX:成组连接成组连接空闲块管理空闲块管理(成组连接成组连接):100个空闲块
20、为一组,组之间相互链接,最前面的组个空闲块为一组,组之间相互链接,最前面的组缓冲到内存。缓冲到内存。s_nfree=66s_free0s_free1.s_free65.Super block .特点:速度快,空间省。特点:速度快,空间省。空闲块管理:空闲块管理:申请时:申请时: (1) s_nfree1, 取取s_free-s_nfree; (2) s_nfree=1, 将将s_free0所指连接块读入内存所指连接块读入内存,分分配配s_free0.释放时释放时: (1) s_nfree1, 取取s_free-s_nfree; (2) s_nfree=1, 将将s_free0所指连接块读入内存
21、所指连接块读入内存,分配分配s_free0.释放时释放时: (1) s_nfree0, 取取s_inode-s_ninode; (2) s_ninode=0, 由磁盘由磁盘inode区顺取区顺取100个空闲个空闲I节点节点(i_nlink=0) 将其编号填入将其编号填入s_inode表中,修改表中,修改s_ninode,然后分配。,然后分配。释放时:释放时: (1) s_ninode100, s_inodes_ninode+=i_number (释放的释放的); (2) s_ninode=100, 丢弃。丢弃。文件系统界面文件系统界面(UNIX系统调用系统调用)ncreatnopennclos
22、enseeknreadnwritenlinknunlinknpipenmknodensmountnsumountnchmodnchownernstatenfstatenchdirfd=creat(pathname,mode)pathname: 路径名;路径名;mode: 共享说明;共享说明;分配一个分配一个inode, 初始化初始化(i_size=0, i_mode=mode, i_nlink=1,i_uid=u_uid, i_gid=u_gid );2. 填写目录项填写目录项(name, i_number);3. 以写方式打开以写方式打开(填写填写inode表、表、file 表和表和u_of
23、ile表表);4. 返回文件描述符。返回文件描述符。例子:例子:creat(“d1/d2/f1”, mode)假定分配假定分配i_number=15, (f1,15)d2中中(?, -1)fd=open(pathname,mode)pathname: 路径名;路径名;mode: 打开方式;打开方式;fd: 文件描述符文件描述符(u_ofile表的入口表的入口)1. 查目录找查目录找inode(移入内存移入内存i_count=1, 如已在内存如已在内存i_count+);2. 权限检查权限检查(mode打开方式打开方式, i_mode共享说明共享说明, i_uid, i_gid文件文件 主(组)
24、主(组), u_uid, u_gid用户身份用户身份);3. 在在file表中分配一个表项,指向该内存表中分配一个表项,指向该内存i_node; 初始化初始化 f_count=1; f_offset=0; f_flag=mode;4. 在在u_ofile中取一空闲表目,指向中取一空闲表目,指向file表中对应表目表中对应表目;5. 返回文件描述符返回文件描述符fd(在在u_ofile表中的入口表中的入口)。close(fd)fd: 文件描述符;文件描述符;1. 由由fd查查u_ofile找到对应入口;找到对应入口;2. 由由u_ofilefd找到找到file表对应入口;表对应入口;3. f_c
25、ount-, 如为如为0, 由由f_inode找到对应找到对应inode;4. i_count-, 如为如为0,i_flag标志有修改,写回外存标志有修改,写回外存inode区;区;5. u_ofilefd=-1(空闲标志空闲标志)。seek(fd, whence, offset)fd: 文件描述符;文件描述符;whence: 相对位置相对位置(0,1,2,3,4,5)=(头,当前位置,尾头,当前位置,尾)offset: 移动量;移动量;1. 由由u_ofilefd找到找到file表入口;表入口;2. 由由f_inode找到内存找到内存inode;3. 检查参数合法性检查参数合法性(i_siz
26、e0, i_size1, f_offset, offset, whence);4. 按参数要求调整按参数要求调整f_offset指针。指针。nrd=read(fd,buf,count)fd: 文件描述符;文件描述符;buf: 进程空间接收区地址;进程空间接收区地址;count: 读字节数;读字节数;1. 由由u_ofilefd,找到,找到file表对应入口;表对应入口;2. 检查访问权限检查访问权限(f_flag, READ);3. 由由f_inode找到内存找到内存inode入口;入口;4. 由由f_offset, count和和i_addr计算访问磁盘块号计算访问磁盘块号(可能多个块可能多
27、个块) (bmap函数函数);5. 启动启动IO设备读取盘块到系统缓冲区中设备读取盘块到系统缓冲区中(如如buffer无无,切换进程切换进程);6. 缓冲区信息复制到进程空间缓冲区信息复制到进程空间(iomove);7. 返回实际传输字节数返回实际传输字节数nrd。nwt=write(fd,buf,count)fd: 文件描述符;文件描述符;buf:进程空间发送地址;进程空间发送地址;count: 写字节数;写字节数;1. 由由u_ofilefd,找到,找到file表对应入口;表对应入口;2. 检查访问权限检查访问权限(f_flag, WRITE);3. 由由f_inode找到内存找到内存in
28、ode入口;入口;4. 由由f_offset, count和和i_addr计算磁盘地址块号计算磁盘地址块号(可能分盘块);可能分盘块);5. 申请系统缓冲区,将申请系统缓冲区,将buf起始起始count数据送到缓冲区数据送到缓冲区(可多次可多次);6. 缓冲区链到设备缓冲区链到设备IO链上链上, 如设备空闲启动设备;如设备空闲启动设备;7. 修改修改inode中文件长度中文件长度i_size;8. 返回实际传输字节数返回实际传输字节数nwt。pipe(fd)int fd2;1. 分配一个分配一个inode,(i_count=2);2. 分配分配2个个file表目表目(f_flag分别为分别为P
29、ipeR和和PipeW,读,读/写指针写指针 offset为为0)3. 分配分配2个个u_ofile表目表目, 分别指向分别指向2个个file表目;表目;4. 返回返回2个文件描述符个文件描述符fd0,fd1, 分别为分别为u_ofile中的中的2个入口。个入口。pipe文件的使用文件的使用读读(read):读指针追上写指针,读者等待;:读指针追上写指针,读者等待;写写(write):写指针追上读指针,写者等待;:写指针追上读指针,写者等待;关闭:无读者,信号通知写者;无写者,唤醒等待读者;关闭:无读者,信号通知写者;无写者,唤醒等待读者;link(oldpathname, newpathna
30、me)oldpathname: 已存在文件名;已存在文件名;newpathname: 待连接文件名;待连接文件名;1. 查目录找到查目录找到oldpathname(inode);2. 查目录找到查目录找到newpathname的末级目录;的末级目录;3. 检查操作合法性;检查操作合法性;4. Inode的的i_nlink+;5. (name, i_number)newpathname的末级目录。的末级目录。例子:例子:link(“d1/d2/f1”,“d1/d3/f2”)d1,d2,f1: 存在;存在;d1,d3: 存在,存在,f2: 不存在,不存在,unlink(pathname)pathn
31、ame: 文件路径名;文件路径名;1. 查目录找到查目录找到pathname(inode);2. i_nlink-; 如结果为如结果为0, 释放所有磁盘块释放所有磁盘块 (删除文件删除文件);3. 清除末级文件名在末级目录中的登记。清除末级文件名在末级目录中的登记。例子:例子:unlink(“d1/d2/f1”) 假定:假定:f1文件号文件号i_number=15; 操作后:操作后:f1的的i_nlink-, d2中原中原(f1, 15)改为改为(f1, -1)mknode(pathname, type and permissions, dev)pathname: 节点名;节点名;type a
32、nd permissions: 节点类型和访问权限;节点类型和访问权限;dev: 主次设备号;主次设备号;1. 如非特权用户,失败;如非特权用户,失败;2. 建立一个建立一个i_node, 初始化初始化(i_addr0=dev);3. 填写目录项。填写目录项。struct mount int m_dev; struct buf *m_bufp; /超级块超级块 struct inode *m_inodep;mountNMOUNT;#define NMOUNT 5devrootrk05Makenode创建usrLid01安装安装: smount(“/dev/rk05”, “/usr/Li/d01
33、”, 0)卸下卸下: sumount(“/dev/rk01”)i_flag =| FMOUNTbit: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Set uidSet gid大文件大文件00普通普通01字符字符10目录目录11块型块型i_mode: i_flag:ILOCKIUPDIACCIMOUNTIWANTITEXT执行该文件进程的身份执行该文件进程的身份暂时改为文件主的身份暂时改为文件主的身份即即: u_uid = i_uid文件主权限文件主权限同组用户权限同组用户权限其他用户权限其他用户权限smount(special_pathname, direct
34、ory_pathname, roflag)special_pathname: 特殊文件名特殊文件名directory_pathname: 目录文件名(安装节点)目录文件名(安装节点)roflag: 只读标志只读标志1. 检查是否超级用户;检查是否超级用户;2. 找到找到special_pathname文件的文件的inode(用用mknode建立建立);3. 合法性检查(特殊块型文件);合法性检查(特殊块型文件);4. 找到找到directory_pathname节点的节点的inode;5. 如非目录或引用数大于,错返;如非目录或引用数大于,错返;6. 读入读入super block到到buf,
35、按,按filesys格式解释格式解释.7. 安装节点安装节点inode的的i_addr0=设备文件设备文件i_addr0; (dev)8. 分配一个分配一个mount表项,填写(表项,填写(m_dev,m_bufp,m_inodep),),9 安装节点安装节点inode的的i_flag =| IMOUNT.例子:例子:smount(“/dev/disk1”,“/usr/d1”,0)安装之前:安装之前: disk1只能作为特殊文件只能作为特殊文件(块序列文件块序列文件)访问访问(raw IO);安装之后:安装之后: d1成为成为disk1文件卷的根目录。文件卷的根目录。 disk1的的super
36、 block读入内存缓冲区中,按读入内存缓冲区中,按filesys格式解格式解释,根目录释,根目录inode读入内存读入内存inode区中;区中; 内存中内存中inode区是所有安装文件卷共用的,因而在内存区是所有安装文件卷共用的,因而在内存inode中有中有i_dev指明指明inode对应的卷,用于回写。对应的卷,用于回写。sumount(special_file_name)special_file_name: 待卸下卷的特殊文件名;待卸下卷的特殊文件名;1. 查目录找到查目录找到inode,取,取dev(i_addr0);2. 释放特殊文件的释放特殊文件的inode;3. 由由dev查查m
37、ount表表(m_dev)找到对应找到对应super block;4. 系统缓冲区延迟写块写回;系统缓冲区延迟写块写回;5. 该卷所有更新该卷所有更新i_node写回;写回;6. super block写回;写回;7. 释放释放super block所占用的缓冲区;所占用的缓冲区;8. 由由m_inodep找到安装节点的找到安装节点的inode;9. 安装节点安装节点i_flag =& IMOUNT;10. 释放释放mount表项。表项。chdir(pathname)pathname: 目录路径名;目录路径名;查目录找到查目录找到pathname的的inode; (不在内存读入不在内存
38、读入,i_count=1;已在内存;已在内存i_count+);2. 检查权限;检查权限;3. u_cdir当前所指当前所指inode的的i_count-, 如为如为0且修改过且修改过,写回外存写回外存;4. 新新inode入口入口u_cdirchown(pathname,owner, group)pathname: 文件路径名文件路径名owner: 新文件主新文件主group: 新文件组新文件组1. 查目录找到文件查目录找到文件(inode);2. 权限检查权限检查(文件主文件主,特权用户特权用户);3. 更新更新owner和和group(i_uid, i_gid);4. inode写回。写
39、回。chmode(pathname, newmode)pathname: 路径名;路径名;newmode: 新权限说明;新权限说明;1. 查目录找到文件查目录找到文件(inode);2. 权限检查权限检查(文件主文件主,特权用户特权用户);3. 更新更新i_mode(=newmode);4. inode回写。回写。state(pathname, statbuffer)pathname: 文件路径名;文件路径名;statbuffer: 状态缓冲区;状态缓冲区;1. 查目录找到内存查目录找到内存inode;2. inode信息信息(所有者、大小、权限、属性、链接数、所有者、大小、权限、属性、链接数
40、、 inode号、访问时间等号、访问时间等)statbuffer;fstate(fd, statbuffer)1. 由由u_ofilefd找到找到file表;表;2. 由由file表找到表找到i_node;3. i_node信息信息statbuffer;7.9日志结构文件系统日志结构文件系统n背景背景nCPU速度越来越快速度越来越快n内存容量以接近指数级速度增长内存容量以接近指数级速度增长n磁盘容量磁盘容量, 更大更便宜更大更便宜n磁盘速度的提高却相对较慢磁盘速度的提高却相对较慢 n成为系统效率的瓶颈成为系统效率的瓶颈 7.9日志结构文件系统日志结构文件系统n在在UNIX系统中创建一个文件系统
41、中创建一个文件 (1)(1)文件名写入目录中;文件名写入目录中; (2)(2)新文件新文件inodeinode更新;更新; (3)(3)目录文件目录文件inodeinode更新;更新; (4)(4)写入文件内容写入文件内容. .n小量写小量写(small write)n一次写修改磁盘块上的一小部分数据一次写修改磁盘块上的一小部分数据n假定一次写需要假定一次写需要10ms寻道时间寻道时间, 4ms旋转延迟旋转延迟, 50s读写,读写,磁盘访问效率磁盘访问效率1%.n延迟写延迟写n发生故障给一致性带来威胁发生故障给一致性带来威胁Log Structured File Systemn日志结构文件系统
42、日志结构文件系统nUC Berkeley的研究人员提出的研究人员提出 n一种全新的文件系统一种全新的文件系统日志结构文件系统日志结构文件系统nLSFS将整个磁盘看做一个日志,周期性将整个磁盘看做一个日志,周期性地追加新日志。写操作并非直接反映到地追加新日志。写操作并非直接反映到磁盘上,而是被暂时存到内存缓冲区中,磁盘上,而是被暂时存到内存缓冲区中,其中包括新写的数据,也包括更新数据。其中包括新写的数据,也包括更新数据。当积累到一定规模时,作为一个当积累到一定规模时,作为一个segment追加到日志的末尾。追加到日志的末尾。LSFS结构结构图图segment1 segmentk new segm
43、ent segment结构结构 summary Inodes, directories, data blocks 日志结构文件系统日志结构文件系统nInode map:nInode存储位置不能由其编号确定,系统维持一个存储位置不能由其编号确定,系统维持一个Inode map,以实现,以实现i-number到磁盘到磁盘inode的映的映射。射。n清洁线程清洁线程(cleaner)n循环扫描磁盘并对循环扫描磁盘并对segment进行压缩。进行压缩。Cleaner 首先读入第一个首先读入第一个segment,舍弃过时内容,仍有用,舍弃过时内容,仍有用的的inode和数据块与内存当前和数据块与内存当前
44、segment合并作为新合并作为新的的segment写回磁盘,旧写回磁盘,旧segment被标记为空闲,被标记为空闲,然后顺序处理下个然后顺序处理下个segment.7.10 内存映射文件内存映射文件n背景背景n文件保存于外存,存取速度慢文件保存于外存,存取速度慢n访问之前需要打开访问之前需要打开n每次访问需要经过每次访问需要经过“打开文件表打开文件表”n读写需要经过读写需要经过I/O传输传输n缓冲可以提高速度,但首次访问需要缓冲可以提高速度,但首次访问需要I/On内存容量增加,利用率不充分内存容量增加,利用率不充分n进程虚拟空间大,只使用较小的一部分进程虚拟空间大,只使用较小的一部分n提示:将文件映射到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东深圳市第十一幼儿园招聘1人笔试备考题库及答案解析
- 2026广西防城港市从“五方面人员”中选拔乡镇领导班子成员23人笔试参考题库及答案解析
- 湖北省南漳县2026年初三月考卷(七)英语试题试卷含解析
- 安徽省肥东县重点中学2026届初三冲刺模拟(4)英语试题含解析
- 2026届山西省大同市平城区重点达标名校初三英语试题3月诊断性测试一模试题含解析
- 2026年浙江省杭州大江东各校初三月考试卷(四)英语试题含解析
- 2026年湖北省孝感市云梦县初三3月“二诊”模拟考试英语试题含解析
- 天津市东丽区2026届中考终极猜想:语文试题最后一卷名师猜题含解析
- 企业宣传资料与广告设计标准
- 项目质量规范管理承诺书范文6篇
- 部编版道德与法治一年级下册第15课《戴上红领巾》精美课件
- 化肥公司市场部管理制度
- 《光伏电站项目全过程管理手册》(第二分册:勘察、设计)
- 2025-2030中国AG玻璃市场供需形势与未来经营效益分析研究报告
- 考研调剂协议班合同模板
- 化妆底妆培训课件
- 植保飞防相关知识课件
- 建筑业知识产权普法课件
- 2025-2030中国浮吊行业市场发展趋势与前景展望战略分析研究报告
- 佳能EOS1500D使用说明书说明书
- 综合商业广场物业服务质量标准及措施
评论
0/150
提交评论