操作系统如何存储用户编辑的文件?

问题描述 投票:1回答:1

我知道文件系统使用群集(n x个扇区(512 B),通常为4KB大小)来存储文件。如果我的文件大小为5 KB,则它使用两个群集来存储,剩余空间称为松弛空间。我的问题与用户从磁盘读取文件,修改(添加几个字符)并再次保存该文件的情况有关。将会发生什么,OS(覆盖)将从其位置开始写入文件以开始读取文件,或者将文件完全写入新群集中,并且将删除文件起始群集的地址,并用新的群集地址替换。

新部分:

[我刚刚读了一本书“信息技术:当今数字世界的介绍”,如果文件使用2个大块(簇),而第二个文件在第一个文件之后使用4个连续的块。第一个文件被编辑和修改,他的文件大小增加到总共3个块。该文件将在第二个文件之后写入,之前占用的2个块可用。但是仍然不知道如果我以一个字符增加文件,而文件仍然小于2个块,会发生什么情况。是将这些数据添加到现有文件中还是现有的前两个块中,还是将其存储在新的磁盘物理位置(新的2个块)中?

file io operating-system filesystems
1个回答
0
投票

当用户存储文件时,它将占用磁盘上的一些空间(群集=合并多个扇区= 4 KB,因为扇区通常为512字节)。如果文件占用3KB,则1KB不在此群集中。现在,如果我增加一点文件到该文件中添加一些数据,将会发生什么。现在答案取决于用户用来修改文件的过程。1.如果我手动将数据添加到文件(使用echo“ some text” >> filename),则该数据将在现有群集中添加此数据,因为存在1KB的可用空间。如果文件站点增加,则将占用另一个空闲扇区(文件使用“范围”来解决所有这些扇区)2.如果我使用文本编辑器,它将在磁盘上的其他位置复制文件(由于多用户和两个用户同时访问同一文件的情况)。先前的位置将是“空闲”(扇区中的内容保留,但文件系统没有引用该位置),并替换为磁盘上的新位置。

由于大多数用户使用某些编辑器来编辑文件,因此方案2是最常见的。

© www.soinside.com 2019 - 2024. All rights reserved.