您的位置:首页 > 其它

现代操作系统——文件系统

2015-10-28 15:15 281 查看
一个文件系统具备三个基本要素:能够储存大量信息、使用信息的进程终止时,信息依然纯在、能够让多个进程并发存取有关信息,一个文件结构可以有多种形式:字节序列(Windows和Unix系统),记录序列,树。文件类型中的普通类型有ASCII文件和二进制文件。

1.文件系统的实现

文件系统的布局:文件系统放在磁盘上,多数磁盘划分为一个或者多个分区,每个分区中有一个独立的文件系统。磁盘的0号扇区称为主引导记录(MBR),在MBR的结尾是分区表,记录每个分区的起始和结束地址。在计算机被引导时,BIOS读入并执行MBR,MBR做的第一件事就是确定活动分区,读入第一块,称为引导块,执行。除了引导块,还有超级块和空闲块,后面是i结点,然后是根目录,最后是其他文件和目录。
文件的实现:1.连续分配,2.链表分配3.在内存中采用表的链表分配4,i节点
1.连续分配:每个文件作为一连串连续的数据块储存,由于每个文件都是从新的开始,所以这样会浪费一些空间。这样会造成磁盘浪费,磁盘零碎等现象
2.链表分配:为每个文件构造一个磁盘块链表,每个块的第一个字作为指向下一个块的指针,其他部分存放数据。
3.在内存中采用表的链表分配:取出每个磁盘块的指针,放入一个内存表中。这个表称为文件分配表(FAT)。

4.i节点:i节点是一种数据结构包含文件属性和文件块的地址。这样做就可以只有对应文件打开时,i节点才会在内存里面。
日志结构文件系统(LFS):先把所有的写操作最初都缓存在内存中,然后周期性的把所有已缓存的写作为一个单独的段,在日志的末尾处写入磁盘,要打开文件,先在i节点图中找到I节点,一旦定位后就可以找到相应的块地址,所有的块都放在段中,最后设置一个清理线程,周期性的磁盘压缩。

2.文件系统管理和优化

磁盘空间管理:分配连续空间或者分成多个连续的块,块大小的选择:分块小利用率高但时间长,现在一般是64kb的大小块。
记录空闲块:位图和磁盘块链表
文件系统的一致性:很多文件系统在读取磁盘块,进行修改后,再写回磁盘中,系统出现了崩溃,则文件系统可能处于不一致状态。所以Unix(fsck)和Windows(scandisk)都有在重启系统的时候检查文件系统是否一致,分别检查块的一致性和文件的一致性。
文件系统性能的提升:高速缓存,块提前读,减少磁盘臂运动。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: