個人學習使用 檔案實現的區別聯絡

2021-10-25 01:57:45 字數 893 閱讀 9846

檔案分配方式分為三種:連續分配、鏈結分配、索引分配。其中鏈結分配又分為隱式鏈結分配和顯式鏈結分配;索引分配又分為單級索引分配、兩級(多級)索引分配,混合索引分配。

這裡要說的是顯式鏈結分配和索引分配(指單級)的區別。

鏈結分配的特點是已知乙個物理塊位置尋找下乙個物理塊位置必須通過指標進行,而且必須順序尋找。比如我們當前位於3號物理塊要去4號物理塊,必須根據3號物理塊中4號物理塊的指標(位址)尋找,而且我們下乙個訪問必須是4號,而不能是5號(即使4號我們不需要)。這是鏈結分配的基本思想,優缺點對比連續分配很明顯,自己找就可以了,這裡不贅述。但是這種樸素的鏈結分配思想有乙個致命的問題,就是一旦出現斷鏈,後續物理塊無法訪問,並且我們需要的物理塊不在鏈的前方時,順序尋找花費大量讀磁碟時間(讀磁碟時間遠遠大於讀記憶體時間)。所以需要對這種樸素的鏈結分配思想進行改造。

於是出現了顯式鏈結分配(樸素的鏈結分配也是隱式鏈結分配),即把所有的物理塊中的指標收集在一起統一放在記憶體的一張鏈結表fat中(請注意是記憶體),這樣就大大減輕了樸素鏈結分配思想上述致命缺點,由於位址存放在一起,所以不太容易出現丟失個別位址現象,而且記憶體訪問速度快。但是這本質上仍然是鏈結分配,即程序給出檔案物理塊起始位址等資訊,然後根據記憶體fat中位址的鏈結情況進行查詢,得到所需物理塊。在查詢過程中仍然是乙個乙個的順序查詢。

下面敘述索引分配的特點。顯式鏈結分配雖然解決了隱式鏈結分配的致命缺點,但仍有一些問題,主要是非直接訪問時間長(相對於cpu來說記憶體訪問還是慢),所以出現了索引分配。索引分配和顯式鏈結分配唯一類似之處在於它有索引表(相對於fat),但是索引表中資料並不是鏈結存放,而是順序存放,也就是說在索引表中可以進行直接訪問。而在物理塊中,則是任意存放,條件是必須存索引於索引表。索引表一般存放於磁碟(與fat不同)但在使用時可以先調入記憶體,程序需要查詢檔案時,提供的不是檔案物理塊位址,而是索引表中的索引位址,這個與顯式鏈結分配也不同。

個人學習 Swagger的配置及使用

我們之前通過word excel手動編寫的介面文件或者說是第三方的api文件管理工具 小么雞等 大家有沒有遇到以下情況 swagger完美 這就跟開發日常的開發習慣息息相關了,要及時更新 注釋 解決了以上的問題,swagger在api開發新版本或者迭代版本的時候,只需要更新swagger描述檔案,就...

Synchronized的個人學習總結

先附上學習資料 感謝樂於分享的同道中人 這一篇講的是synchronized原理。這一篇和上面一篇差不多,但是內容少,淺顯一些。深入學習的話,還是要看上面一篇的。這一篇把synchronized this synchronized class synchronized 方法,synchronized...

我的個人學習記錄

二叉樹基本運算的實現 演算法設計 程式中設計了四個函式 1.函式createbitree 用來實現利用先序的方式建立二叉樹 利用 擴充套件先序遍歷序列 建立二叉鍊錶,用 表示子樹為空 2.函式preorder 用來實現先序遍歷的遞迴演算法遍歷輸出二叉樹。3.函式oreorder 用來實現中序遍歷的遞...