`
isiqi
  • 浏览: 16077291 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

操作系统总结之文件系统接口

阅读更多

文件在用户看来是再熟悉不过的名字了。因为能够创建文件,把一些数据放在文件中。
文件系统包含了文件和目录。
目录用以组织文件,包含了文件的简要信息。放在外存。
在计算机中有许多不同的介质,而计算机把这些抽象成一个统一的逻辑单元,再映射到物理设备。
文件有很多不同的类型,比如:
1.文本文件:由行组成的文件。
2.二进制文件。
3.源文件。由子程序和函数构成。

一个文件有自己的属性:
1.文件名,identifier,类型,位置,大小,保护,时间。即最近访问时间,最近修改时间,文件创建时间。
这些文件属性都放在目录中。

文件有许多操作,比如创建,删除,重定位,读,写。
创建文件需要找到一个空的空间,在目录中创建一个条目,指向文件。
读:系统调用,控制读指针。
写:系统调用,控制写指针。
重定位:首先声明一点,读和写的指针是共用的,因此只需要把这个指针移动即可。
删除:释放文件空间并在目录中删除条目。

每次执行一个操作都要遍历目录,找到文件,但是这样速度很慢,因为目录在外存。
我们要对一个文件进行操作必须要显式地打开文件。
在操作系统中维护了一个open-file table,记录了打开的文件,以后每次操作,只需要索引这个表即可。
但是对于多进程,可能同时打开一个文件,因此操作系统维护了两级的表:一个进程单独一个表,操作系统维护一个系统表。
单个进程的表条目指向系统表。
对于多进程访问一个文件时,需要在文件表中置一个计数器,等到计数器为0时再删除条目。
当然对于多进程同时访问,可以用锁来解决同步问题。
专用锁:类似写者锁。一个进程访问一个文件,其他进程就不能访问。
共享锁:类似于读者锁。多进程可同时访问。

文件类型:
操作系统预先必须要声明支持哪些文件类型。
Windows通过加扩展名来声明类型。
Unix通过幻数在文件头部加声明类型。
每个文件类型都有自己特有的结构,因此如果操作系统支持文件类型过多,就会出现操作系统过于庞大。
磁盘的最小单元是块,因此一个块中可以放多个逻辑记录。一个文件由多个块组成。但是一个块可能会没放满,所以会出现内部碎片。

访问文件信息的第一步必须将他所在的块读入内存。
接下来就是不同的访问方法。
1.顺序访问
一条一条访问。
2.直接访问
因为文件的一条记录是固定长度的,因此可以利用公式快速计算出所要找的那个记录的位置。
相对块号:相对于文件的块号。即文件的第一个块为0.

对于目录,我们也要利用数据结构,这样就可以快速索引。
一个磁盘可能有多个文件系统。一个卷有相关信息。记录大小,名称等。

对于目录,我们如果要找到文件,必须要通过目录,如果create一个文件,就必须在目录中添加一个条目。
为了更好更快地访问文件,我们对于目录进行一些构造。
1.单层目录。
只能一个用户,并且每个目录的名字必须唯一。
2.双层目录。
第一层是MFD。一个record是一个用户。
一个用户对应一个单层目录。UFD。
缺点:不能多用户共享或多目录共享文件。

对于系统文件,我们需要定义一个特殊的用户目录。他包括所有系统文件,这个目录在其他目录都找不到的情况下会自动遍历。
3.树状目录。
禁止共享文件或目录。
就是树状的目录结构,内部有子目录和文件。通过一位来表示是目录还是文件。
对于删除目录,有两种解决方法:
1.如果这个目录有子目录或文件,则不能删。
2.Unix。删除目录的子目录和文件。

4.无环图目录。
允许共享。
实现共享的方法:
1.链接。一个指针指向一个文件。
2.复制目录条目。像其他目录条目一样。但是要维护一致性。
对于删除,也会出现问题。解决方案:
1.删除链接时,则不变,删除文件条目,则链接无效。
2.删除全部引用才删除。为每个文件建立一个引用计数器或文件引用表,当引用为空,则删除文件。

MS-DOS采用树状目录结构。

5.通用图目录。
可以存在环,会无限遍历。

解决方法:通过记录目录被访问次数来强制终止。

删除文件时,由于存在环而等不到引用计数为0,因此通过垃圾收集解决引用技术问题。

总结:为了避免过大开销,避免链接。

文件系统在使用前必须要mount,安装时要指明安装位置即安装点。然后操作系统要验证文件系统安装的有效性。再是如果mount在一个目录下,原来在这个目录下的子目录的文件就不能使用了。必须要将unmount新的文件系统才行。在pintos中,我一开始把虚拟机和windows的共享数据空间在Desktop,发现原来的Desktop的东西打不开了。。。慌了我半天。。

文件共享的三种实现方式:

1.人工传输。

2.远程登录。

3.浏览器。

对于文件共享,每个文件系统都有不同的语义,现在不只是多用户本地共享,也会有远程文件系统的共享。
对于多用户的文件共享问题,我们需要明确每个用户的文件访问权限。
拥有者需要有最高的权限。
组需要有权限的子集。
拥有者ID和组ID 保存在文件属性中。每次对文件进行操作都要比对。
1.在unix中,对于一个用户进行写操作,其他用户都会看到。
2.AFS中,对于一个用户写操作,以打开的用户不能看到其变化,只有等到写操作的用户关闭后再打开的用户才能看到变化。
3.一个文件只要被共享,就不能被修改。

计算机可能会遇到两个不安全问题:

1.物理损坏问题。通过备份解决。

2.访问。 通过访问控制解决。

对于一个文件,只要允许访问,就必定存在保护的问题,我们需要通过控制访问即控制用户的操作权限。

基本的操作在前面也讲过,比如读,写,执行,删除,添加,列出列表。对于高层的操作,比如复制,就可以用读来写出。让我想到了数据库。关系代数表达式的基本操作~选择,投影,并,笛卡儿积,差,重命名。其他高层的一些操作比如交,除,都可以用基本操作替代。

对于访问控制的最容易想到的解决方法是给每个文件加上一张表,称为访问控制表ACL。列出能够访问的用户名。但是这个方法的直观缺点就是长度问题。

解决方案就是精简访问列表:

1.拥有者:最高等级。

2.组:需要某种类似访问组成的组。

3.其他。

分享到:
评论

相关推荐

    操作系统期末复习知识点总结

    操作系统接口: 用户接口:分为命令接口和程序接口,通过系统调用来实现。 习题:包括操作系统概述和发展史的练习题。 文件系统: 文件系统定义:文件、管理文件软件和数据结构的总体。 文件类型:系统文件、库文件...

    计算机操作系统教程 操作系统期末考试复习题(全)及提纲总结 共19页.pdf

    1.操作系统为用户提供三种类型的使用接口,它们是命令方式和系统调用和图形用户界面。 2.主存储器与外围设备之间的数据传送控制方式有程序直接控制、中断驱动方式、DMA方式和通道控制方式。 3.在响应比最高者优先...

    操作系统知识点总结(原稿).docx

    操作系统的基本功能包括:处理机管理、存储管理、设备管理、信息管理(文件系统管理)和用户接口等。 研究操作系统的几种不同观点 答:(1)作为计算机系统资源的管理者: 处理机管理:分配和控制处理机; 存储器...

    操作系统原理总结.doc

    操作系统概论 计算机系统:可以按照用户的要求接受和存储信息,自动进行数据处理并输出结果信息 的系统。计算机系统包括硬件系统和软件系统。硬件系统是计算机赖以工作的实体;软 件系统则是保障计算机系统按照用户...

    操作系统重要概念复习总结

    本文涵盖了操作系统的基本概念和功能,包括进程控制、存储器管理、输入输出系统、文件管理等。具体概念包括: 操作系统是配置在计算机硬件上的第一层软件,主要作用是管理好这些设备,提高利用率和系统的吞吐量,并...

    深入解析Windows操作系统 中文版 第四版 part 4

    11.5 文件系统接口 11.6 快速I/O 11.7 预读(Read Ahead)和滞后写(Write Behind) 11.8 本章总结 第12章 文件系统 12.1 Windows文件系统格式 12.2 文件系统驱动程序总体结构 12.3 诊断文件系统的问题 12.5 NTFS文件...

    三峡大学2023操作系统期末复习知识点+打印店习题部分总结

    三峡大学2023操作系统期末复习知识点+打印店习题部分总结 图2-1用户和其他系统结构 (GUI,批处理,命令行)用户页面 系统调用 服务 操作系统 硬件 图2-6 2-7 图2-12 系统调用接口之下和物理硬件之上的所有部分为...

    《深入解析Windows操作系统》中文版 第四版 part1

    11.5 文件系统接口 11.6 快速I/O 11.7 预读(Read Ahead)和滞后写(Write Behind) 11.8 本章总结 第12章 文件系统 12.1 Windows文件系统格式 12.2 文件系统驱动程序总体结构 12.3 诊断文件系统的问题 12.5 NTFS文件...

    疯狂内核之——虚拟文件系统

    1 虚拟文件系统概述 5 1.1 通用文件模型 7 1.2 VFS所处理的系统调用 9 2 虚拟文件系统架构 11 2.1 VFS对象数据结构 11 2.1.1 超级块对象 11 2.1.2 索引节点对象 15 2.1.3 文件对象 18 2.1.4 目录项对象 22 2.2 把...

    自己动手写操作系统(含源代码).part2

    在读完本书后,你不但可以获得对于操作系统初步的感性认识,并且对 IBMPC的接口、IA架构之保护模式,以及操作系统整体上的框架都将会有一定程度的了解。 笔者相信,当你读完本书之后,如果再读那些纯理论性的操作...

    深入解析Windows操作系统中文.part2.rar

    11.5 文件系统接口 674 从缓存中来回拷贝数据 676 通过映射和锁定接口进行缓存 677 通过直接内存访问接口进行缓存 678 11.6 快速I/O 679 11.7 预读(Read Ahead)和滞后写(Write Behind) 682 智能预读 682 回写...

    自己动手写操作系统(含源代码).part1

    在读完本书后,你不但可以获得对于操作系统初步的感性认识,并且对 IBMPC的接口、IA架构之保护模式,以及操作系统整体上的框架都将会有一定程度的了解。 笔者相信,当你读完本书之后,如果再读那些纯理论性的操作...

    系统架构师考试知识点总结

    6、操作系统的5项基本功能,包括处理器管理、存储管理、设备管理、文件管理和作业管理。 1.2 操作系统的结构 结构分为无序、层次、面向对象、对称多处理和微内核。 1、无序:又称整体或模块结构。以大型表格和队列为...

    操作系统实习报告.pdf

    适用课程:北京林业大学信息学院操作系统 实习内容:Penix模拟操作系统 & Penix Powershell...实习报告内容:文件系统格式、多线程的实现方法、流程图、相关命令、数据结构、主要函数、系统运行过程、实习分析总结

    深入解析Windows操作系统 中文版 第四版 part 3

    11.5 文件系统接口 11.6 快速I/O 11.7 预读(Read Ahead)和滞后写(Write Behind) 11.8 本章总结 第12章 文件系统 12.1 Windows文件系统格式 12.2 文件系统驱动程序总体结构 12.3 诊断文件系统的问题 12.5 NTFS文件...

    深入解析Windows操作系统 中文版 第四版 part 2

    11.5 文件系统接口 11.6 快速I/O 11.7 预读(Read Ahead)和滞后写(Write Behind) 11.8 本章总结 第12章 文件系统 12.1 Windows文件系统格式 12.2 文件系统驱动程序总体结构 12.3 诊断文件系统的问题 12.5 NTFS文件...

    深入解析Windows操作系统 中文版 第四版 part 5

    11.5 文件系统接口 11.6 快速I/O 11.7 预读(Read Ahead)和滞后写(Write Behind) 11.8 本章总结 第12章 文件系统 12.1 Windows文件系统格式 12.2 文件系统驱动程序总体结构 12.3 诊断文件系统的问题 12.5 NTFS文件...

    操作系统复习提纲.pdf

    操作系统复习提纲 资源概述:操作系统复习提纲,分章节总结,共7章,52页 ...资源内容:操作系统概论、操作系统接口、作业管理、进程管理、存储管理、设备管理、文件管理、磁盘管理 文件密码:请购买后私戳博主

    Python常见读写文件操作实例总结【文本、json、csv、pdf等】

    我们必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以读写文件就是请求操作系统打开一个文件对象(文件描述),然后,通过操作系统提供的接口从这个文件对象中...

    操作系统实验报告

    死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂...

Global site tag (gtag.js) - Google Analytics