操作系统复习——文件系统接口

  1. 内存不够,虚存空间在哪里?
  2. 外存(磁盘)如何能让系统在线存储和访问?
  3. 外存上的数据如何组织、保护和共享?

文件——记录——数据项

文件(抽象概念):具有文件名的一组相关信息的集合
数据项:组成文件的最小单位数据项是最低级的数据组织形式,可分为基本数据项和组合数据项。基本数据项是用于描述一个对象某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,即原子数据,又称为数据元素或字段。组合数据项则由若干个基本数据项构成。
记录:记录是一组相关数据项的集合,用于描述一个对象某方面的属性。

文件逻辑结构

定义:从用户观点出发,所观察道德文件组织形式、使用户可以直接处理的数据和结构,独立于物理特性。(谁决定:操作系统或者程序
①无结构(流式文件):字或字节的序列,对文件内信息不再划分单位,它是依次的一串字符流构成的文件。
②简单记录结构:行、固定长度、可变长度
③复杂结构 :是用户把文件内的信息按逻辑上独立的含义划分信息单位,每个单位称为一个逻辑记录(简称记录)

  1. 格式化文档
  2. 可重定位加载文件
顺序文件

定义:文件的排列、存取按顺序进行
(定长记录文件(初始时头记录长度)、变长记录文件)
缺点:增删不方便、只能顺序查找
适用场合:对文件批量存取,顺序介质

索引文件

定义:为变长记录文件建立一张索引表(或多级索引),用户通过关键字访问
优势:①查找的速率高;②扩展性好,增删方便
适用场合:对信息处理及时性要求高的场合
劣势:①索引表,额外开销;②两次访问(先访问索引表)

索引顺序文件

定义:顺序文件记录,并建立索引表,索引表项为各组的第一记录指针
优缺点:(索引文件和顺序文件的折中)

选取文件逻辑结构四个目标

查找速度快
修改文件时,对其它存储好的文件影响小
对文件管理结构(索引表)占空间少
方便用户使用

文件属性

名称,标识符(唯一标记文件系统的文件,通常是数字),类型(支持不同类型文件的系统所需要的信息),位置,大小,保护(访问权限),时间、日期和用户标识,扩展文件属性在这里插入图片描述
这个可以自己操作一下,右键排序方式,选择更多

文件操作

对记录的操作:增删改查
对文件本身的操作

创建文件
删除文件
读文件
写文件
截断文件(truncate):把文件分成两个文件
设置文件的读/写位置
设置文件访问权限(设置密码,加密)
修改文件属性
压缩文件
移动文件位置
打开/关闭文件

文件类型

按用途份:系统、用户、库文件(提供给使用者一些开箱即用的变量、函数或类)
按照存取控制属性:只读文件、读写文件、只执行文件(.exe,.shell,.com,.php)
按照文件逻辑结构:有结构文件(上述的顺序文件、索引文件、顺序索引文件都是由结构文件)(ppt属于有结构文件)、无结构文件(流式文件)
按文件物理结构:顺序、链接、索引文件
按文件中数据形式:源文件(.java,.py,.cpp)、目标文件(obj)、可执行文件
按照使用期限来分:临时文件、永久文件、档案文件(存储起来长时间不使用)
unix文件分类:普通文件(r)、目录文件(d)(管理文件的系统文件)、特殊文件(s)(设备文件:字符设备文件、块设备文件)

文件系统

定义:用于操纵和管理各类文件,方便用户使用文件的软件集合
选取宋虹老师ppt

访问方法

顺序访问:文件信息按内存(如一条一条记录)进行处理

Read_next():读取文件的下一部分
Write_next()
reset(重置到begin位置)

(前两个先找到current position)

直接访问:允许程序按任意顺序进行读取和写入

Read(n):读取文件的第n条文件
Write(n)
Position_file(n)

使用场景:
顺序访问:顺序文件
直接访问:索引文件、索引顺序文件(先顺序,后索引)

磁盘上的文件可以采用的访问方法?
顺序访问和直接访问都可以

目录结构

  1. 定义:用于有效管理和组织文件的结构
  2. 方法:借助文件目录,可以讲每个文件的符号名与其所在存储空间地址联系起来
  3. 对目录管理的要求
    实现“按名存取”;
    有较高的目录检索速度:合理组织文件目录
    允许文件重名
    提供文件共享功能
  4. 目录结构和文件都驻留在外存(如磁盘)上
设备目录需要提供什么信息?

名称、类型、地址、当前长度、最后访问时间、最后更新时间、创建者、保护信息……

对目录的操作?

创建、删除、重命名、查找、列表内容、遍历文件系统、复制、移动、排序、修改……

常见目录结构

单集目录结构

整个系统之间里一张目录表,为每个文件分配一个目录项
优点:
(1)结构简单,用线性表就可以记录,
(2)占用空间小
缺点:
(1)查找速度慢:N个目录,平均查找N/2个目录项
(2)不允许重名
(3)不能实现文件共享

两级目录结构

系统建立一张主文件目录MFD,为每个用户建立用户文件目录UFD,每个用户文件目录在MFD中分配一个目录项
优点:
(1)提高了查找速度
(2)不同用户文件允许重名

树形目录

在两级目录的基础上,允许用户创建自己的子目录并组织其文件
路径名:从根目录到文件之间的通路
当前目录
相对路径:从当前目录到文件之间的路径
绝对路径:从根目录到文件之间的路径
目录的增加和删除
增加:无重名mkdir
删除:不删除非空目录/可删除非空目录

无环图目录结构

目录结构中有共享的子目录和文件
优点:
可共享:链接方式实现、复制文件信息
更灵活
遍历图相对简单
其他需要考虑的问题:
多个绝对路径名?——别名问题
删除——悬挂指针问题

通用目录结构(General Graph Directory)

允许系统中存在环
如何保证无环结构?
仅可link到文件,不能link到目录
增加新链接时,测i用检测算法
缺点:
查找是对环要进行必要处理
删除:garbage collection

比较常见的是树形结构

文件共享

多个用户共享同一份文件,系统只保存文件的一个副本

共享方法:
  1. 绕弯路法
    实现:系统设置当前目录指针,用户对当前目录下的文件直接访问,当需要访问其它目录下文件是,通过指定完成
  2. 连访法:
    实现:建立目录间的链接,使目录项直接指向另一个目录项;在文件说明中增设“连访”属性标识物理地址是文件或目录项的指针;增设“用户计数”标识共享文件的用户数。
  3. 基本文件目录
    实现:将源文件目录分为基本文件目录BFD和符号文件目录SFD。
    (1)BFD:每个文件/目录有一个目录项,文件标识数、其他信息
    (2)SFD:每个用户一个,目录项只是其文件名和文件标识数
  4. 基于索引节点的共享方式
    实现:设置索引节点*,存储文件的物理结构、链接记数及其他文件属性;文件目录只包括文件名和该文件对应索引节点的指针
    优点:任何对索引节点内容的修改对其他共享用户都是透明的
  5. 利用符号链接(symbolic Linking)实现文件共享
    实现:设B为了共享C的文件F,在B中创建一个Link类型的新文件,新文件目录中只包含被链接文件F的路径名,称这种链接方法为符号链接
    说明:只有文件主任的目录中有文件索引节点的指针,其它用户目录中只有路径名

文件保护:防止合法用户由于误操作而破坏文件

影响文件系统安全性的主要因素

①人为因素
②系统因素:系统部分软件、介质故障
③自然因素:存在磁盘中的数据,随时间变化发生溢出或消失

文件保护功能
  1. 防止未核准用户(非法用户)存取文件——文件保密
  2. 防止用户冒充另一个用户存取文件
  3. 防止核准用户(合法用户)误用文件

保护机制

  1. 存取控制机制
  2. 容错机制
  3. 后备系统

存取控制机制

保护域:进程可访问的对象
访问权:一个进程对某对象可执行操作的权限,表示为有序对(对象名,权集)
域:一组对象访问权的集合

进程和域的联系方式
  1. 静态联系:进程可用资源集是固定的
  2. 动态联系:进程可用资源集是可变的( 域转换机制 )

须知(Read to Know)原则:只允许进程去访问那些它必须去访问的对象

访问矩阵(Access Matrix)

定义:描述域及所属对象的矩阵(lampson)

  1. 访问矩阵中对象访问权由资源拥有者或管理者确定
  2. 通过设置域间切换开关实现进程与域的动态联系

实例:
拷贝权应用——将具有拷贝权的对象访问权拷贝到其它域中,使其它域中进程对同一对象具有相同访问权

  1. 转移拷贝权:原有进程失去访问权限;
  2. 限制拷贝:两者皆有访问权限,但后者不具有拷贝权限

访问矩阵为稀疏矩阵,可以采用:
访问控制表Access Control List——按列划分,(域,权集)表示——对象——记录在文件属性(FCB)
权能表Access Capability List——按行划分,(对象,权集)表示——进程——记录在进程控制块(PCB)

文件拥有者对文件进行保护

访问模式:读(R)、写(W)、执行(X)
用户分类:文件拥有者owner、和文件同属一族的用户group、其他用户other
构成九位权限位
比如

给定一个761,用九位表示111 110 001
表示对于文件拥有者owner来说,可读可写可执行
对于文件同属一族的用户group,可读可写不可执行
对于其他用户来说,只可执行

chmod:更改文件权限
chmod是一个计算机函数,功能是改变文件的读写许可设置,如果改变成功返回0,否则返回-1,函数原型是int chmod( const char *filename, int pmode)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值