【我的笔记】文件系统(三)文件操作、文件缓存/共享/保护/恢复

(一)文件操作

VFS 在读写操作之外提供了文件打开和关闭操作。

1、打开操作(open)——负责文件路径名解析和权限检查

打开操作创建file结构,一个 file 结构描述一个进程对一个文件或一种 I/O 操作方式,成为打开文件对象。ucore 的 file 结构:

ucore 为每个进程准备了一个 file 结构数组,称为文件描述符表:

idleproc 进程的 files_struct 是单独建立的,其余进程是从父进程复制的。

文件打开操作 open 。(具体过程见 ppt)

获得文件描述符后可对其进程行I/O 操作。在所有的文件I/O操作中,用文集爱你描述符代替文件名,避免路径名的重复解析。读写操作后会自动调整读写头的位置。

2、关闭操作(close)——释放打开文件对象

具体过程见 ppt。

3、文件读操作(read)

具体过程见 ppt。

4、文件写操作(write)

具体过程见 ppt。

文件读写两种方式:①直接读写(read、write);②间接读写(mmap 类系统调用--> 将文件映射到进程,读写时缺页,将工作交给虚拟内存管理)

5、

6、Linux 的 open、close、read、write、seek (具体见 ppt)

关闭操作不会删除文件,不能再用描述符使用,还在系统中还可以再次打开。问阿金一旦被删除,就永远从系统消失了。write 返回的是真正写入的字节数,可能少于 count 参数。seek 将文件fd的读写头重定位到参数 offset 处。


(二)文件缓存/共享

1、文件缓存

暂存文件内容的内存称为文件缓存。

建立缓存的方法——链表、Hash 表、基数树(类似于多级页表)

2、文件共享

共享 --> 一个文件能被多个用户或进程使用 -->可以实现进程间通信。

文件属主(owner)——文件拥有者;文件组(group)——一组用户,可共享该文件;其他用户(others)——既不是属主也不是同组用户

文件的共享权限:

多个用户同时存取一个共享文件 --> 保持文件的一致性(完整性) --> 与进程的同步密切相关

3、文件保护

保护 -->文件存取控制,限制用户对文件的存取操作。

对文件的操作通常包括:读、写、执行、执行、追加、删除、列表、拷贝、换名等。

(1)直接保护方法

为每个文件或者目录定义一个存取控制表ACL(Access Control List),规定各用户可执行的操作。

浓缩 ACL——把用户分为三类(文件属主、同组用户、其他用户),值规定每类用户的存取权限。将文件的存取权限浓缩为三种(读、写、执行)。

若觉得9位太粗,可以加 ACL,Linux 对两种均支持。--> 位图 + ACL

Windows --> DACL(自主存取控制表)

(2)其他保护方法

4、文件恢复

保证文件系统可靠性 --> eg:RAID、备份与恢复

备份方法:全量备份、增量备份 --> 异地备份、灾难恢复

由于缓存,文件系统的数据同时存在于内存和外存,需要保证一致性 --> 事务和日志。

(1)事务:完成一个特定任务所需的一组操作称为一个事务

为保证文件系统的一致性,事务应具有原子性。 --> 需在外存增加一个日志

(2)日志:记录各种事务

EXT4上增加了日志,EXT3还没有。

日志与事务能够保证系统的一致性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • word直接复制来了,格式就不改了。至于这门课怎么复习,只要平时实验都认真完成、报告认真写,平时分都很高;考试的话...
    Jozhn阅读 4,654评论 0 8
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,243评论 2 33
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,783评论 0 10
  • 需要原文的可以留下邮箱我给你发,这里的文章少了很多图,懒得网上粘啦 1数据库基础 1.1数据库定义 1)数据库(D...
    极简纯粹_阅读 7,558评论 0 46
  • 我们在奋斗什么? 这是一篇日记,记录的是和几个同龄人的聊天内容,这是一次关于生活和工作的聊天,是对我们认为的今后人...
    小杨_Simon阅读 322评论 1 1