創建表

創建表

表以順序的行和列表示信息 。在作業系統中有很多地方套用到表這種結構,如段表,頁表,檔案分配表。創建表是指在存儲管理中,系統會為每個進程建立一張映射表,每個列包含的是所有作者的某個特定類型的信息,而每行則包含了某個段或頁的所有信息,這主要與表的用途有關。

簡介

在資料庫中,表(TABLE)是資料庫中用來存儲數據的對象,是有結構的數據的集合,是整個資料庫系統的基礎。在作業系統中,創建表是指在存儲管理中,系統會為每個進程建立一張映射表。創建表主要是為了實現虛擬地址和實地址之間的轉換,即地址變換和檢查存儲空間的使用情況。例如,在基本分頁存儲管理方式中,創建表是頁表;在基本分段存儲管理方式中,創建表是段表。

地址變換

地址變換能夠讓作業系統在給任務分配記憶體時具有靈活性,並且因為我們可以讓某些物理地址不被任何邏輯地址所映射,所以在地址變換過程中同時也提供了記憶體保護功能。

計算機中的物理記憶體是位元組的線性數組,每位元組具有一個唯一的物理地址;程式中的地址是由兩部分構成的邏輯地址。這種邏輯地址並不能直接用於訪問物理記憶體,而需要使用地址變換機制將它變換或映射到物理記憶體地址上。記憶體管理機制即用於將這種邏輯地址轉換成物理記憶體地址。段表中地址變換過程如下:從控制暫存器讀取段表始址,找到段表;段號+段表始址 得到段描述子地址;從段描述子讀取頁表始址,找到頁表;頁號+頁表始址 得到頁描述子地址;從頁描述子讀取物理塊號;物理塊號+頁內位移量 得到物理地址。

頁表

創建表 創建表

在分頁系統中,允許將進程的各個頁離散地存儲在記憶體不同的物理塊中,但系統應能保證進程的正確運行,即能在記憶體中找到每個頁面所對應的物理塊。為此,系統又為每個進程建立了一張頁面映像表,簡稱頁表。在進程地址空間內的所有頁(0~n),依次在頁表中有一頁表項,其中記錄了相應頁在記憶體中對應的物理塊號,見圖 4-12 的中間部分。在配置了頁表後,進程執行時,通過查找該表,即可找到每頁在記憶體中的物理塊號。可見,頁表的作用是實現從頁號到物理塊號的地址映射。即使在簡單的分頁系統中,也常在頁表的表項中設定一存取控制欄位,用於對該存儲塊中的內容加以保護。當存取控制欄位僅有一位時,可用來規定該存儲塊中的內容是允許讀/寫,還是唯讀;若存取控制欄位為二位,則可規定為讀/寫、唯讀和只執行等存取方式。如果有一進程試圖去寫一個只允許讀的存儲塊時,將引起作業系統的一次中斷。如果要利用分頁系統去實現虛擬存儲器,則還須增設一數據項 。

段表

創建表 創建表

在分段式存儲管理系統中,則是為每個分段分配一個連續的分區,而進程中的各個段可以離散地移入記憶體中不同的分區中。為使程式能正常運行,亦即,能從物理記憶體中找出每個邏輯段所對應的位置,應像分頁系統那樣,在系統中為每個進程建立一張段映射表,簡稱“段表” 。 每個段在表中占有一個表項, 其中記錄了該段在記憶體中的起始地址(又稱為 “基址” )和段的長度,如圖 4-17 所示。段表可以存放在一組暫存器中,這樣有利於提高地址轉換速度,但更常見的是將段表放在記憶體中。在配置了段表後,執行中的進程可通過查找段表找到每個段所對應的記憶體區。可見,段表是用於實現從邏輯段到物理記憶體區的映射。

檔案分配表

是DOS用於記錄磁碟中各文 件存放位置的一種工具。一個檔案 通常以簇為單位存放在磁碟中。文 件的FAT中含有若干表項,每一 表項都記錄了其後繼簇的位置,這 樣,只要從檔案目錄表中找到一個 檔案的首簇的地址,順著FAT各 個表項所形成的鏈進行跟蹤,就可 讀出整個的檔案。FAT是提供在 磁碟上找到一個檔案的惟一手段, 也是病毒最愛潛伏的地方,DOS 生成並保持兩份FAT,以防止其 中一份遭到破壞。

檔案存儲空間中的表

空閒表

創建表 創建表

空閒表法屬於連續分配方式,它與記憶體的動態分配方式雷同,它為每個檔案分配一塊連續的存儲空間,即系統也為外存上的所有空閒區建立一張空閒表,每個空閒區對應於一個空閒表項,其中包括表項序號、該空閒區的第一個盤塊號、該區的空閒盤塊數等信息。再將所有空閒區按其起始盤塊號遞增的次序排列。

位示圖

創建表 創建表

位示圖是利用二進制的一位來表示磁碟中一個盤塊的使用情況。當其值為“0”時,表示對應的盤塊空閒為“1”時,表示已分配。有的系統把“0”作為盤塊已分配的標誌,把“1”作為空閒標誌。(它們在本質上是相同的,都是用一位的兩種狀態來標誌空閒和已分配兩種情況。)磁碟上的所有盤塊都有一個二進制位與之對應,這樣,由所有盤塊所對應的位構成一個集合,稱為位示圖。通常可用 m × n 個位數來構成位示圖,並使 m × n 等於磁碟的總塊數。

相關詞條

熱門詞條

聯絡我們