作業系統考點之訪盤次數計算(索引)題型

2021-10-20 14:41:58 字數 1919 閱讀 3429

如題:2023年10月

分析:在《作業系統考點之檔案系統要點總結及目錄分解法》中有目錄的平均訪盤次數的計算,思路上倒是可以借鑑一下。先計算每個磁碟塊放幾個目錄項,再計算目錄檔案分幾個磁碟塊儲存,占用乙個磁碟塊,需要讀一次,兩個就需要讀兩次,平均訪盤次數就是(1+2+..n)/n=(n+1)/2。但這裡並沒有直接考的目錄而是考的混合索引。

題中,直接位址索引,直接指向資料塊位址。

一級間接索引(即題中的一重間接位址)指向的是單層索引表。

兩級間接索引(二重間接位址)指向的是兩層索引表。

索引表重要特徵就是乙個索引表項可以表示上一層

大小的資料。如乙個磁碟塊大小是1k,乙個索引表項佔4b,(由此可得出乙個磁碟塊可存256個索引表項)假如採用單層索引,有256個索引項,上一層是直接位址索引,則可表示 256 個資料,若兩層索引具體的含義是256個一層索引,所以是256 * 256 的資料。

知道這些,套到題目中就可以了,分析如下:還有一點很重要,位元組偏移量,其實還是指的邏輯上的偏移位址,這裡要與擴充套件中變相考的題型中管理檔案的大小相區分。管理檔案的大小要乘以物理塊的大小。

13個位址,10個是直接位址,1個位址是一重間接位址(到這裡應腦補出13個位址框,10個直接就是資料位址,1個位址是存放乙個單層索引表),如下圖所示:

這裡應該想到這個索引表有幾項索引項??因為一重間接索引表裡每個索引項就是存的「直接資料的位址」,所以只需要知道幾個索引項,就存了幾個資料位址。題目告訴了每個磁碟塊位址佔8個位元組,而每個磁碟塊大小是2048個位元組,所以乙個磁碟塊存了2048/8=256個資料位址。

下面乙個位址是二重間接位址,1、確定二重索引表放的是一重索引表的大小的資料(還是上一層資料的大小,一重索引表有多大呢?上面求了是256)  2、確定有多少個索引項,只有佔乙個位址項(代表乙個磁碟塊的位址,這個磁碟塊照樣可以存放256個位址,並且還是「一級索引的位址」),而乙個一重索引表(有256個索引項),所以可以表示256*256的資料位址。

而檔案1260000在第幾個磁碟塊呢?1260000/2048=615個中。可見,上面的二重間接位址表示的範圍遠遠大於這個值了,應該就在二重位址索引表中。具體在哪個塊中呢??

直接定址佔10個資料位址,這裡是邏輯位址,需要對應到實體地址(也就是磁碟塊位址,並且磁碟塊大小與記憶體的頁框大小一樣),儘管遠遠小於乙個磁碟塊的大小,但由於是直接定址所以還是需要訪問一次磁碟,所以 615-10=605

一重間接佔256個資料位址,所以 605 -256 = 349,所以,正好是乙個磁碟塊的容量,肯定是要訪問一次磁碟

二重占用256個一重間接,訪問第一塊磁碟塊時,349-256=93,訪問一次磁碟,檔案的位址在第2塊磁碟塊,還要再訪問一次磁碟。所以共需要訪問4次磁碟。

擴充套件:

變相考的題型:如2023年4月

分析:這裡問的是管理的單個檔案最大長度,指的是占用物理塊的大小

10個直接位址代表10個物理塊位址,乙個物理塊大小為2k,所以大小是10 *2k=20k

1個間接,256*2k=512k

1個二重間接,256*256*2k=128m

1個三重間接,256*(256*256*2k)=256 *128m=32768m/1024=32g

最大所有的這些加起來。

作業系統考點之塊因子

如題 2018年10月 分析 提到乙個概念,記錄成組?把檔案中若干個記錄合併成一組寫入乙個磁碟塊中的操作。相對應的就是記錄分解 把邏輯記錄從磁碟塊中分離出來的操作稱為記錄分解。什麼又是塊因子呢?定長記錄指乙個記錄式檔案中所有的邏輯記錄都具有相同的長度,定長記錄成組時除最末乙個物理塊外,每個物理塊中邏...

linux作業系統之索引節點

索引節點是什麼?答 資料結構。這個資料結構是存放什麼的?答 檔案資訊,它包含了乙個檔案的長度 建立及修改時間 許可權 所屬關係 磁碟中的位置等資訊。如何把乙個檔案系統裡的索引節點組織起來?答 陣列,乙個索引節點對應乙個陣列元素,且對應的下標為索引節點號。索引節點號是幹什麼的?別急,看下去。索引節點如...

2023年計算機作業系統考研真題

作業系統部分 下列關於執行緒的描述中,錯誤的是 a.核心級執行緒的排程由作業系統完成 b.作業系統為每個使用者級執行緒建立乙個執行緒控制塊 c.使用者級執行緒間的切換比核心級執行緒間的切換效率高 d.使用者級執行緒可以在不支援核心級執行緒的作業系統上實現 下列選項中,可能將程序喚醒的事件是 i.i ...