现代操作系统 第4章 文件系统

4.1 文件

1.扩展名:UNIX中是一种约定,Windows则是可以在操作系统中注册;

2.文件结构:1.文件看成字节序列;2.记录序列;3.树;

3.文件类型:普通文件、目录文件、字符特殊文件、块特殊文件;

普通文件:ASCII文件和二进制文件;

4.文件操作:open:把文件属性和磁盘地址装进内存;

4.2 目录

1.绝对路径和相对路径:从根目录到文件的路径组成、从当前目录开始;

2.软链接:产生新文件,新建iNode和datablock,datablock的内容是源文件的路径和文件名;

3.硬链接:与普通文件一样,都是指向磁盘上同样位置,inode相同;

原文件删除,iNode还在,软链接找不到了;

由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:

  • 文件有相同的 inode 及 data block;
  • 只能对已存在的文件进行创建;
  • 不能交叉文件系统进行硬链接的创建;
  • 不能对目录进行创建,只可对文件创建;
  • 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

  

软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。因此软链接的创建与使用没有类似硬链接的诸多限制:

  • 软链接有自己的文件属性及权限等;
  • 可对不存在的文件或目录创建软链接;
  • 软链接可交叉文件系统;
  • 软链接可对文件或目录创建;
  • 创建软链接时,链接计数 i_nlink 不会增加;
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

详解:http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/

3.文件结构:1.文件看成字节序列;2.记录序列;3.树;

4.3 文件系统的实现

1.磁盘的0号扇区:主引导记录(MBR),MBR结尾是分区表。

引导时,BIOS读入并执行MBR,确定活动分区,读取活动分区的第一个块,称引导块,引导块,装载操作系统;

2.实现

1.连续分配:实现简单、读操作性能好;产生磁盘碎片

2.链表分配:每个块的第一个字指向下一块的指针;

随机读取速度慢;

3.内存采用表的链表分配:FAT(文件分配表),每个磁盘的指针字放在内存里,加速随机存储;

4.i节点:对应文件打开时,i节点才存储到内存中;占用内存空间小;

3.目录实现:文件属性存放在i节点(UNIX),存放在目录里(Windows)

4.日子结构文件系统LFS:i节点分散存储到整个磁盘中,需要维护;写操作缓冲到内存中,每隔一段时间放到一个独立的段,写到日志末尾;

5.日志文件系统:NTFS和ext:保持记录文件系统下一步要做什么;

4.4 文件系统优化

1.块大小

大块:空间利用率低;

小块:多次寻道和旋转,速度慢;

猜你喜欢

转载自blog.csdn.net/shhchen/article/details/88555332