操作系统原理 —— 文件的逻辑结构(二十三)

这篇具有很好参考价值的文章主要介绍了操作系统原理 —— 文件的逻辑结构(二十三)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文件的逻辑结构

这里说的逻辑结构,就是指在用户看来,文件内部的数据应该是如何组织起来的,而 物理结构 指的是在操作系统看来,文件的数据是如何被存放的。

逻辑结构结构来看,我们可以打开一个记事本,里面的文字内容从用户的角度来看就是无结构的,但是又从 Excel 来看,它是有结构的,它可以包含表头、包含数据。

所以在操作系统中,也是可以分为这两个不同类型的文件,进行存储,接下来我们就需要站在物理结构 的角度上来看,文件是如何被存放在硬盘上的。

无结构文件

无结构的文件,内部数据就是一系列的二进制或者字符流组成,又称 流式文件

在这里呢由于 无结构文件 是没有明显的结构特性,所以不用探讨无结构文件的是如何存储的,无非就是存储对应的二进制或者字符流即可。

有结构文件

结构文件:是由一组相似的记录组成,又称为 “记录式文件”,每条记录由若个干数据项组成,这个就好比如我们使用的 Excel,如下图:

操作系统原理 —— 文件的逻辑结构(二十三)

对于操作系统而言,每一个记录项应该分配多少空间呢? 学过数据库的同学就知道,在创建一个数据库表,在设计表字段的时候,是需要指定字段的长度的。 基本的数据类型指定长度都没问题,但是有一个大文本的数据类型,它是没办法指定长度的。

所以操作系统在存储有结构的文件时,也可以分为定长记录可变长记录两种。

对于有结构文件是如何在硬盘上进行存储的,一般可以分为三类:

顺序文件

顺序文件:文件中的记录一个接一个的顺序排列,记录可以是定长的也可以是可变长的,各个记录在物理上可以顺序存储或者链式存储。

顺序存储、链式存储如下图:

操作系统原理 —— 文件的逻辑结构(二十三)

基于这两种存储方式,我们思考两个问题:

1、能否快速找到第 i 个记录对应的地址? 也就是能否实现随机存储

2、能否快速找到某个关键字对应的记录对应的存放地址? 也就是快速查找

链式存储:

无论是定长/可变长记录,都无法实现随机存取,而且每一次只能从第一个记录开始依次往后查找,和链表数据结构一样。

顺序存储:

如果是可变长记录,它是无法实现随机存储的,也是只能从第一个记录开始往后查找。如果是定长记录,可以实现随机存储,并且采用顺序结构,可以通过某者算法来达到快速查找。

索引文件

索引文件相信大家应该也不陌生了,在数据库中,我们可以为数据库字段建立相对应的索引,而建立一个索引,对应磁盘上就会存在一个索引表的文件。 在这个索引表里面,会有对应的字段内容,长度,以及指向主表数据项的指针,如下图:

操作系统原理 —— 文件的逻辑结构(二十三)

索引表本身是定长记录的顺序文件,因此可以快速找到第 i 个记录对应的索引项,可以将关键字作为索引号内容,若按照关键字顺序排序,则还可以支持按照关键字折半查找。

当我们要增加、删除一个记录时,需要对索引表进行修改,由于索引文件又很快的检索速度,因此主要用于对信息处理的及时性要求比较高的场合使用,

索引顺序文件

思考一下索引文件的缺点,表里面每一条数据都对应一个索引表项,因此索引表可能会很大,比如主表有1w条数据,那么对应的索引表也会是1w条数据,那有没有可能再优化一下呢?

我们来看下索引顺序文件,索引顺序文件是索引文件和顺序文件思想的结合,在索引顺序文件中,同样会为文件建立一张索引表,但是不同的是,并不是为每一个记录对应一个索引表项,而是一组记录对应一个索引表项。

操作系统原理 —— 文件的逻辑结构(二十三)

这样做的好处就是,我们把逻辑文件表项分为 50 个组,每个组里面可能对应 100 条数据,而索引表里面只需要为每一个组建立一个对应的表项,那么也就是 50 条索引表记录即可。

多级索引顺序文件

在数据量特别庞大的情况下,为了进一步提高检索效率,我们可以为顺序文件建立多级索引表。集合索引顺序文件的逻辑,既然逻辑文件可以进行分组,那么同样的,索引表文件也可以进行分组,再一次进行拆分,如下图:

操作系统原理 —— 文件的逻辑结构(二十三)

本章重点

操作系统原理 —— 文件的逻辑结构(二十三)文章来源地址https://www.toymoban.com/news/detail-481316.html

到了这里,关于操作系统原理 —— 文件的逻辑结构(二十三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零学习Linux操作系统 第二十二部分 企业域名解析服务的部署及安全优化

    关于dns的名词解释:dns: domain name service(域名解析服务) 关于客户端: /etc/resolv.conf dns指向文件 A记录 ##ip地址叫做域名的Address 记录 SOA ##授权起始主机 关于服务端 bind 安装包 named 服务名称 /etc/named.conf 主配置文件 /var/named 数据目录 端口 53 关于报错信息: 1.no servers could be reach

    2024年02月22日
    浏览(35)
  • Linux操作系统(二):操作系统结构与内核设计

     在(一)详解CPU中介绍了操作系统所基于的硬件CPU后,本部分学习操作系统的架构。在计算机系统中,操作系统的架构通常包括以下几个主要组件: 内核(Kernel) 进程管理(Process Management) 内存管理(Memory Management) 文件系统管理(File System Management) 设备管理(Device

    2024年02月13日
    浏览(32)
  • 操作系统原理大题

    某一页表内容自0~7依次为03; 07; 0B;11;1A;1D;20;22. 请计算页面大小为1K和4K时的逻辑地址134D对应的物理地址。 首先,将134D转换为二进制数为 0001001101001101 1k为2的10次方  从后往前占十位为 000100|1101001101 竖线前面的二进制转化为十进制是4,4块号对应的是1A,那么将竖线前的二进制

    2024年02月05日
    浏览(87)
  • 2.3.1操作系统-存储管理:页式存储、逻辑地址、物理地址、物理地址逻辑地址之间的地址关系、页面大小与页内地址长度的关系、缺页中断、内存淘汰规则

    在存储管理当中,操作系统会负责将外存的一些文件调入到内存当中,以便给CPU调用,如果调用的内容不在内存当中,那么会产生一种中断,叫做缺页中断。然后从外存调数据,调完数据再返回,接着访问之前的断点部分。 在调用的过程当中,如果是一个几十G的文件,调入

    2024年02月03日
    浏览(33)
  • 操作系统原理 —— 什么是中断?(四)

    我们先来看看早期的计算机的工作流程: 如上图,在早期的计算机假设有三个程序需要执行,执行顺序是:先执行程序1,等待程序1结束之后,再开始执行程序2,以此类推,所以它们是串行执行的,这种方式效率就比较低,为了能够使计算机能够同时执行多个程序,从而引入

    2023年04月24日
    浏览(80)
  • 学习操作系统的必备教科书《操作系统:原理与实现》| 文末赠书4本

    使用了6年的实时操作系统,是时候梳理一下它的知识点了 摘要: 本文简单介绍了博主学习操作系统的心路历程,同时还给大家总结了一下当下流行的几种实时操作系统,以及在工程中OSAL应该如何设计。希望对大家有所启发和帮助。 操作系统一直伴随着我的工作,早些年我

    2023年04月08日
    浏览(29)
  • 操作系统期末总复习结构

    目录 前言 操作系统引论 操作系统的目标 操作系统的基本特征 操作系统的主要功能 系统调用的基本概念 进程的描述与控制 进程和程序的区别 程序为什么不能并发执行(引入进程的原因) 进程的基本状态与转换 进程通信的类型 线程的概念以及与进程的区别及引入线程的原

    2024年02月15日
    浏览(22)
  • 1.2 操作系统原理和常见命令

    操作系统原理 操作系统的概述: 定义:操作系统是控制和管理计算机硬件与软件资源,提供应用程序和用户访问的系统软件。 功能:进程管理、内存管理、文件系统、设备管理、安全性等。 作用:协调和优化计算机资源,提供统一的接口给应用程序。 角色:操作系统在计

    2024年02月13日
    浏览(40)
  • 什么是操作系统,数据结构

    操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。在计算机中,操作系统是其最基本也是

    2024年02月11日
    浏览(35)
  • 计算机操作系统原理期末总复习

    1、现代操作系统的四个特征是什么?(4分) 并发、共享、虚拟、异步 并发 :两个或多个事件在 同一时间间隔内 发生。 共享 :内存中多个并发执行的进程共同使用系统中的资源。 2、操作系统内核的四个主要功能是什么?(4分) 内存管理、进程管理、设备管理、文件管理

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包