操作系统学习笔记(Ⅳ):文件

news2025/6/19 1:10:13

目录

1 文件管理

1.1 初识文件管理

1.文件属性

2.文件数据组织

3.向上功能

1.2 文件逻辑结构

1.无结构文件

2.有结构文件

3.顺序文件

4.索引文件

5.索引顺序文件

1.3 文件目录

1.文件控制块

2.目录结构

3.索引结点

1.4 文件物理结构

1.连续分配

2.链接分配

3.索引分配

1.5 文件存储空间管理

1.存储空间的划分与初始化

2.空闲表法

3.空闲链表法

4.位示图法

5.成组链接法

1.6 文件基本操作

1.创建文件

2.删除文件

3.读文件

4.写文件

5.打开文件

6.关闭文件

1.7 文件共享

1.基于索引结点的共享方式

2.基于符号链的共享方式

1.8 文件保护

1.口令保护

2.加密保护

3.访问控制

1.9 文件系统的层次结构

2 磁盘

2.1 磁盘结构 

1.组成

2.读写数据

3.磁盘物理地址

4.磁盘分类

2.2 磁盘调度算法

1.磁盘操作时间

2.磁盘调度算法

2.3 减少磁盘延迟时间方法

1.延迟时间问题

2.交替编号

3.磁盘地址结构设计

4.错位命名

2.4 磁盘的管理

1.磁盘初始化

2.引导块

3.坏块处理


1 文件管理

1.1 初识文件管理

1.文件属性

文件名:方便用户找到文件,同一目录下不能有重名文件。

标识符:区分各个文件的一种内部名称

类型:指明文件类型

位置:文件存放路径(用户使用)、在外存中的地址(操作系统使用)

大小、创建时间、保护信息等

2.文件数据组织

无结构文件:由一些二进制或字符流组成,又称流式文件

有结构文件:由一组相似的记录组成,又称记录式文件

3.向上功能

创建文件:create系统调用

读文件:read系统调用

写文件:write系统调用

删除文件:delete系统调用

打开文件:open系统调用

关闭文件:close系统调用

1.2 文件逻辑结构

1.无结构文件

由一些二进制或字符流组成,又称流式文件

2.有结构文件

由一组相似的记录组成,又称记录式文件,每条记录由若干个数据项组成。每条记录中又一个数据项作为关键字。根据各条记录的长度是否相等,可分为定长记录可变长记录两种。

3.顺序文件

文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存储。

顺序文件的缺点是增删一个记录较为困难 

4.索引文件

为了在可变长记录文件中快速找到第i个记录,建立一张索引表,每条记录对应一个索引项。索引表本身是定长记录的顺序文件

5.索引顺序文件

索引顺序文件是索引文件和顺序文件思想的结合。索引顺序文件中,同样会为文件建立一张索引表,但不同的是: 并不是每个记录对应一个索引表项,而是一组记录对应一个索引表项。为了进一步提高检索效率,可以为顺序文件建立多级索引表。
 

1.3 文件目录

1.文件控制块

 目录文件中的一条记录就是一个文件控制块(FCB)

2.目录结构

·单级目录:系统中只建立一张目录表,每个文件占一个目录项。但不允许文件重名。

·两级目录结构:包括主文件目录和用户文件目录。允许不同用户的文件重名。

·多级目录结构:又称树形目录结构。当用户从根目录开始访问某个文件时使用绝对路径;当用户从当前目录出发访问时使用相对路径。但多级目录结构不便于文件的共享

·无环图目录结构:可以用不同的文件名指向同一个文件,需要为每个共享结点设置共享计数器,用于记录此时有多少共享,当进行删除操作时,FCB被删除,共享计数器减一,只有当共享计数器为0时,结点被删除

3.索引结点

将除文件名外的所有信息都存入索引结点中,可以提升文件检索速度。

1.4 文件物理结构

在外存管理中,为方便对文件数据的管理,文件的逻辑地址空间被划分为文件块。将文件的逻辑地址转换为物理地址即文件分配方式,包括连续分配、链接分配及索引分配。

1.连续分配

每个文件在磁盘上占有一组连续的块。操作系统只需转换逻辑块号为物理块号,块内地址保持不变(物理块号 = 起始块号 + 逻辑块号)。连续分配支持顺序访问和直接访问,其在顺序读写时速度最快。

但该分配方式不便于拓展,且存储空间利用率低,会产生磁盘碎片。

2.链接分配

采用离散分配的方式,可以为文件分配离散的磁盘块。分为隐式链接和显式链接。

·隐式链接

只支持顺序访问,不支持随机访问,查找效率较低。但便于拓展文件,不会有磁盘碎片问题。

·显式链接

将用于链接文件各物理块的指针显式地存放在一张表中,即文件分配表(FAT)。一个磁盘仅设置一个FAT。从目录项找到起始块号,若i>0,则查询内存中的文件分配表,往后找到i号逻辑块对应的物理块号。逻辑块号转换成物理块号的过程不需要读磁盘操作。因此访问速度较快,但FAT需要占用一定内存空间。

3.索引分配

索引分配允许文件离散地分配在各个磁盘块中,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块(索引表的功能类似于内存管理中的页表――建立逻辑页面到物理页之间的映射关系)。索引表存放的磁盘块称为索引块。文件数据存放的磁盘块称为数据块。
从目录项中可知索开画放位置,将索引表从外存读入内存,并查找索引表即可只i号逻辑块在外存中的存放位置。

索引分配支持随机访问,文件拓展较方便,但索引表需要占据一定空间

若文件大小超过了磁盘块大小,其解决方式如下:

·链接方案

若索引表过大,将多个索引块链接存放。

·多层索引

建立多层索引(原理类似于多级页表)。使第一层索引块指向第二层的索引块。还可根据文件大小的要求再建立第三层、第四层索引块。各层索引表大小不能超过一个磁盘块。

采用n层索引结构,且顶级索引表未调入内存,则访问弄一个数据块需要K+1次读磁盘操作。

计算:若磁盘块大小为x,一个索引表项占y,则一个磁盘块能存放 z = x / y 个索引项。若采用n层索引,则该文件最大长度可以为z^n * x 

·混合索引

多种索引分配方式的结合。例如,一个文件的顶级索引表中,既包含直接地址索引(直接指向数据块),又包含一级间接索引(指向单层索引表)、还包含两级间接索引(指向两层索引表)。

1.5 文件存储空间管理

管理空闲磁盘区

1.存储空间的划分与初始化

存储空间的划分:将物理磁盘划分为文件卷

存储空间初始化:将各文件卷划分为目录区(存放文件目录信息、用于磁盘存储空间管理的信息)、文件区(存放文件数据)

2.空闲表法

记录空闲盘块起始位置与块数,适用于连续分配方法。 

3.空闲链表法

空闲盘块链中系统保存着链头和链尾指针。若某文件申请K个盘块,则从链头开始一次分配K个盘块,并修改空闲链的链头指针。

空闲盘区链中:若某文件申请K个盘块,则可以采用首次适应、最佳适应等算法,从链头开始检索,按照算法规则找到一个大小符合要求的空闲盘区,分配给文件。若没有合适的连续空闲块,也可以将不同盘区的盘块同时分配给一个文件,注意分配后可能要修改相应的链指针、盘区大小等数据。

4.位示图法

 

5.成组链接法

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

1.6 文件基本操作

1.创建文件

2.删除文件

3.读文件

4.写文件

5.打开文件

6.关闭文件

1.7 文件共享

1.基于索引结点的共享方式

设置一个包含文件物理地址都索引结点,内置一个链接技术变量count,用于表示链接到本索引结点上的用户目录项数。

2.基于符号链的共享方式

1.8 文件保护

1.口令保护

设置存放在系统内部的访问口令,一致时才可访问

2.加密保护

使用加密密码对文件进行加密,如异或加密,需要花费一定时间

3.访问控制

在每个文件FCB中增加访问控制列表,限制不同用户可以执行的操作

为了精简访问列表,可以以组为单位,标记各组用户的权限。

1.9 文件系统的层次结构

2 磁盘

2.1 磁盘结构 

1.组成

磁盘:表面由磁性物质组成,可记录二进制数据

磁道:磁盘的盘面被划分成一个个磁道

扇区:一个磁道又被划分成一个个扇区,每个扇区就是一个“磁盘块”。各个扇区存放的数据量相同(如1KB)。最内侧数据密度最大

2.读写数据

需要把“磁头”移动到想要读/写的扇区所在的磁道。磁盘会转起来,让目标扇区从磁头下面划过,才能完成对扇区的读/写操作。


3.磁盘物理地址

4.磁盘分类

根据磁头类型分为:活动头磁盘、固定头磁盘

根据盘片是否可更换分为:可换盘磁盘、固定盘磁盘

2.2 磁盘调度算法

1.磁盘操作时间

2.磁盘调度算法

·先来先服务(FCFS):根据进程请求访问磁盘的先后顺序进行调度。公平但性能差,寻道时间长

·最短寻找时间优先(SSTF):优先处理的磁道是与当前磁头最近的磁道。性能好,但可能产生饥饿现象

·扫描算法(SCAN):只有磁头移动到最外侧磁道时才能往内移动,移动到最内侧磁道时才能往外移动。不会产生饥饿现象,但不同磁道响应频率不平均。

·LOOK调度算法:若磁头移动方向上没有请求,立即改变磁头移动方向。

·循环扫描算法:磁头朝某个特定方向移动时才处理磁道访问请求,而返回时直接快速移动至起始端而不处理任何请求。响应频率较为平均,但比SCAN平均寻道时间更长。

·C-LOOK调度算法:若磁头移动方向上没有磁道访问请求,就可立即让磁头返回,需返回到有磁道访问请求的位置即可。

2.3 减少磁盘延迟时间方法

1.延迟时间问题

磁头读入一个扇区数据后需要一小段时间处理,如果逻辑上相邻的扇区在物理上也相邻,则读入几个连续的逻辑扇区,可能需要很长的“延迟时间”

2.交替编号

采用交替编号的策略,让逻辑上相邻的扇区在物理上有一定间隔,使读取连续扇区需要的延迟时间减小。


3.磁盘地址结构设计

磁盘的物理地址是(柱面号、盘面号、扇区号),无需移动磁头臂,减少磁头移动消耗时间。

4.错位命名

相邻盘面相对位置相同处扇区号若相同会增加延迟时间。采用错位命名可以减少延迟时间

2.4 磁盘的管理

1.磁盘初始化

2.引导块

部分初始化程序放在ROM中,不可修改;完整的初始化程序放在磁盘的启动快上,位于磁盘的固定位置。

3.坏块处理

扇区损坏故障无法使用。可以在逻辑格式化时对整个磁盘进行检查,并进行标记。磁盘中保留一些备用扇区,用于替换坏块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/52305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【面试题】【ES6】let和const命令 (面试必看)

给大家推荐一个实用面试题库 1、前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 1、let命令 基本用法 用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 let…

全国计算机三级嵌入式 - 题库 - 真题(含答案) - 未来教育 - 视频讲解 - 资料获取

全国全国计算机三级嵌入式等级考试 1. 考题大纲 历年不一样。但是换汤不换药。 2. 考试真题 历年全部考题、真题。包含全部答案。 3. 未来教育 考点、知识点、历年真题视频讲解。 4. 资料获取 在本人的博客上传资源里!!!下载不易&#xff0…

[附源码]计算机毕业设计springboot勤工俭学管理小程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

论文投稿指南——中文核心期刊推荐(计算机技术)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f680; 写在前面 &#x1f431;‍&#x1f3cd; 本期开始&#xff0c;小海带会定期推荐各专业领域的中文核心期刊及论文投稿网址&#xff0c;供大家交流参考 ~ 《中文核心期刊要目总览》——是学术界…

功率放大器主要性能指标是什么(功率放大器工作状态的分类)

电子仪器中&#xff0c;放大器末级都要带动一定的负载&#xff0c;所以末级电路不仅要求可以输出较大幅度电压&#xff0c;而且要求输出较大幅度电流&#xff0c;也就是要求放大器能够对负载输出较大的功率&#xff0c;这种测试仪器就被称为功率放大器。 功率放大器主要性能指标…

人脸检测-级联卷积

人脸检测有好多种cv都有自带 说到人脸检测&#xff0c;应该是近几年不老的话题了&#xff0c;如果要将这技术真的落实到现在产品&#xff0c;其实还有很长的路&#xff0c;不知道大家有没有发现&#xff0c;很多无人超市开始走下坡路&#xff0c;也许不仅仅是技术的原因之一吧…

idea中LeetCode无法正常使用

在风诡云谲的互联网职场中&#xff0c;随时准备好简历和刷题能力是非常必要的&#xff01;在工作时间“光明正大”刷题的神器——LeetCode插件&#xff01; 原来&#xff1a;idea 2019&#xff1b;LeetCode 6.8 目前&#xff1a;idea 2020.3&#xff1b;LeetCode 8.4 一 ide…

ARM-A架构入门基础(四)Cache

14天学习训练营导师课程&#xff1a;周贺贺《ARMv8/ARMv9架构-快速入门》 1. 定义 Cache是ARM中一块可高速访问的内存块&#xff0c;每块cache包含&#xff1a; 主要的内存地址信息&#xff1b;缓存数据。 2. Cache模型 速度方面&#xff1a;L1 cache > L2 cache > L…

从json中获取嵌套对象值(Oracle中的json_value和MySQL中的JSON_EXTRACT) 以及Oracle和MySQL处理日期语法的不同

从json中获取嵌套对象值&#xff08;Oracle中的json_value和MySQL中的JSON_EXTRACT&#xff09; 以及Oracle和MySQL处理日期语法的不同1. 从json中获取嵌套对象值1.1 Oracle 的 json_value1.2 MySQL 的 JSON_EXTRACT2. 日期问题2.1 MySQL2.1.1 获取指定日期2.1.1.1 DATE_SUB() …

高等数学(第七版)同济大学 习题10-4 (后7题)个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题10-4&#xff08;后7题&#xff09; 函数作图软件&#xff1a;Mathematica 8.设球占有闭区域Ω{(x,y,z)∣x2y2z2≤2Rz}&#xff0c;它在内部各点处的密度的大小等于该点到坐标原点的距离的平方&#xff0c;试求这球的质心…

九、Sentinel熔断与限流

Sentinel实现熔断与限流 Sentinel介绍 官网 https://github.com/alibaba/Sentinel 中文 https://github.com/alibaba/Sentinel/wiki/介绍 是什么 一句话解释&#xff0c;之前的Hystrix 能干嘛 去哪下 https://github.com/alibaba/Sentinel/releases 怎么玩 https://sp…

vue学习笔记:还不会上传文件,10分钟教会你使用input file上传文件

最近在写一个用户上传MP3文件到服务器的小案例&#xff0c;我写一个这样的界面&#xff1a; 当用户点击input的时候&#xff0c;其实这里并不是input的样式&#xff0c;而是一个div将代替了input的原生样式&#xff0c;这样比较好看一点&#xff1a; <div class"addre…

Pycharm 安装配置 pyQt5 图文操作(全)

目录前言1. 安装模块2. Pycharm 配置 pyQt52.1 配置QtDesigner2.2 配置PyUic2.3 配置pyrcc3. pyQt5界面前言 Qt是开源的GUI库&#xff0c;自带的QtDesigner 可以轻松构建界面&#xff0c;而且有非常全面的工具代码库和APIpyQt 是 Qt 库的Python版本&#xff0c;目前最新版本是…

数据库--------代数运算和关系运算

目录 传统的集合运算专门的关系运算例题1例题2关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。 传统的集合运算 并(∪): 差(-): 交(∩): 笛卡尔积():R的每一行S的矩阵 示例:

A-Level化学例题解析及练习(分子间作用力和沸点)

今日知识点&#xff1a;Intermolecular forces and boiling points 例题 Q: Nitrogen, N2, and carbon monoxide, CO, both have Mr 28. The boiling point of N2 is 77 K. The boiling point of CO is 82 K.What could be responsible for this difference in boiling point…

[附源码]计算机毕业设计JAVA校园共享单车系统

[附源码]计算机毕业设计JAVA校园共享单车系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

LinkedList源码分析

LinkedList源码分析 注意:本笔记分析对象为 Java8 版本,随版本不同,源码会发生变化。 基本介绍与类图 LinkedList 同时实现了 List 接口和 Deque 对口,也就是收它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(stack)。 这样看来,linke…

能力提高篇--协调能力【对接】

作为一名安防技术支持工程师&#xff0c;正常情况下我们的日常主要为解决问题&#xff0c;然而对于重大项目或者复杂项目&#xff0c;更多的情况下我们的职责为收集客户需求&#xff0c;拉通研发侧评估&#xff0c;确认需求&#xff0c;确认程序交付时间&#xff0c;测试和最终…

基于jsp+mysql+ssm协同办公系统-计算机毕业设计

项目介绍 本公司文档协同办公管理系统采用SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架开发,主要包括系统用户管理模块、用户信息模块、文件信息管理、个人事务管理、资料信息管理、登录模块、和退出模块等多个模块. 本系统主要包含了等系统用户管理、用户信息管理…

蓝桥杯---动态规划(1)

动态规划专题&#xff08;1&#xff09;1.糖果&#xff08;状压dp&#xff09;2.调手表&#xff08;状压dp)3.矩阵计数(状压dp)4.蒙德里安的梦想&#xff08;状压dp模板题&#xff09;5.跳跃&#xff08;动态规划&#xff0c;搜索&#xff09;5.字符排序&#xff08;逆序对&…