Windows操作系统的文件组织结构和计算方法

我是荔园微风,作为一名在IT界整整25年的老兵,今天总结一下Windows操作系统的文件组织结构和计算方法。

这是一块非常实用的知识,感谢大家来看这个帖子。

Windows组织结构就是文件的组织形式,其中:

1.Windows逻辑结构为用户可见的文件结构

2.Windows物理结构为存储器中存放的方式

文件逻辑结构分类

主要有以下两种:

1.记录文件

特点有结构,文件由一个个的记录构成。根据记录长度分为定长记录和不定长记录

2.流式文件

特点

字节流形式,文件是由字节或字符构成的。 文件没有划分记录,文件顺序访问。UNIX系统中, 所有文件均为流式文件

文件物理结构分类

主要有以下四种:

1.连续结构(顺序结构)

预分配一个连续的物理块,然后依次存入信息

2.链接结构(串联结构)

逻辑连续的文件存储在不连续的物理块中;按单个物理块逐个分配,每个物理块有一个指针指向下一个物理块

3. 索引结构

逻辑连续的文件存储在不连续的物理块中;该结构中每个文件建立一张索引表,每一项指出逻辑块与物理块的对应关系。 索引结构既可以满足文件动态增长的需求,又能进行快速随机存储

4.多个物理块的索引表

在文件创建时,系统自动创建索引表,并与文件共同存放在同一文件卷中。文件大小不同,索引占用物理块数不等

在windows操作系统中,尤其是服务器端的操作系统中,当存储大文件时,一般采用多级(间接地址索引),间接地址索引指向的不是文件,而是文件的地址。

例如,一个能存储n个地址的物理块,采用一级间接地址索引,则可寻址的文件长度变成 n²块。对于更大的文件还可采用二级、三级间接地址索引。

举例:

设文件索引节点中有8个地址项,每个地址项大小为4字节,其中前5个地址项为直接地址索引,第6个和第7个地址项是一级间接地址索引,第8个地址项是二级间接地址索引,磁盘索引块和磁盘数据块大小均为1KB字节。如果要访问文件的逻辑块号分别为2、5和518,则系统分别采用:直接地址索引、一级间接地址索引和二级间接地址索引。该文件系统可表示的单个文件最大长度是66053KB。

 

 分析:

每个地址项大小为4字节,磁盘索引块为1KB字节,则每个索引块可存放物理块地址个数=磁盘索引块大小/每个地址项大小=1KB/4=256。

文件索引节点中有8个地址项,5个地址项为直接地址索引,2个地址项是一级间接地址索引, 1个地址项是二级间接地址索引。则有:

(1)直接地址索引指向文件的逻辑块号为:0~4。

(2)一级间接地址索引指向文件的逻辑块号为:5~256×2+4即5~516。

(3)二级间接地址索引指向文件的逻辑块号为:517~256×256+516即517~66052。 

因为地址是从0开始的,所以单个文件的最大长度是66053.KB。

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FL Studio水果软件好用吗?对电脑硬件环境有哪些需求

如果你打算将来朝着艺术和音乐方向发展,那么学习音乐理论和音乐制作就是一门基础课了。 实践才是检验学习效果途径,在我们日常的练习中,一款功能强大且易学的音乐制作工具是少不了的。在没有实际体验过各个音乐制作工具的功能前,…

OpenHarmony3.1安全子系统-签名系统分析

介绍 应用签名系统主要负责鸿蒙hap应用包的签名完整性校验,以及应用来源识别等功能。 子系统间接口: 应用完整性校验模块给其他模块提供的接口;完整性校验: 通过验签,保障应用包完整性,防篡改;…

互联网中的web3.0和gpt有何联系?

文章目录 ⭐前言⭐web 3.0💖 web1.0-web3.0的概念 ⭐chatgpt💖 gpt的概念 ⭐总结⭐结尾 ⭐前言 大家好,我是yma16,本文分享互联网中的web3.0和gpt的关系。 互联网的发展 第一台计算机的出现 世界上第一台通用计算机“ENIAC”于…

JavaScript键盘事件

目录 一、keydown:按下键盘上的任意键时触发。 二、keyup:释放键盘上的任意键时触发。 三、keypress:在按下并释放能够产生字符的键时触发(不包括功能键等)。 四、input:在文本输入框或可编辑元素的内容…

SCSI介绍和SCSI命令承载于各类总线的方式

1. SCSI协议简介 小型计算机系统接口(SCSI,Small Computer System Interface)是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。虽然名字里面带个接口,但实际上是一…

基于深度学习的高精度野生目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度野生目标检测识别系统可用于日常生活中检测与定位野生目标目标,利用深度学习算法可实现图片、视频、摄像头等方式的野生目标目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测…

Apache DolphinScheduler——开源大数据调度器神器(国人之光)

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 1. 简 介 Apache DolphinScheduler(海豚调度),国人之光,是许多国人雷锋开源在Apache的顶级项目,主要功能就是负责任务的调度处理。 1.1 概 念 Apache DolphinScheduler是一个分布式去…

玩转用户旅程地图

图:史江鸿 从事需求分析和产品设计工作已经有几个年头了,我很享受这个职业。因为在这段职业历程中,我学到了很多有意思的方法和工具,用户旅程地图就是其中一个。 如今在国内外许多IT公司,用户旅程地图已经成为需求分析…

Python连接达梦数据库

python如果想连接达梦数据库,必须要安装dmPython。 简介:dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。dmPython 实现这些 API,使 Python 应用程序能够对 DM 数据库进行访问。 dmPython 通…

微服务之服务容错

Informal Essay By English Share a sentence that I think is very reasonable, as long as you can know the underlying logic of anything, you can hold it without fear 参考书籍: “凤凰架构” 引言 在 Martin Fowler 与 James Lewis合写的文章《Micros…

Linux内核源码分析 2:Linux内核版本号和源码目录结构

一、Linux的版本 1. 稳定版和开发版 Linux内核主要分为两种版本: 稳定版(长期支持版):稳定版的内核具有工业级的强度,可以广泛地应用和部署。而每一代新推出的稳定版内核大部分都只是修正了一些Bug或是加入了一些新的…

MySQL数据类型

文章目录 一、数据类型分类二、数值类型1.tinyint类型2.bit类型3.float类型4.decimal类型 三、字符串类型1.char类型2.varchar类型 四、日期和时间类型五、enum类型和set类型1.enum类型2.set类型 一、数据类型分类 MySQL的数据类型一共有如下几类,表格中简单介绍了…

企业级API网关之典型应用场景

目 录 01 企业面对API与网关的现状‍‍‍‍‍ 02 APIGW介绍及企业应用场景 03 总结 01 企业面对API与网关的现状‍ 在企业中,进行新的系统/应用/产品开发时,具有周密的流程:从需求分析、设计、开发、测试、发布与验收。所以,一…

bmp转jpg怎么转?bmp转换jpg的几个方法

bmp转换jpg的几个方法~什么是BMP呢?BMP是位图文件格式的一种,全称为Bitmap(位图),是一种基于像素的图像文件格式。BMP是Windows操作系统中最常用的图像格式之一,通常以.bmp或.dib作为文件扩展名。BMP文件格…

华芯微特SWM34-IO速度优化

对比测试了一下IO翻转速度在各种函数调用的情况下的差异 CPU运行速度150Mhz,SDRAM开 直接调用翻转函数 while(1) {GPIO_InvBit(GPIOA, PIN0); }速度大约5Mhz,主要是因为函数调用开销和函数内部的移位和异或操作,增加了指令的运行数量。 vo…

Rust每日一练(Leetday0012) 首末位置、插入位置、有效数独

目录 34. 查找元素的首末位置 Find-first-and-last-position-of-element-in-sorted-array 🌟🌟 35. 搜索插入位置 Search Insert Position 🌟 36. 有效的数独 Valid Sudoku 🌟🌟 🌟 每日一练刷题专栏…

Atcoder beginner contest 302

A - Attack AC代码&#xff1a; #include<iostream> #include<algorithm> #include<cstring> #define int long long using namespace std; signed main() {int a, b;cin >> a >> b;if (a % b 0) cout << a / b << endl;else c…

加密与解密 调试篇 动态调试技术 (二)

目录 常见的断点 1.INT 3 断点 检测 绕过 2.硬件断点 原理 我们给出硬件中断的例子 删除硬件断点 3.内存断点 原理 例子 删除 区别 总结 4.内存访问一次性断点 5.消息断点 例子 删除 6.条件断点 &#xff08;1&#xff09;按寄存器条件中断 &#xff08;2&…

【JDK】一、jdk17的下载与安装配置(图文说明超详细)

JDK17的下载与安装 前言一、JDK17下载1、官方下载地址 &#xff08; Oracle中国的官方网站&#xff09; 二、JDK17安装1、先看一下我现在的java版本和环境变量2、开始新的安装第一步&#xff1a;双击下载的jdk-17.0.7_windows-x64_bin.exe 进入到安装页面第二步&#xff1a;jdk…

sqlmap命令大全(附详细扫描流程)

一、sqlmap命令大全。 -u 指定目标URL (可以是http协议也可以是https协议)-d 连接数据库--dbs 列出所有的数据库--current-db 列出当前数据库--tables 列出当前的表--columns 列出当前的列-D 选择使用哪个数据库-T 选择使用哪个表-C 选择使用哪个列--dump 获取字段中的数据--…