热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

操作系统文件管理索引分配

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




索引分配

索引分配允许文件离散的分配在各个磁盘块中,系统会为每个文件建立一张索引表,表中记录了文件的各个逻辑块对应的物理块。索引表存放的磁盘块称为索引快,文件数据存放的磁盘块称为数据块
![在这里插入图片描述](https://img-blog.csdnimg.cn/5316dff5d605430ea661b575e307c88b.png
在这里插入图片描述
目录中记录了文件的索引块是几号磁盘块
在这里插入图片描述

在这里插入图片描述


链接方案

如果索引表太大,一个索引块装不下,那么可以将多个索引块链接起来存放;
在这里插入图片描述
假设有多个索引块,而各个索引块是通过这种链接的方式连起来,所以,为了找到第二个索引块的块号,操作系统需要先将第一个索引块读入内存,然后才能根据这个索引块中的指针找到第二个索引块号,并且把第二个索引块读入内存;
在这里插入图片描述
一个磁盘块只能存放256个索引项;
假设文件的大小是64MB,则需要256个这样的块;2562561KB=65536B=64MB;


多层索引

在这里插入图片描述
若采用多层索引结构,各层索引大小最大不能超过一个磁盘块
在这里插入图片描述
还是这个假设,那么每层的索引项的大小不能超过256B,同时,在一个索引表项占4B的情况下,一个块最多有1024/4=256个索引项;那么假设是上图中的两极索引表,第一层最多有1024/4=256个索引项,每个索引项指向下一层的一个索引表,第二层最多也有256个索引项,每个索引项指向一个1KB大小的文件记录(每条文件记录也由一个块保存,一个文件占有多个块),那么这种条件下的两级索引最大支持的文件大小是2562561KB=64MB大小;
同理,如果是3级索引,还是这种条件下是256256256=4GB大小


混合索引分配

混合索引分配的方式就是将上述两种方式结合起来,
在顶级索引表中有直接地址直接指向数据块的,也有一级间接地址指向下一级索引表(下下层就是数据块了,及一级间接地址可以看做是二级索引表(因为顶级索引表本身可以看做是一层));

在这里插入图片描述







推荐阅读
  • 搜索大文件(20G左右) ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 在API测试中,我们常常需要通过大量不同的数据集(包括正常和异常情况)来验证同一个接口。如果为每种场景单独编写测试用例,不仅繁琐而且效率低下。采用数据驱动的方式可以有效简化这一过程。本文将详细介绍如何利用CSV文件进行数据驱动的API测试。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
author-avatar
低调酥紫_631
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有