動態分割區的主要關注點是跟蹤所有空閒和分配的分割區。 但是,作業系統為此任務使用以下資料結構。
點陣圖是儲存細節最少見的資料結構。 在這個方案中,主記憶體儲器被分成分配單元的集合。 根據該過程的需要,可以將一個或多個分配單元分配給過程。 但是,分配單元的大小是由作業系統定義的,並且從不更改。 雖然分割區大小可能會有所不同,但分配大小是固定的。
作業系統的主要任務是跟蹤分割區是空閒的還是空閒的。 為此,作業系統還管理另一個稱為點陣圖的資料結構。
分配單元中的進程或空洞由點陣圖的標誌位表示。 在下面顯示的影象中,為分配單元的每一位定義了一個標誌位。 但是,這並不是一般情況,它取決於作業系統,對於多少位分配單元,它想要儲存標誌位。
如果在分配單元中的相鄰位上存在連續存在的過程,則將標誌位設定為1
,否則將其設定為0
。
點陣圖中的一串0表示相對分配單元中有一個孔,而1
的字串表示相對分配單元中的過程。
OS必須為點陣圖分配一些記憶體,因為它儲存了有關分配單元的詳細資訊。 大量的記憶體不能用於載入任何進程,因此降低了多進程的程度以及吞吐量。在上圖中,分配單位是4位元,即0.5
位。 這裡,點陣圖的1位表示1位的分配單位。
1個分配單元的大小= 4位元
點陣圖大小= 1 /(4 + 1)=總記憶體的1/5。
因此,在這個點陣圖組態中,總記憶體的1/5被浪費了。
要識別記憶體中的任何空洞,作業系統需要在點陣圖中搜尋0
字串。 這種搜尋花費了大量的時間,這使得系統在一定程度上效率低下。