04文件目录

  • 4.1文件如何存放
    • 4.1.1文件如何放
    • 4.1.2存储空间的划分与初始化
  • 4.2空闲块如何管理
    • 4.2.1存储空间管理方法:
      • 1.空闲表法
      • 2.空闲链表法:
      • 3.位示图法:
      • 4.成组链接法:
    • 4.2.2 寻道算法

4.1文件如何存放

文件分配表即可用于文件存放又可用于空闲块管理

4.1.1文件如何放

1.连续分配

要求每个文件在磁盘上占有一组连续的块。

优点:
文件目录中记录存放的物理起始块号和长度,可完成由逻辑地址到物理地址的转换。

缺点:
文件扩展很不方便。
会产生难以利用的磁盘碎片。可以采用紧凑来处理碎片,但是需要耗费很到的时间代价。
链接分配:

2.隐式链接

文件目录中记录存放的物理起始块号和结束块号,除文件的最后一个磁盘块外,每个磁盘块中都会保存指向下一个磁盘块的指针,这些指针对用户是透明的。

缺点:
读入i号逻辑块,需要进行i+1次I/O操作
只支持顺序访问,不支持随机访问

优点:
很方便文件扩展,不会有碎片问题,外存利用率高。

3.显示链接

把用于链接文件各个物理块的指针显式地存放在一张表中,即文件分配表(FAT)。文件目录中只需记录文件的起始块号。一个磁盘设置一张FAT。开机时,将FAT读入内存,并常驻内存。

优点:
支持顺序访问,也支持随机访问
逻辑块号转换成物理块号的过程不需要读磁盘操作。
不会产生磁盘碎片

缺点:
文件分配表需要占用一定的存储空间

4.索引分配

索引分配允许文件离散地分配在各个磁盘块中,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块。

支持随机访问
文件扩展也很容易实现

缺点:索引表会占用一定的存储空间
如果一个文件的索引表太大,一个磁盘块即索引块装不下,有以下集中解决方案:

链接方案:将多个索引块链接起来存放。文件目录中只需要记录第一个索引块号。因此,如果想要访问最后一个逻辑块,就必须找到最后一个索引块,必须先访问前面所有的索引块,查找效率低下。
多层索引
混合索引:多种索引分配方式的结合。例如,一个文件的顶级索引表中,既包含直接地址索引,即直接指向数据块,又包含一级间接索引(指向单层索引表),还包含两级简洁索引(指向两层索引表)。

4.1.2存储空间的划分与初始化

物理格式化:
对磁盘进行分区,确定磁盘扇区校验码所占的位数

逻辑格式化:
建立文件系统的根目录
对保存空闲磁盘块信息的数据结构进行初始化

4.2空闲块如何管理

4.2.1存储空间管理方法:

1.空闲表法

空闲表:第一个空闲盘块号+空闲盘块数

分配磁盘块和回收磁盘块和内存管理方法类似。

2.空闲链表法:

空闲盘块链:以盘块为单位组成一条空闲链
操作系统保存着链头和链尾指针。

如何分配:从链头开始分配,并修改链头指针;
如何回收:回收的磁盘块一次挂到链尾,并修改链尾指针。

适用于离散分配。

空闲盘区链:以盘区为单位组成一条空闲链
操作系统保存着链头和链尾指针。

既适用于连续分配,也适用于离散分配。

3.位示图法:

每个二进制位对应一个盘块。例如:0表示盘块空闲,1表示盘块已分配。

连续分配、离散分配都适用。

4.成组链接法:

空闲表和空闲链表不适用于大型文件系统,因为空闲表或者空闲链表可能过大。UNIX系统中采用了成组链接法对磁盘空闲块进行管理。

文件卷的目录区中专门用一个磁盘块作为“超级块”,当系统启动时需要将超级块读入内存。并且要保持内存与外存中的“超级块”数据一致。

4.2.2 寻道算法

先来先服务算法(FCFS):
根据进程请求访问磁盘的先后顺序进行调度

最短寻找时间优先(SSTF)

优先处理的磁道是离当前磁头最近的磁道。可以保证每次的寻道时间最短,但是并不能保证总的寻道时间最短。贪心算法的思想。
性能较好,平均寻道时间短
可能产生“饥饿”现象

扫描算法(SCAN)
解决SSTF的问题,规定:只有磁头移动到最外侧磁道的时候才能往内移动,移动到最内侧磁道的时候才能往外侧移动。也称为电梯算法。
性能较好,不会产生饥饿现象

操作系统--04文件管理相关推荐

  1. python文件管理包_Python标准库04 文件管理 (部分os包,shutil包)

    Python标准库04 文件管理 (部分os包,shutil包) 在操作系统下,用户可以通过操作系统的命令来管理文件,参考.Python 标准库则允许我们从 Python 内部管理文件.相同的目的,我 ...

  2. 操作系统之文件管理-翟一鸣-专题视频课程

    操作系统之文件管理-79人已学习 课程介绍         本课程主要介绍文件系统概述,文件的组织结构及存取方法,文件存储空间的管理,文件的目录管理,文件的安全与保护以及Linux中的文件系统. 课程 ...

  3. 2007cad多个文件窗口上部排列_【中考信息技术总复习讲义】模块三 操作系统与文件管理...

    模块三 操作系统与文件管理 学习目标 1.了解操作系统的概念.功能和分类,了解操作系统的发展. 2.熟练掌握Windows桌面.窗口.菜单.对话框的组成及常用操作. 3.掌握创建桌面快捷方式的方法和控 ...

  4. 操作系统之文件管理:7、文件的系统层次

    7.文件的系统层次 思维导图 思维导图 1.用户接口:见操作系统之文件管理:6.文件的基本操作 2.文件目录系统:见操作系统之文件管理:3.文件目录 3.存取控制模块:见操作系统之文件管理:7.文件共 ...

  5. 操作系统之文件管理:1、初识文件管理

    1.初识文件管理 思维导图 文件的定义 关于文件系统我们要讨论的几个问题? 1.文件属性 2.文件内部的数据组织形式(存储结构) 3.文件之间的组织形式 4.操作系统向上层提供的接口(功能) 5.文件 ...

  6. 【操作系统】文件管理(三)—— 文件的目录结构

    [操作系统]文件管理(三)-- 文件的目录结构 一.文件控制块(FCB) 二.索引结点(FCB的改进) 三.目录结构 1. 单级目录结构 2. 两级目录结构 3. 多级目录结构(树形目录结构) 4. ...

  7. 【操作系统】文件管理(四)—— 文件的保护和共享

    [操作系统]文件管理(四)-- 文件的保护和共享 一.文件保护 1. 口令保护 2. 加密保护 3. 访问控制 4. 文件保护的总结 二.文件共享 1. 基于索引结点的共享方式(硬链接) 2. 基于符 ...

  8. 【Educoder作业】操作系统之文件管理(二) ※

    [Educoder作业]操作系统之文件管理(二) ※ Sorry~拖更这么久,都快到ddl了才发.英语真是太难了 这次主要是几个ososos库里函数的运用,给我搞得有点小晕. 介绍几个概念:绝对路径和 ...

  9. 【操作系统】文件管理(七)—— 文件系统的层次结构与基本操作

    [操作系统]文件管理(七)-- 文件系统的层次结构与基本操作 一.文件系统的层次结构 二.文件的基本操作 1. 创建文件 2. 删除文件 3. 打开文件 4. 读文件 5. 写文件 三.文件基本操作总 ...

最新文章

  1. 使用OpenCV和Imutils构建图像的蒙太奇效果
  2. ssm框架mysql配置_ssm框架使用详解配置两个数据源
  3. 数据库索引的作用和长处缺点
  4. 【postgresql】远程连接
  5. python怎么显示分数_在Python中使用分数
  6. java文件损坏_java – 损坏的文件处理
  7. java –cp ./:_成为Java流专家–第2部分:中级操作
  8. CSS3景深-perspective
  9. NOIP模拟题——LGTB与序列
  10. ENVI监督分类及精度评价
  11. JavaScript经纬度和地图坐标相互转换
  12. 原来清理手机内存,使用管家是不够的!还需删除这4个文件夹
  13. 以WGR614v9与WG602v4为例,说明WDS功能的配置过程
  14. java blowfish ecb,来自blowfish / base64的解密消息时出错
  15. java如何爬取qq音乐_爬取QQ音乐
  16. Win10(7~10)备份还原系统
  17. Excel 如何根据单元格选中一行?
  18. 什么是5G LAN 5G LAN商用爆发推动5G创新应用 提速数字转型新引擎
  19. DxO Analyzer的基本操作
  20. 本地资源检测,特效检测中Overdraw相关问题

热门文章

  1. python nextpow2_Python signal.hann方法代码示例
  2. CSS属性前的 -webkit, -moz
  3. AAAI2018-Long Text Generation via Adversarial Training with Leaked Information论文笔记
  4. Java小技巧输出26个英文字母,不用一个一个手打
  5. 阿里云SLB配置HTPPS方式访问
  6. canvas教程6-绘制圆弧
  7. CSS 3D动态立体图形
  8. android基础的博客,【复习】Android基础
  9. ASCII码值与字符的转换
  10. centos 时间自动同步_centos 设置时间同步