现代操作系统第四章文件系统PPT_第1页
现代操作系统第四章文件系统PPT_第2页
现代操作系统第四章文件系统PPT_第3页
现代操作系统第四章文件系统PPT_第4页
现代操作系统第四章文件系统PPT_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第四章 文件系统n文件n目录n文件系统的实现n文件系统管理和优化n文件系统实例2长期信息保存的要求n能够保存大量数据能够保存大量数据n在使用信息的进程终止后,信息仍然存在在使用信息的进程终止后,信息仍然存在n能够允许多个进程并发访问相关信息能够允许多个进程并发访问相关信息满足上述三个要求,按单元将信息存储到磁盘和其他外部媒介的一般方法就是文件(files)。然后,进程可以读些它们。保存在文件中的信息必须是持久性的,也就是说,不受进程创建和终止的影响。文件只应该在其所有者显式地删除它时才消失。3三个抽象概念n进程进程就是一个正在执行的程序n进程地址空间地址空间:一个进程可用于寻址内存的一套地址

2、集合。n文件文件是进程创建的信息逻辑单元。4长期信息保存n文件由操作系统操作系统管理。n文件的存取、使用、保护以及实现都是操作系统的主要设计问题。n整体上而言,处理文件的操作系统部份称为文件系统(file system):FAT/NTFS/CDFS/UFS/VMFSn从用户的立场来看,文件系统最重要的方面是文件的出现方式出现方式,即文件的组成、文件的命名和保护、文件的操作等等。5文件n文件命名n文件结构n文件类型n文件存取n文件属性n文件操作6文件命名(File Naming)n文件是一种抽象机制抽象机制。n它们提供一种方法将信息存储存储在磁盘上,稍后再读读出来。n对用户来说,文件的实现必须隐

3、藏隐藏信息的保存方式和位置以及磁盘的实际工作。(对用户半透明)n文件的具体命名规则具体命名规则在各个系统中是不不同同的,不过全部操作系统都允许用1至8个字母组成的字符串作为合法文件名。 7文件命名(File Naming)n典型的文件扩展名压缩文件file.zip 一般文本文件file.txt TEX格式程序的输入file.tex PostScript文件file.ps 可移植文档格式文件file.pdf 目标文件(编译程序的输出,尚未链接)file.objMPEG标准编码的电影file.mpg MPEG layer 3编码的音频压缩格式file.mp3 JPEG标准编码的静态图片file.j

4、pg WWW超文本链接标示语言文档file.html 帮助文件file.hlp 可交换的图像文件格式file.gif C语言源程序file.c 备份文件file.bak 含义含义扩展名扩展名8文件结构(File Structure)n文件结构有多种形式。通常的三种三种:n字节序列n记录序列n树n对于无结构的字节序列无结构的字节序列,操作系统不知道也不关心文件中是什么。它所看到的全部都是字节。任何意义都必须由用户级程序指定。UNIX和Windows都使用该方式。n记录序列把文件看作定长的记录序列定长的记录序列n树:用于商业商业数据处理 9n三种类型的文件 n(a) 字节序列 n(b) 记录序列

5、n(c) 树 文件结构(File Structure)10文件类型(File Types)n一种分类:n普通文件普通文件:包含用户信息的文件nASCII文件:可显示和打印n二进制文件:有一定的内部结构,如可执行文件等。n目录目录:系统文件,用于维护文件系统的结构。nUNIX的一种分类n字符特殊文件:与I/O相关的,用于建模诸如终端、打印机和网络等的串行I/O设备。n块特殊文件:用于磁盘建模。11n(a) 可执行文件 n(b) 存档文件文件类型(File Types)12n魔数魔数:很多类型的文件,其起始的几个字节的内容是固定的(或是有意填充,或是本就如此)。因此这几个字节的内容也被称为魔数 (

6、magic number),因为根根据这几个字节的内容就可以确定文件类型据这几个字节的内容就可以确定文件类型。nUnix 命令 file 就是利用这个原理工作的。nBSS:是“Block Started by Symbol”的缩写,意为“以符号开始的块”。nBSS是Unix链接器产生的未初始化数据段未初始化数据段。其他的段分别是包含程序代码的“text”段和包含已初始化数据的“data”段。BSS段的变量变量只有名称和大小却没有值没有值。n比如,在C语言之类的程序编译完成之后,已初始化的全局变量保存在.data 段中,未初始化的或初始化为0全局变量保存在.bss 段中。文件类型(File Ty

7、pes)13文件存取(File Access)n早期操作系统只有一种文件存取方式:顺序存取(sequential access)。进程在这些系统中可从开始处顺序读文件全部字节或记录,但不能跳过某一些内容也不能非顺序读取。n当磁盘被用来存储文件后,可以非顺序地读取磁盘存储文件中的字节或记录,或按照关键字而不是位置来存取记录。n这种能够以任何次序读取其中字节或记录的文件称作随机存取文件(random access file)。14n顺序存取顺序存取n从起点读取所有字节/记录n不能跳过,可以倒带或者倒退n对于磁带媒介比较方便n随机存取随机存取n以任意次序读取字节/记录n是数据库系统的根本所在n可以下

8、列方式读取文件:n移动文件标记(seek),然后读取n读取,然后移动文件标记文件存取(File Access)15n可能的文件属性 该文件可能增长的最大字节数最大尺寸文件的字节数当前大小 最后改变该文件的日期时间最后修改时间 最后访问该文件的日期时间最后访问时间文件创建的日期时间创建时间关键字域的字节数关键字长度关键字在每个记录中的偏移关键字位置一个记录的字节数记录长度0表示未上锁;非0表示已锁定锁定标志0表示正常;1表示进程退出时删除文件临时标志0表示只能顺序存取;1表示随机存取随机存取标志0表示ASCII文件;1表示二进制文件ASCII/二进制标志0表示已经备份;1表示需要备份存档标志0表

9、示一般文件;1表示系统文件系统标志0表示正常;1表示不显示在列表中隐藏标志0表示读/写;1表示只读只读标志当前所有者所有者创建该文件的人的ID创建者访问文件需要密码密码哪些人可以哪些方式访问文件保护含义含义属性属性文件属性(File Attributes)16n创建(Create)n删除(Delete)n打开(Open)n关闭(Close)n读(Read)n写(Write)n添加(Append) n定位(Seek)n获 取 属 性 ( G e t attributes) n设 置 属 性 ( S e t Attributes) n重命名 (Rename)文件操作(File Operations

10、)17/*文件赋值程序。错误监测和报告已经尽可能地省略了。*/#include /*包含必要的头文件*/#include #include #include int main(int argc, char *argv); /*ANSI 原型*/#define BUF_SIZE 4096 /*使用的缓冲区大小为4096字节*/#define OUTPUT_MODE 0700 /*输出文件的保护位*/int main(int argc, char *argv)int in_fd, out_fd, rd_count, wt_count; char bufferBUF _SIZE; if (argc

11、!= 3) exit(1); /*如果argc不是3,则语法错误*/ 使用文件系统调用的示例复制文件的简单程序(1/2) 18/*打开输入文件,并创建输出文件*/ in_fd = open(argv1, O_RDONLY); /*打开源文件*/ if (in_fd 0) exit(2); /*如果不能打开,则退出*/ out_fd = creat(argv2, OUTPUT_MODE); /*创建目标文件*/ if (out_fd 0) exit(3); /*如果不能创建,则退出*/ /*复制循环*/ while (TRUE) rd_count = read(in_fd, buffer, BU

12、F_SIZE); /*读入一个数据块*/if (rd_count = 0) break; /*如果文件结束或者错误,退出循环*/wt_count = write(out _fd, buffer, rd_count); /*写数据*/if (wt_count = 0) exit(4); /*wt_count 计数器n实际链接数计数器73文件系统性能n缓存n提前读块(Block Read Ahead)策略n减少磁盘臂移动(Reducing Disk Arm Motion)74文件系统性能n对磁盘的存取比对内存的存取要慢。n读一个内存字可能花10纳秒。从硬盘读可能以10 MB/sec进行,每32位的

13、字要慢40倍,不过,还必须加上5-10毫秒的寻道时间,并且等待扇区旋转到磁头下。n如果只需要一个字,内存存取要比磁盘存取快上100万倍。n由于存取时间的这种区别,许多文件系统设计了各种优化方法来改进性能。 75缓存n用于减少磁盘访问的最通常的技术就是块缓存(block cache)或者缓冲区缓存(buffer cache)。nCache的发音为“Cash”,源自于法语的cacher,意即隐藏。n在这里的上下文中,Cache是块的一个集合,逻辑上属于磁盘,不过由于性能的原因保存在内存中。76缓存n高速缓存的管理:对于读操作,检查要读的块是否在高速缓存中,如果在,直接进行读操作不需访问磁盘;如果不

14、在则首先将该块从磁盘读入缓存,再拷贝给用户。77缓存n缓存中的块置换:如果缓存已满,要调入新块,则必须把某一块调出缓存。分页系统中的页面置换算法也适用于缓存。n缓存的组织:为提高查找速度,建立一个哈希表,根据(设备号+磁盘地址)为哈希值索引,具有相同哈希值的块链接在一起。如下图78缓存(Caching)n缓冲区cache的数据结构79提前读块(Block Read Ahead)n第二种改进文件系统性能的技术就是试图在其需要前将块读入Cache中,以提高命中率。特别的,许多文件是顺序读取的。n当请求文件系统在文件中产生块k时,它完成该请求,不过,当它完成时,它顺便检查Cache看块k + 1是否

15、在那里。n如果不在,它设定读取块k + 1,这样当需要它时,它已经在Cache中了。至少它将在途中了。 80减少磁盘臂移动n另一种增强文件系统性能的方法是通过把可能被顺序访问的块相互临近地放置,尽可能放在相同的柱面上,这样就可以减少磁盘臂的移动。n当写入输出文件时,文件系统必须每次定位一块。n如果空闲块记录在位映像中,而且整个位映像在主存中,那么就很容易选择一个与前一块尽可能接近的空闲块。n如果使用空闲链表,其部份是在磁盘上,要定位接近的块就比较困难了。81文件系统实例nCD-ROM文件系统nISO 9660文件系统nRock Ridge扩展nJoliet扩展nMS-DOS文件系统 nUNIX

16、 V7文件系统82ISO 9660文件系统n最经常被采用的CD-ROM文件系统的标准是1988年发布的国际标准ISO 9660。n事实上,目前市场上的每个CD-ROM都兼容该标准,某些可能具有下面将提到的扩展。n该标准的目标之一就是所有CD-ROM可以在每台计算机上读出来,与其使用的字节次序以及操作系统无关。n因此,在该文件系统上加入了某些限制,使得可以在最弱的操作系统上(例如MS-DOS)使用。83ISO 9660文件系统nISO 9660文件系统的目录项84Rock Ridge扩展n其扩展分为如下几个域: nPXPOSIX属性nPN主设备和次设备号nSL符号链接nNM替代名nCL孩子位置n

17、PL双亲位置nRE重定位nTF时间标签85Joliet扩展nJoliet提供的主要扩充是:n长文件名nUnicode字符集n深达8层的目录嵌套n具有扩展名的目录。86MS-DOS文件系统n第一印象认为,MS-DOS就是一个更大、更好的CP/M。n它只能在Intel平台上运行,不支持多道程序,而且只能以PC的实模式运行(起初是其唯一的模式)。n其外壳有更多特性以及更多的系统调用,但是,其基本的操作系统仍旧是载入程序、操作键盘和屏幕以及管理文件系统。87MS-DOS文件系统nMS-DOS目录项 88MS-DOS文件系统n不同块尺寸的最大分区大小n空格表示禁止的组合。 2 TB2048 MB32 K

18、B2 TB1024 MB16 KB2 TB512 MB8 KB1 TB256 MB16 MB4 KB128 MB8 MB2 KB4 MB1 KB2 MB0.5 KB FAT-32FAT-16FAT-12块尺寸块尺寸89Windows 98文件系统n从Windows 95的第二版开始,允许长于8 + 3字符的文件名。n除此之外,引入了FAT-32,主要是为了允许大于2 GB的磁盘分区以及大于8 GB的磁盘,这样的磁盘随后就出现了。n长文件名和FAT-32都在Windows 98中以相同方式被使用,如同Windows 95第二版一样。n下面,我们将描述Windows 98文件系统的这些特征,这些也同样被Windows Me继承了。90Windows 98文件系统nWindows 98中使用的扩展的MS-DOS目录项91Windows 98文件系统nWindows 98中长文件名(的一部分)的项 92Windows 98文件系统nWindows 98存储长文件名的例子 93UNIX V7文件系统n该文件系统是以根目录为起始的树的形式,加上附加的连接,形成了一个有向无环图。文件名字长达14个字符,可以包含任何除了/以外的ASCII字符以及NUL。NUL的数字值为0。nUNIX目录项包含该目录中每个文件的一个项。由于UNIX使用i-节点,因此每个项都非常简单。n目录项只包含两个域

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论