操作系统--04文件管理
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文件管理相关推荐
- python文件管理包_Python标准库04 文件管理 (部分os包,shutil包)
Python标准库04 文件管理 (部分os包,shutil包) 在操作系统下,用户可以通过操作系统的命令来管理文件,参考.Python 标准库则允许我们从 Python 内部管理文件.相同的目的,我 ...
- 操作系统之文件管理-翟一鸣-专题视频课程
操作系统之文件管理-79人已学习 课程介绍 本课程主要介绍文件系统概述,文件的组织结构及存取方法,文件存储空间的管理,文件的目录管理,文件的安全与保护以及Linux中的文件系统. 课程 ...
- 2007cad多个文件窗口上部排列_【中考信息技术总复习讲义】模块三 操作系统与文件管理...
模块三 操作系统与文件管理 学习目标 1.了解操作系统的概念.功能和分类,了解操作系统的发展. 2.熟练掌握Windows桌面.窗口.菜单.对话框的组成及常用操作. 3.掌握创建桌面快捷方式的方法和控 ...
- 操作系统之文件管理:7、文件的系统层次
7.文件的系统层次 思维导图 思维导图 1.用户接口:见操作系统之文件管理:6.文件的基本操作 2.文件目录系统:见操作系统之文件管理:3.文件目录 3.存取控制模块:见操作系统之文件管理:7.文件共 ...
- 操作系统之文件管理:1、初识文件管理
1.初识文件管理 思维导图 文件的定义 关于文件系统我们要讨论的几个问题? 1.文件属性 2.文件内部的数据组织形式(存储结构) 3.文件之间的组织形式 4.操作系统向上层提供的接口(功能) 5.文件 ...
- 【操作系统】文件管理(三)—— 文件的目录结构
[操作系统]文件管理(三)-- 文件的目录结构 一.文件控制块(FCB) 二.索引结点(FCB的改进) 三.目录结构 1. 单级目录结构 2. 两级目录结构 3. 多级目录结构(树形目录结构) 4. ...
- 【操作系统】文件管理(四)—— 文件的保护和共享
[操作系统]文件管理(四)-- 文件的保护和共享 一.文件保护 1. 口令保护 2. 加密保护 3. 访问控制 4. 文件保护的总结 二.文件共享 1. 基于索引结点的共享方式(硬链接) 2. 基于符 ...
- 【Educoder作业】操作系统之文件管理(二) ※
[Educoder作业]操作系统之文件管理(二) ※ Sorry~拖更这么久,都快到ddl了才发.英语真是太难了 这次主要是几个ososos库里函数的运用,给我搞得有点小晕. 介绍几个概念:绝对路径和 ...
- 【操作系统】文件管理(七)—— 文件系统的层次结构与基本操作
[操作系统]文件管理(七)-- 文件系统的层次结构与基本操作 一.文件系统的层次结构 二.文件的基本操作 1. 创建文件 2. 删除文件 3. 打开文件 4. 读文件 5. 写文件 三.文件基本操作总 ...
最新文章
- 使用OpenCV和Imutils构建图像的蒙太奇效果
- ssm框架mysql配置_ssm框架使用详解配置两个数据源
- 数据库索引的作用和长处缺点
- 【postgresql】远程连接
- python怎么显示分数_在Python中使用分数
- java文件损坏_java – 损坏的文件处理
- java –cp ./:_成为Java流专家–第2部分:中级操作
- CSS3景深-perspective
- NOIP模拟题——LGTB与序列
- ENVI监督分类及精度评价
- JavaScript经纬度和地图坐标相互转换
- 原来清理手机内存,使用管家是不够的!还需删除这4个文件夹
- 以WGR614v9与WG602v4为例,说明WDS功能的配置过程
- java blowfish ecb,来自blowfish / base64的解密消息时出错
- java如何爬取qq音乐_爬取QQ音乐
- Win10(7~10)备份还原系统
- Excel 如何根据单元格选中一行?
- 什么是5G LAN 5G LAN商用爆发推动5G创新应用 提速数字转型新引擎
- DxO Analyzer的基本操作
- 本地资源检测,特效检测中Overdraw相关问题
热门文章
- python nextpow2_Python signal.hann方法代码示例
- CSS属性前的 -webkit, -moz
- AAAI2018-Long Text Generation via Adversarial Training with Leaked Information论文笔记
- Java小技巧输出26个英文字母,不用一个一个手打
- 阿里云SLB配置HTPPS方式访问
- canvas教程6-绘制圆弧
- CSS 3D动态立体图形
- android基础的博客,【复习】Android基础
- ASCII码值与字符的转换
- centos 时间自动同步_centos 设置时间同步