索引分配解決了連續分配和鏈式分配中的許多問題。對於索引分配,每個檔案在檔案分配表中有一個一級索引,索引包含分配給檔案的每個分區入口。典型地,檔案索引在物理上並不是作為檔案分配表的一部分存儲的,相反,檔案索引保存在一個單獨的塊中,檔案分配表中改檔案的入口指向這一塊。分配可以基於大小固定的塊,也可以基於大小可變的塊。索引分配支持順序訪問和直接訪問檔案,因而是最普遍的一種檔案分配方式。
單級索引分配
索引檔案分配方式類似於存儲管理中的分頁方式。當創建一個檔案時,系統會為其建立一個索引表,其中所有的盤塊號設定為null。首次寫入第i塊時,先從空閒表塊中取出一塊,然後將其地址(即物理塊號)寫入到索引表的i項中。
索引檔案既可以滿足檔案動態增長的要求,又可以較為方便和迅速地實現隨機存取因為有關邏輯塊號和物理塊號的信息全都存放在一個集中的索引表中,而不是像連結檔案那樣分散在各個物理塊中,如果要讀取檔案的第i塊,就檢索檔案的索引表,從索引表的第i項找到所需的盤塊號,然後啟動磁碟完成檔案I/O操作。
多級索引分配
在很多情況下,有的檔案很大,檔案索引表也就較大。如果索引表的大小超過一個物理塊,那么久必須像處理其他檔案的存放那樣決定索引表的物理存放方式,但這不利於索引表的動態增加;索引表也可以按連結方式存放,但這卻增加了存放索引表的時間開銷。顯然檔案大,其索引塊太多時,這種方法是低效的。較好的解決方法是採用間接索引(多重索引),也就是在索引表所指的物理塊中存放的不是檔案信息,而是裝有這些信息的物理塊地址。