一、初始文件管理
操作系统应该向上层提供哪些功能?
总结:
二、文件的逻辑结构
无结构文件:
有结构文件:
顺序文件:
日志文件:记录对各个文件修改的信息。
索引文件:
索引顺序文件:
按学生的姓氏把学生记录进行了一个分组,然后每个分组对应一个索引顺序文件的索引项,每个索引项记录了分组的名字还有分组存放的位置,从这个地方可以看到,索引顺序文件的索引项并不需要按照关键字的顺序来进行排列,那这样的可以更方便对新表项的插入操作的,也就是说索引顺序文件的索引表其实是定长记录的串结构的顺序文件,另外分组就是一个顺序文件。
总结:
三、文件目录
总结:
四、文件的物理结构
连续分配:
紫色的块离得比较远,所以移动磁头所需要的时间比较长。
链接分配:
这里随机访问其实是指查找只需要在FAT中找,而FAT常驻内存,,查找很快。
查FAT表不需要读磁盘操作。FAT在内存中,磁盘上可以进行随机访问。
索引分配:
问题解决方式:
多层索引存在的小小问题:假如一个文件本来很小,它的数据块只有1kb,但是这个文件在物理上如果采用的是两层索引的结构的话,那么读入这个文件1kb的内容依然需要一次读磁盘、两次读磁盘、三次读磁盘操作,那么可以用什么方式解决这个问题呢?然后提出了混合索引。
五、文件存储空间管理
空闲表法:
最佳适应就是找到一个满足要求并且最小的空闲区域,最坏适应就是找到一个能够满足需求并且最大的连续的空闲区间进行分配。
磁盘块进行回收:
假如15、16、17使用完进行回收,它的前后都是空闲区。空闲盘块表变成如下表:
空闲链表法:
空闲盘曲区:连续的空闲盘块会组成空闲盘区。
位示图法:
成组链接法:
超级快已经是读入内存的,不需要读磁盘操作。
下一组的链接信息依然保存在超级块当中的。
超级块相当于一个链头的作用,指向下一组分组的信息。
总结:
六、文件的基本操作
创建文件:
删除文件:
打开文件:
关闭文件:
读文件:
写文件:
总结:
打开文件时并不会把文件数据直接读入内存,而是把文件的目录项给复制到了内存的打开文件表当中。
七、文件共享
基于索引节点的共享方式:
基于符号链的共享方式:
软链接其实就是创建了link连接。
采用软链接的方式,删除一个文件会不会对链接造成影响呢?失效了。
总结:
八、文件保护
口令保护:
加密保护:
访问控制:
Windows的访问控制:
总结:
口令保护的口令是存在系统当中的,然后系统会验证口令是否正确,如果正确,才允许用户访问这个文件。
而加密保护其实这个密码不需要保存在系统当中,只有用户自己知道,那另一个用户想要访问加密的文件的话,那他需要使用相同的密码才可以对文件进行正确的解密。所以加密保护的安全性比口令保护的安全性高,但是他所带来的加密解密的开销需要花费一定的时间。
九、文件系统的层次结构
文件信息缓冲区:文件逻辑结构——索引文件,如果采用的是索引文件这种逻辑结构的话,会为文件当中的各个记录建立一个索引表,为了查询到这些记录对应的逻辑地址,就需要查询那个索引表,而在查询文件的索引表之前,就需要把索引表调入到内存的文件信息缓冲区当中。
找到记录对应的逻辑地址之后,接下来就需要把逻辑地址转换为实际的物理地址,如果此时是把文件里添加或者删除一些记录的话,添加的话显然就需要给文件新分配一些物理块或者是删除一些记录的话就需要回收一些文件本来占用的物理块。
所有这些操作都是操作外存上的一些数据,所以最后是需要设备管理模块来负责和设备直接进行交互。
用户接口其实就是文件基本操作的内容,文件基本目录系统其实是在文件目录介绍的一系列内容,而存取控制模块是在文件保护介绍的内容。而逻辑文件系统和文件信息缓冲区,这个层次需要做的事情是在文件逻辑结构介绍的内容。物理文件系统是在文件的物理结构介绍的内容。辅助分配模块是在文件的存储空间管理那个小节所介绍的内容,而设备管理模块需要做的事情是在之后磁盘管理小节介绍的内容。
总结:
总结
本大节学习了文件管理的相关知识。