• 瀏覽: 1,721
  • 回覆: 7
[隱藏]
近來有機會接觸 FAT file system, 發現以前覺得奇奇怪怪嘅 file 問題,原來係 低層 file system 的角度,其實好簡單,
例如,
1. 相同 file 名,
2. 有 d folder 無左 ., .. 呢二個 directory
3. 隱藏某些 sector
4. undelele 等等

而且 FAT 真係好弱下,如果2條以上既 threads 同時攪個 FAT table,好可能就會亂晒,唔知 winxp 呢 d multi-thread 既 OS,寫入 file 時會唔會 lock 晒成個 disk,唔比其他 thread access 到。因為小弟只係 用 file 模擬 disk image,唔知真正 hardware 點運作。

[ 本帖最後由 assembly.jc 於 2019-10-21 12:25 AM 編輯 ]



附件

dos1.png(11.48 KB)

2019-10-17 08:07 PM

dos1.png

熱賣及精選
講多 d ?


引用:
原帖由 darigold 於 2019-10-10 03:25 AM 發表

講多 d ?
假設有 2 條 Threads (Thread1, Thread2) 同時 write data to disk,時間順序係:

Time1: Thread1 query the fat table,搵到 5 號 cluster 可以用
Time2: Thread2 又 query the fat table,又係搵到 5 號 cluster 可以用
Time3: Thread1 mark 低 5 號 cluster 已經用左 (that is, write down value other than zero)
Time4: Thread2 又 mark 低 5 號 cluster 已經用左
Time5: Thread1 寫入 data 去 5 號 cluster
Time6: Thread2 又寫入 data 去 5 號 cluster

好明顯 Thread2 會 overwrite Thread1 d 資料。係 DOS real mode,我估任何攪 FAT table 既動作都會用 cli 斷晒所有 interrupt,係 windowns, linux 呢 d multi-thread 既 OS,唔知係唔係只靠 semaphore 之類既同步機製去做?

[ 本帖最後由 assembly.jc 於 2019-10-10 02:10 PM 編輯 ]



回覆 引用 TOP

I think any file system would need to resolve the concurrency issue, i.e. two different threads writing different files should not be allocated to the  same block (sector). actually the FAT table is in machine RAM.



given that harddisk is like 1000x times slower than RAM or CPU, limiting the file system to single concurrency using a big fat lock should not be a big problem...  I guess.



[隱藏]
引用:
原帖由 assembly.jc 於 2019-10-9 06:27 PM 發表

近來有機會接觸 FAT file system, implement FAT 12 disk image  作為 host 同遠古無 network 係 VM 行緊嘅 OS (DOS, FreeDos) 的溝通媒介,發現以前覺得奇奇怪怪嘅 file 問題,原來係 低層 file system 的角度,其實好簡單,
例如,
1. 相同 file 名,
2. 有 d folder 無左 ., . ...
exFAT 係唔係一種FAT?

最近遇上:
從 SSD 複製由WinX YouTube Downloader下載的 webm格式的檔案,
save file 往 exFAT的 microSD card, 都有警告, 說檔案會被抹去properties,
但是不清楚, 這個properties會損失了檔案的哪一部分?


最近在華語區討論熱門話題時所下載的檔案:



[ 本帖最後由 黃金工程 於 2019-10-12 05:51 AM 編輯 ]



😀🤣😍😆😂🤣😍😍🍧 🍦


引用:
原帖由 stupidsing 於 2019-10-10 09:39 PM 發表

I think any file system would need to resolve the concurrency issue, i.e. two different threads writing different files should not be allocated to the  same block (sector). actually the FAT table ...
that is true...



回覆 引用 TOP

引用:
原帖由 黃金工程 於 2019-10-12 05:44 AM 發表

exFAT 係唔係一種FAT?
...
係。64 bit version FAT
引用:
最近遇上:
從 SSD 複製由WinX YouTube Downloader下載的 webm格式的檔案,
save file 往 exFAT的 microSD card, 都有警告, 說檔案會被抹去properties,
但是不清楚, 這個properties會損失了檔案的哪一部分?
你個來源是 SSD? SSD 是什麼格式? NTFS ? 如果係 NTFS,咁至少權限同 audit 既 info 會無左。



回覆 引用 TOP

順帶一提,exFAT m$ 記决定左 open source 了,specification 上個月啱啱放左出來,source 估遲 d 先有,有興趣可看下。

https://docs.microsoft.com/en-us/windows/win32/fileio/exfat-specification



回覆 引用 TOP

[按此隱藏 Google 建議的相符內容]