操作系统【八】文件管理

文件:一组有意义的信息/数据集合

文件的属性:

  • 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件。同一个目录下不允许有重名文件
  • 标识符:一个系统内的个文件标识符唯一,对用户来说毫无可读性。因此标识符只是操作系统用于区分各个文件的一种内部名称
  • 类型:指明文件的类型
  • 位置:文件的存放路径、在外存中的地址(操作系统使用,对用户不可见)
  • 创建时间
  • 上次修改时间
  • 文件所有者信息
  • 保护信息:对文件进行保护的访问控制信息

文件组织形式

  • 无结构文件
  • 有结构文件:由记录组成

目录也是一种特殊的有结构文件(由记录组成)

类似于内存分为一个个“内存块”,外存会分为一个个“块/磁盘块/物理块”。每个磁盘块的大小是相等的,一般包含2的整数幂个地址。文件的逻辑地址也可以分为(逻辑块号,块内地址)。操作系统同样需要将逻辑地址转换为外存的物理地址。块内地址的位数取决于磁盘块的大小。

操作系统以块为单位为文件分配存储空间。外存中的数据读入内存时同样以块为单位。

文件的逻辑结构

无结构文件

内部的数据就是一系列二进制流或字符流,又称作流式文件

有结构文件

记录式文件,每条记录有一个数据项作为关键字。可分为定长记录和可变长记录两种。

在这里插入图片描述

顺序文件:类似于顺序表

  • 串结构:记录之间的顺序,与关键字无关。通常按照记录存入的时间决定记录的顺序
  • 顺序结构:记录之间的顺序按关键字顺序排列

链式文件:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

索引文件

在这里插入图片描述

索引顺序文件

在这里插入图片描述
索引顺序文件的效率比较高。
在这里插入图片描述

当文件比较多的时候可以采用多级索引顺序文件,可以大大提高效率

文件目录

在这里插入图片描述
目录本身就是一种有结构文件,由一条条记录组成。每条记录对应一个在该目录下的文件。
文件控制块FCB:一个文件目录项
FCB的有序集合称为文件目录。

在这里插入图片描述

  • 单级目录结构
  • 两级目录结构:MFD(主文件目录)和UFD(用户文件目录)
  • 多级目录结构(树形目录结构):树形结构不便于实现文件的共享
  • 无环图目录结构:可以用不同的文件名指向同一个文件。需要为每个共享节点设置一个共享计数器,用于记录此时有多少个地方在共享该节点。用户提出删除节点的请求时,要是删除该用户的FCB,并使得共享计数器减一。

索引节点:FCB的改进

在这里插入图片描述
在这里插入图片描述

减小目录表项长度,因此每个磁盘块可以存放更多个目录项,因此检索文件时磁盘I/O的次数就会减少许多。

文件的物理结构

在这里插入图片描述
内存块和外存块的大小一般相同

连续分配

要求每个文件在磁盘上占有一组连续的块。文件目录中需要记录起始块号和长度。
优点:支持顺序访问和直接访问(随机访问)

读取某个磁盘块时,需要移动磁头,连续分配的文件在顺序读写时速度最快

缺点:物理上采用连续分配的文件不方便拓展。而且会产生磁盘内部碎片。存储空间利用率低。

链接分配

隐式分配

在这里插入图片描述

不会产生内部碎片

显式链接

把用于链接文件各个物理块的指针显式地存放在一张表中,即文件分配表(FAT)
在这里插入图片描述
在这里插入图片描述

默认链接分配是隐式链接的

索引分配

在这里插入图片描述

链接方案

多层索引

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

数据库原理及应用【六】数据库设计

数据依赖 函数依赖FD:一个属性或者一组属性的值可以决定另一个属性的值 多值依赖MVD:一个属性或者一组属性的值可以决定另一个属性的值的集合。FD是MVD的特例 符号表示:Name->->Course,课程多值依赖于姓名 连接依赖&#x…

数据库原理及应用【二】数据模型

层次模型 tree Record and fieldParent-Child relationship(PCR) 每个记录类型只有一个父节点 无法表达多对多信息 采用虚记录解决多对多 网状数据模型 系:主记录->属记录 主记录和属记录都可以有好多个 关系模型 表:table/relation 拥有更高的…

数据可视化【二】HTML+CSS+SVG+D3

HTML、CSS和SVG学习实现代码&#xff1a;https://vizhub.com/Edward-Elric233/89185eb96bc64a9d81777873a0ccd0b9 index.html <!DOCTYPE html> <html><head><title>Shapes with SVG and CSS</title><link rel"stylesheet" href&qu…

数据可视化【三】基本概念

Visualization is suitable when there is a need to augment human capabilities rather than replace people with computational decision-making methods. 当可以信赖的智能化的解决方案存在的时候&#xff0c;可视化是不必要的。 当不知道需要分析的问题是什么的时候&…

数据可视化【四】Bar Chart

Make a Bar Chart Representing a data table in JavaScriptCreating rectangles for each rowUsing linear and band scalesThe margin conventionAdding axes 以下学习内容参考博客&#xff1a;传送门 select()选择所有指定元素的第一个 selectAll()选择指定元素的全部 上…

数据库原理及应用【三】DBMS+SQL

DBMS Query LanguagesInterface and maintaining tools(GUI)APIsClass Library QL 不是图灵完备的&#xff0c;不是一种编程语言。 QL SQL是一种非过程化的查询语言。 DDL数据定义语言&#xff1a;表&#xff0c;视图QL 查询语言DML 数据操纵语言DCL 数据控制语言 Base t…

数据可视化【五】 Scatter Plot

Scatter Plot vizhub上实现的代码&#xff1a; https://vizhub.com/Edward-Elric233/53807a1b35d94329b3689081cd2ea945 https://vizhub.com/Edward-Elric233/b9647d50899a4a0e8e917f913cd0a53a https://vizhub.com/Edward-Elric233/8c6b50cd81a04f048f490f48e4fe6264 由前…

数据可视化【六】Line Chart Area Chart

Line Chart vizhub代码&#xff1a; https://vizhub.com/Edward-Elric233/094396fc7a164c828a4a8c2e13045308 实现效果&#xff1a; 这里先使用d3.line()设置每个点的x坐标和y坐标&#xff0c;然后再用这个东西设置path的d属性&#xff0c;就可以得到曲线。 const lineGen…

数据可视化【七】 更新模式

Enter 以下面这个简单的代码进行分析 const svg d3.select(svg); // svg.style(background-color, red); testconst height svg.attr(height); // equals paresFloat() const width svg.attr(width);const makeFruit type >( {type} ); //这种写法好像能够直接得到一个…

数据可视化【八】根据数据类型选择可视化方式

Marks:Rows PointsLinesAreas Channels:Columns PositionColorShape

数据可视化【九】单向数据流交互

我们使用一下上上篇博客的代码。 例如我们想要当鼠标点击水果的时候会出现黑色的框&#xff0c;再点击一下黑色的框就会消失。 首先&#xff0c;我们应该给组件添加点击事件&#xff1a; fruitBowl.js gruopAll.on(click, d > onClick(d.id));这个on函数第一个参数是事件…

数据库原理及应用【四】数据库管理系统

查询优化 数据库管理系统中非常重要的一部分。 代数优化 按照一定的规则将语句变化成关系代数以后进行优化 操作优化 对代数优化后的查询树使用比较好的方法进行查询。 主要是对连接运算进行优化 嵌套循环归并扫描索引优化哈希连接 恢复机制 备份&#xff08;完整备份差…

递归式复杂度求解

代换法 猜测复杂度验证是否满足递归式&#xff08;使用归纳法&#xff09;找到常数应该满足的条件针对基本情况&#xff0c;常数足够大时总是成立的 需要注意的是&#xff0c;我们猜测的复杂度有可能不满足递归式&#xff0c;这个时候就要通过减去一些低阶项来使得归纳成立。…

P、NP、NP完全问题、NP难问题

可以在多项式时间内求解的问题称为易解的&#xff0c;而不能在多项式时间内求解的问题称为难解的。 P类问题&#xff1a;多项式类型&#xff0c;是一类能够用&#xff08;确定性的&#xff09;算法在多项式的时间内求解的判定问题。 只有判定问题才属于P 不可判定问题&#…

数据可视化【十】绘制地图

Loading and parsing TOPOJSON 导入Topojson d3文件 地址&#xff1a;https://unpkg.com/topojson3.0.2/dist/topojson.min.js 想要找d3文件的话去unpkg.com好像大部分都能找到的样子 Rendering geographic features 寻找合适的地图数据&#xff1a;谷歌搜索world-atlas npm…

数据可视化【十一】树状图

Constructing a node-link tree visualization 首先将节点之间的连线画出来。 使用json函数读取文件以后&#xff0c;使用hierarchy等函数得到连线的数组&#xff0c;然后绑定这个数组&#xff0c;给每个元素添加一个path&#xff0c;绘画使用的是一个函数linkHorizontal&…

数据可视化【十二】 颜色图例和尺寸图例

有了前面的知识&#xff0c;制作一个图例应该不是很难&#xff0c;关键是我们想要制作一个可以在其他地方进行使用的图例&#xff0c;这样就需要能够动态地设置图例的大小&#xff0c;位置&#xff0c;等等。 这里直接上代码&#xff1a; colorLegend.js export const color…

数据可视化【十三】地区分布图

在前面的博客中已经介绍了如何绘制地图&#xff0c;这一节学习如何绘制地区分布图。如果对绘制地图还不熟悉的话可以了解一下之前我写的博客&#xff1a;数据可视化【十】绘制地图 Intergrating(整合) TopoJSON with tabular data(列表数据) 在前面的博客中没有使用到tsv文件…

数据可视化【十四】交互式过滤地区分布图

在前面的博客中已经介绍了如何绘制地区分布图&#xff0c;这一节学习如何绘制交互式过滤地区分布图。如果对绘制地区分布图还不熟悉的话可以了解一下之前我写的博客&#xff1a;数据可视化【十三】地区分布图 整体的框架仍然是在之前的基础上进行修改&#xff0c;主要是添加交…

Ubuntu环境搭建

本文记录了一些常用的Ubuntu软件 然后首先修改软件源&#xff1a;软件和更新->Ubuntu软件->下载自&#xff1a;其他站点&#xff08;修改为阿里云&#xff09; 在关闭的时候需要更新什么的 然后修改更新方式&#xff0c;将不支持的更新去掉 常用的Windows软件 网易云…