當文件被修改並保存時,內部發生了什麼?操作系統是否會分配一個新的內存塊並複製整個數據,或者僅在修改後的部分被移位後的位才複製?當文件被修改並保存時,內部發生了什麼?
0
A
回答
0
文件在塊中操作。磁盤上的塊就像內存中的一個字節。您只能以塊爲單位進行讀寫。 512字節曾經是正常的塊大小,但現在更常見的是4096。
操作系統會將整個塊讀入內存;改變任何字節;然後將整個塊寫入磁盤。
羣集是文件分配的單位。他們是塊的倍數。磁盤硬件通常不知道集羣。較大的羣集大小可減少系統分配開銷,但對於大量小文件而言效率不高。您可以讀取和寫入羣集中的各個塊。
-1
不同的方法適用於每一種方法,請記住我們有不同的文件系統。例如,在NTFS當u寫入文件,它使用例如六個集羣就會像在你的文件SISTEM:
123456
如果u加用1組新的文件時,它會像
1234561
所以現在ü刪除第一個文件:
1
和u會寫使用3個集羣
012的新文件,現在ü希望寫一個文件,7羣
12312314567
例如如果u想要一個文件中,將重新寫在你的文件系統的新集羣另一個文件夾中複製,但如果u希望削減它,你將只修改索引這就是爲什麼如此快速的剪切文件與複製操作。
因此,如果你修改一個文件,大部分情況下的一部分或全部將被加載到一個緩衝區中,然後當你保存你的修改時,緩衝區被寫入硬盤,替換受影響的簇並寫入新的文件。但這取決於不同的軟件使用不同的方法。
相關問題
- 1. 當文件被修改時,git中保存了多少個文件版本?
- 2. 當文件名被修改時文件無法保存
- 3. 當我拋出一個異常時,內存發生了什麼?
- 4. 當文件被刪除時,文件句柄會發生什麼?
- 5. python - 讀取文件,修改它並保存,但保存時不做任何修改。爲什麼?
- 6. 上傳文件時發生了什麼?
- 7. knex.transaction內部發生了什麼()
- 8. 當修改UIViewController時,約束條件發生了變化。框架
- 9. 當我在.cpp文件中複製#include時發生了什麼
- 10. WPF當單向綁定屬性被手動修改時會發生什麼
- 11. 執行文件時,內存佈局中的文本段發生了什麼?
- 12. 當您修改標記的提交時,Git中發生了什麼?
- 13. 從文件修改圖像並保存
- 14. 修改Linux文件,並在Python保存
- 15. MATLAB:修改XML文件並保存
- 16. 當請求被中止時,IIS/C#中發生了什麼
- 17. 當javascript數組被視爲對象時發生了什麼?
- 18. 當按鈕被點擊時發生了什麼php
- 19. 將BNA文件部署到Hyperledger Composer時發生了什麼?
- 20. 當在SQL Server中修改視圖時會發生什麼
- 21. 當git合併失敗時,其他文件會發生什麼?
- 22. 當我更改我的視圖框架時發生了什麼?
- 23. 當外部文件被修改時重建T4模板
- 24. 當我們調用任何shell命令時,內部發生了什麼
- 25. 保存在內部存儲中的文件沒有被保存
- 26. 什麼文件夾DLL將被保存
- 27. 當ViewStack的selectedChild被更改時,什麼事件觸發了孩子?
- 28. 當一個事件被觸發並且頁面更新同時發生時會發生什麼?
- 29. 當我將變量'x'更改爲'fab'時發生了什麼?關於修飾符並傳遞函數變量
- 30. 當mongodb內存不足時會發生什麼?
在第四種情況下,操作系統會留下3個羣集並將其保存爲123 1或將其保存爲1231.我認爲連續內存將被賦予文件 –
將爲123 1該事件稱爲文件系統碎片。 –
有關羣集大小和ntfs結構的深入說明https://technet.microsoft.com/zh-cn/library/cc781134%28v=ws.10%29.aspx –