吉林大学操作系统课件第七章文件系统概要

上传人:今*** 文档编号:107226402 上传时间:2019-10-18 格式:PPT 页数:88 大小:540.50KB
返回 下载 相关 举报
吉林大学操作系统课件第七章文件系统概要_第1页
第1页 / 共88页
吉林大学操作系统课件第七章文件系统概要_第2页
第2页 / 共88页
吉林大学操作系统课件第七章文件系统概要_第3页
第3页 / 共88页
吉林大学操作系统课件第七章文件系统概要_第4页
第4页 / 共88页
吉林大学操作系统课件第七章文件系统概要_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《吉林大学操作系统课件第七章文件系统概要》由会员分享,可在线阅读,更多相关《吉林大学操作系统课件第七章文件系统概要(88页珍藏版)》请在金锄头文库上搜索。

1、第七章 文件系统,7.1 文件与文件系统 文件 具有符号名而且在逻辑上具有完整意义的信息项的序列。 文件系统 文件与管理文件的程序集合。,UNIX文件分类,普通文件 内容可以是程序、数据、图象等,保存在磁盘块中 目录文件 (文件名,文件号)序列,保存在磁盘块中 特殊文件 设备 设备作为文件管理的好处 界面统一,使用文件与使用设备命令相同,申请设备open, 释放close, 读read, 写write 利用文件保护功能可以保护设备,7.2 文件的访问方式,顺序访问 从文件起始位置开始顺序访问 从文件中间某处开始顺序访问 随机访问 按记录编号随机访问 按关键字(key)随机访问,7.3 文件的组

2、织,逻辑组织 用户看到的文件组织形式 记录式文件:记录的序列 等长记录(优点:处理方便,速度快;缺点:空间浪费) 不等长记录(优点:省空间;缺点:处理不便,速度慢) 流式文件:字节的序列(UNIX, Windows, etc) 物理组织 逻辑组织到磁盘块的映射 文件:记录(字节)序列 磁盘:块(block)序列,变换关系,7.3.2 文件的物理组织,考虑因素 记录格式 等长或不等长, 流式不必考虑 空间开销 除保存文件内容之外的存储开销 访问速度 随机访问速度 长度变化 动态增长,顺序结构: 一个文件占有若干连续的磁盘块。 优点:速度快,节省空间 缺点:长度变化困难,链接结构: 一文件可存于不

3、连续块中,块间以指针相连。 优点:节省空间,长度变化容易。 缺点:随机访问速度慢。,索引结构: 一文件可存于不连续块中,块号记在索引块中。 优点:速度快,长度变化容易。 缺点:索引块占空间。,磁盘空间, 索引块=29 块数=4 .,FCB,索引块29,Hash结构: 计算地址: hash(key)=addr (在磁盘或文件中的存放位置) 问题:给定key1key2 hash(key1)=addr1; hash(key2)=addr2; addr1=addr2 (conflict) Conflict resolution: 顺序探查法: 如发生冲突,则在冲突位置开始顺序探查第一个空闲的存储位置。

4、,.,.,文件空间,Hash(key)=addr,起始位置,计算addr=hash(key),对应冲突记数加1,本记录空闲,顺取下一个,标记为占用 填记录内容,保存记录:,T,F,记录内容,查找记录:,计算addr=hash(key),取addr对应记录的冲突记数count,count=0,无此记录,本记录空闲,顺取下一记录,key相等,找到,hash(key)相等,count:=count-1,count=0,无此记录,顺取下一记录,T,F,F,T,T,F,T,F,T,F,删除记录:,调用查找过程(key),找到,错误返回,置空闲标志 (找到记录) 冲突记数-1 对应hash(key),特点

5、: 按关键字检索速度非常快。 用途: 常用于目录检索。 注意: 文件可循环使用,满时保存失败。,F,T,UNIX文件物理结构(索引+链接), i_addr0 . i_addr9 i_addr10 i_addr11 i_addr12 .,inode,.,.,.,.,.,.,.,最大=10+256+2562+2563(块),7.4 文件目录,文件控制块与目录项 文件控制块(FCB) 文件存在的标志,其中保存系统管理文件需要的全部信息 目录项 目录文件中的一项,内容为FCB 文件目录与目录文件 文件目录 用于检索文件的目录 目录文件 内容为目录项的文件,文件控制块FCB(File Control B

6、lock),文件名 文件号 文件主 文件类型 文件属性 共享说明 文件长度 文件地址 建立日期 最后修改日期 最后访问日期 口令 其它,FCB创建:建立文件时 FCB撤消:删除文件时,单级目录(Single-Level Directory),A single directory for all users.,缺点: 1. Naming problem Grouping problem Protection problem,两级目录(Two-Level Directory),Separate directory for each user.,特点: 1. Path name 2. Can hav

7、e the same file name for different user 3. Efficient searching 4. No grouping capability,root,bin,usr,lib,dev,etc,unix,lp,cc,vi,users,Li,Wang,d1,d2,f1,console,passwd,bin,yacc,s,f2,多级目录(Multi-Level Directory as in UNIX),clib,flib,文件目录的查找,查找路径 由根目录开始查找 由当前目录开始查找 查找算法 顺序查找(UNIX) hash查找 对分查找(要求文件名排序),文件

8、目录的改进,FCB 次部:(文件名, 文件号) (UNIX 16 bytes) 保存在目录文件中 主部:(其它, 链接记数) (UNIX 32 bytes) 保存在外存inode区域, 打开时读入内存. 改进的好处 可以提高查找速度(顺序查找) 可以实现文件链接(link),UNIX文件卷(volume)组织形式:,7.5 文件的共享,共享目的 节省存储空间 (cc,vi,yacc) 进程相互通讯 UNIX pipe() 文件共享模式 不同时使用 根据共享说明 同时使用 根据共享说明和(relaxed)R/W规则,文件的共享,文件共享的实现 公共目录 共享说明 连接,d1,link(“/usr

9、/users/wang/d1/f1”, “/usr/users/li/f2”) unlink(“/usr/users/wang/d1/f1”),usr,root,7.6 文件的保护、保密与安全,保护 防止用户对文件进行非授权的访问 保密 防止文件内容泄露 安全 防止文件被破坏 自然因素 人为因素,7.6.1文件的保护(Protection),File owner/creator should be able to control: what can be done by whom Types of access Read Write Execute Append Delete List,1.

10、存取控制矩阵,aij:,特点: 权限规定细,过于繁琐,占较多存储空间,2. 访问权限说 明(UNIX)i_mode,文件主判别:访问进程u_uid=i_uid 同组用户判别:访问进程u_gid=i_gid i_mode在创建文件时给出,creat(filename, mode) 其后文件主可以修改:chmod(filename, new_mode),7.6.2 文件保密,口令 使用 创建文件时用户规定一个口令,系统将其记在FCB中 访问文件要求给出口令,并与FCB中口令比较 特点 简单 保密性不强(eg. 对系统操作员不保密) 密码 特点 对文件内容加密,速度慢,效果好 使用 保存时加密(ke

11、y) 读取时解密(key),保存时: 用一个key启动一个随机数发生器,产生一个随机数序列,将其依此加到文件的各个字中。 读取时: 用同一个key启动同一个随机数发生器,产生相同随机数序列,将其依次由文件的各个字中减去。,线性同余法产生伪随机数: Procedure random(Var key:integer); Begin key:=(key*C1+C2)MOD C3 End;,7.6.3 文件系统的安全,Backup 定期将磁盘上文件复制到磁带上 发生故障时由磁带恢复(limited recovery) 实现方法 海量转储 定期将磁盘上文件全部复制到磁带上 增量转储 每次只复制修改部分

12、磁盘整理 利用转储和恢复可以对磁盘进行整理(使文件物理块连续,空闲盘块连续),7.7 文件系统的实现,7.7.1 内存所需表目 系统打开文件表(系统一个),7.7 文件系统的实现,7.7.1 内存所需表目 用户打开文件表(每个进程一个),文件描述符,7.7 文件系统的实现,FCB主部 文件号 共享计数 修改标志,系统打开文件表,2,文件描述符,文件描述符,用户打开文件表,15,外存空间的管理,空闲块表 空闲块链 字位映像图 UNIX:成组连接,空闲块管理(成组连接): 100个空闲块为一组,组之间相互链接,最前面的组缓冲到内存。,.,.,.,.,特点:速度快,空间省。,空闲块管理: 申请时:

13、(1) s_nfree1, 取s_free-s_nfree; (2) s_nfree=1, 将s_free0所指连接块读入内存,分配s_free0. 释放时: (1) s_nfree100, s_frees_nfree+=释放块号; (2) s_nfree=100, 将s_nfree和s_free拷贝到释放块中, 将该块号记录到s_free0, 写回外存, s_nfree=1,7.8 文件系统的界面,创建文件 命令形式:creat(path_name, fcb_args) 参数说明 Path_name: 文件路径名 Fcb_args: FCB参数 执行步骤: (1) 为此文件分配一个FCB主部

14、,初始化 (2) 将文件名和文件号作为FCB次部填到末级目录中 (3) 以写方式打开 例如: creat(“/usr/li/d1/f1”, mode),7.8 文件系统的界面,打开文件 命令形式: fd=open(path_name, mode) 参数说明 path_name: 文件路径名; mode: 打开方式. 执行步骤 (1) 根据文件路径名查目录找到FCB主部; (2) 合法性检查(根据打开方式、共享说明、用户身份); (3) 根据文件号查系统打开文件表看该文件是否已被打开, 如是共享计数加1; 否则取一个空闲的系统打开文件表项并将外存中 FCB主部等信息填入此表项, 共享计数置为1;

15、 (4) 在用户打开文件表中取一空表项, 填写打开方式和读写指针, 并指向系统打开文件表的对应表项. 返回信息: fd: 文件描述符(在用户打开文件表中的入口), 它是一个非负整数.,7.8 文件系统的界面,关闭文件 命令形式: close(fd) 参数说明 fd: 文件描述符. 执行步骤: (1) 由fd查用户打开文件表, 找到系统打开文件表入口; (2) 系统打开文件表中共享计数减1, 如减1后的值为0且修改标志为1, 则将此FCB 由内存写回外存FCB主部; (3) 将fd所对应的用户打开文件表项置为空闲.,7.8 文件系统的界面,指针定位 命令形式: seek(fd,offset) 参

16、数说明: fd: 文件描述符; offset: 新的指针位置. 执行步骤: (1) 由fd查用户打开文件表, 找到对应的入口; (2) 检查参数合法性; (3) 将用户打开文件表中文件读写指针位置设定为offset, 后继读写命令由该指针处存取文件内容.,7.8 文件系统的界面,读文件 命令形式: read(fd,nrd,buf) 参数说明: fd: 文件描述符; nrd: 读入记录个数; buf: 内存起始位置. 步骤: (1) 由fd查用户打开文件表, 找到对应的入口; (2) 合法性检查(用户打开文件表中所记录的打开方式、存取方式); (3) 查系统打开文件表, 找到文件的地址; (4) 计算欲访问起始记录的位置(offset, 物理结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号