操作系统整理-第四章-文件管理

一、文件系统基础

1.1 文件的概念

  1. 文件的定义
    文件是以计算机硬盘为载体在计算机上的信息集合。文件有文本文档、图片、程序等形式。计算机以进程为基本单位来调度和分配资源,而用户在输入输出时以文件为基本单位。文件供信息的保存、访问、修改等,也就是维护文件,这就需要提供一个文件管理系统。
    自底向上定义;
    1)数据项,有基本数据项和组合数据项。可命名的最小逻辑单位,即原子数据,如:姓名。这种为基本数据项。而基本数据项的组合就是组合数据项。
    2)记录,是一组相关的数据项集合,如:一个学生的报考信息,考生姓名、准考证号、出生日期等。
    3)文件,创建者所定义的一组相关信息的集合。分为有结构文件,如某校所有考生的信息。第二种为无结构文件,也称流式文件,无结构温江被视为一个字符流,比如二进制文件或者字符文件。
    注:文件可以是数字、字母、二进制代码,基本访问单元可以是字节、行或记录。文件可以长期存储在硬盘或其它二级存储器中,供需要的进程或用户访问。
  1. 文件的属性
    1)名称,文件名称唯一,以容易读取的形式保存。
    2)标识符,标识文件的唯一标签,对人不可读的一种内部名称。
    3)类型,支持不同类型的文件系统使用
    4)位置,指向设备和设备上文件的指针。
    5)大小
    6)保护,对文件进行保护的访问控制信息。
    7)时间、日期和用户标识
  1. 文件的基本操作
    1)创建文件,先为文件找空间,再为文件创建条目,条目中包含了文件名称和位置等信息。
    2)写文件,搜索文件位置,维护一个写指针。
    3)读文件,搜索文件位置,维护一个读指针,读写使用同一指针来节省空间。
    4)文件重定位(文件寻址),按某条件搜索条目。
    5)删除文件,找目录,使之为空项,然后回收该文件所占用的存储空间。
    6)截断文件,允许文件所有属性不变,并删除文件内容,将其长度设为0并释放空间。
    注:这6种是基本操作,其它操作可以通过基本操作的组合。
  1. 文件打开与关闭
    因为许多文件操作都涉及搜索文件目录,所以系统要求在首次打开文件时,使用系统调用open将文件的属性从外存复制到内存的打开文件表的一项目录中,并将这个目录项的编号返回给用户。当文件不再使用时,再将其关闭。open通常返回一个指向打开文件表中的一个条目的指针。
    每个打开文件都有如下关联信息
    1)文件指针,读写的位置。
    2)文件打开次数,要等打开次数减为0才能关闭。
    3)文件磁盘位置,一个文件中的信息可能被很多进程共享,此时每个进程不用都去磁盘里读取。
    4)访问权限,每一个进程对文件都有一个访问模式(创建、只读、读写、添加等)

1.2 文件的逻辑结构

  1. 无结构文件(流式文件)
    有顺序的、索引的、索引顺序文件以及直接文件和散列文件

1.3 文件共享

  1. 基于索引节点的共享方式(硬链接)
    在这里插入图片描述
  1. 利用符号链实现文件共享(软链接)
    另一个要共享该文件的进程创建一个文件,文件里有指向共享文件的链接。

二、文件系统实现

2.1 文件系统层次结构

在这里插入图片描述

2.2 目录实现

1)线性列表
2)哈希表

2.3 文件实现

  1. 文件分配方式
    1)连续分配
    在这里插入图片描述

2)链接分配
在这里插入图片描述

3)索引分配
在这里插入图片描述
在这里插入图片描述

  1. 文件存储空间管理
    1)文件存储空间划分与初始化
    在这里插入图片描述
    2)文件存储器空间管理
    a)空闲表法
    在这里插入图片描述
    b)空闲链表法
    把空闲块拉成一个链表
    c)位图示意法
    在这里插入图片描述

d)成组链接法
在这里插入图片描述

三、磁盘组织与管理

3.1 磁盘的结构

在这里插入图片描述

3.2 磁盘调度算法

一次磁盘的读写操作的时间由寻道时间、延迟时间、传输时间决定。
目前常用的磁盘调度算法有以下几种
1)先来先服务(First Come First Served,FCFS)算法
在这里插入图片描述
2)最短寻找时间优先
在这里插入图片描述
3)扫描(SCAN)算法(电梯调度算法)
在这里插入图片描述
4)循环扫描(Circular SCAN,C-SCAN)算法
在这里插入图片描述

5)LOOK磁盘调度算法

不需要到末尾就可以转向
在这里插入图片描述

6)C-LOOK磁盘调度算法
在这里插入图片描述

3.3 磁盘的管理

  1. 磁盘初始化
    在磁盘能存储数据之前,它必须分成扇区以便磁盘控制器能进行读和写操作,为每个扇区采用特别的数据结构。每个扇区的数据结构通常由头、数据区域和尾部组成。头部和尾部包含了一些磁盘控制器所使用信息。
  2. 引导块
    操作系统通过一个初始化程序–自举程序来将自己装入内存,并设置PC寄存器的指针位置,分别运行该程序和OS内核程序。
    为了避免自举程序的扩展而影响ROM,将自举程序的一部分放入ROM,在运行过程中再将其它部分装入内存。
  3. 坏块
    一些磁盘在物理上永久性的坏掉,而OS并不能完成修理,OS可以用备用块来逻辑替代坏块,或者将坏块链接成一张磁盘坏块链表。该表在出厂前分扇区的时候就已初始化。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值