操作系统(四)

一、文件管理

文件的概念

文件是以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。

在用户进行的输入、输出中,是以文件为基本单位

文件的属性

文件名:创建时由用户决定起什么名,同一目录下不允许有重名文件。
标识符:一个系统内的各文件标识符是唯一的。
类型:表明文件的类型(有、无结构文件)。
位置:文件存放的路径(相对路径和绝对路径)。
大小:文件的大小。
创建时间、修改的时间、保护信息(文件是否能修改)等等。

文件基本操作

文件属于抽象数据类型,操作系统提供系统调用,对文件进行创建、写、读、定位和截断
创建文件:两个步骤,一、在文件系统中找到空间。二、在目录中创建新条目,记录文件名称、文件位置以及其他信息
写文件:指明文件名称和写入的内容。根据文件名称在文件目录中搜索。系统维护一个写指针,每当发生写操作都会更新写指针
读文件:指明文件名称和要读文件块的位置。根据文件名称在文件目录中搜索。系统维护一个读指针,每当发生读操作都会更新读指针。
文件寻址:按条件搜索目录
删除文件:先从目录中找到删除文件的目录项,使之成为空项,回收文件所占用的存储空间
截断文件:保持文件属性不变,删除文件内容

二、 逻辑结构和物理结构

逻辑结构

逻辑结构:用户的角度去看文件内部的数据如何组织起来的。
在这里插入图片描述

无结构文件(流式文件)
无结构文件是最简单的文件组织形式。无结构文件将数据按顺序组织成记录并积累保存,他是有序相关信息项的集合,以字节为单位。

有结构文件(记录式文件)

顺序文件
文件中的记录一个接一个地顺序排列,记录通常是定长的,可以顺序存储或以链表形式存储。

​ 1. 串结构
​ 记录之间的顺序与关键字无关,通常按照存入时间的先后排列。

​ 2. 顺序结构
​ 指文件中的所有记录按关键字顺序排列。

索引文件
建立一张索引表,每个记录对应一个表项。

索引顺序文件
索引顺序文件是顺序和索引两种组织形式的结合。索引顺序文件将顺序文件中的所有记录分为若干组,为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项。

直接文件或散列文件
给定记录的键值或通过Hash函数转换的键值直接决定记录的物理地址。
在这里插入图片描述

物理结构(文件分配方式)

**物理结构:**从操作系统的角度去理解文件如何存储在外存(磁盘)上。
在这里插入图片描述
文件分配方式的比较
在这里插入图片描述

三、文件目录和目录文件

概念

文件目录,又称文件控制块(FCB),存储的是文件的管理信息,控制对象是单个文件;

FCB是一种用于存放控制文件需要的各种信息的数据结构,包括三部分:
1.基本信息 (文件名、物理地址、逻辑结构)
2.存取控制信息 (文件权限相关)
3.使用信息 (文件建立、修改信息)

目录文件,存储的是若干个文件目录,控制对象是整个文件系统;

目录结构

目前广泛采用的树形目录结构,优点是:允许文件重命名,实现了文件分类。
在这里插入图片描述

四、文件共享

硬链接
就是在目录下创建一个目录项,记录着文件名与 inode 编号,这个 inode 就是源文件的 inode。删除任意一个目录项,文件还是存在,只要引用数量不为 0。但是硬链接有限制,它不能跨越文件系统,也不能对目录进行链接。
符号链接【软链接】
文件保存着源文件所在的绝对路径,在读取时会定位到源文件上,可以理解为 Windows 的快捷方式。当源文件被删除了,链接文件就打不开了。因为记录的是路径,所以可以为目录建立符号链接。

五、磁盘

文件管理空闲磁盘块的几种算法

是操作系统如何管理外存空闲块,空闲磁盘块的管理
在这里插入图片描述

常见的磁盘调度算法

(1)先来先服务算法:根据进程请求访问磁盘的先后顺序进行调度.
(2)最短寻找时间算法:选择与当前磁头所在磁道距离最近的磁道。会产生饥饿现象。
(3)扫描算法:在磁头当前移动方向上选择与当前磁头距离最近的磁道。
(4)循环扫描算法:在扫描算法的基础上规定磁头单向移动来提供服务,到达端点时直接快速返回起始段。

在这里插入图片描述

磁盘管理

  1. 磁盘初始化:划分扇区,建立文件系统;
  2. 引导块:自举程序初始化;
  3. 坏块管理:标记管理坏块。

六、文件系统层次结构

在这里插入图片描述

七、Linux文件系统是怎么样的?

Linux文件系统里面有文件和目录,组成一个树状的结构,树的每一个叶子节点表示文件或者空目录。每个文件基本上都由两部分组成:

inode:一个文件占用一个 inode,记录文件的属性,同时记录此文件的内容所在的 block 编号;
block:记录文件的内容,文件太大时,会占用多个 block。

除此之外还包括:

superblock:记录文件系统的整体信息,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
block bitmap:记录 block 是否被使用的位图。

当要读取一个文件的内容时,先在 inode 中查找文件内容所在的所有 block,然后把所有 block 的内容读出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值